diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000..334c864988
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,113 @@
+
+
+
+ org.restcomm
+ restcomm-parent
+ 4.0.1
+
+ 4.0.0
+ org.restcomm
+ restcomm-connect-root
+ 9.0.0-SNAPSHOT
+ pom
+
+ restcomm
+ release
+
+
+ scm:git:https://github.com/RestComm/Restcomm-Connect.git
+ scm:git:git@github.com:RestComm/Restcomm-Connect.git
+ https://github.com/RestComm/Restcomm-Connect
+
+
+
+
+ restcomm-releases-repository
+ Restcomm Releases Repository
+ https://oss.sonatype.org/service/local/staging/deploy/maven2
+
+
+
+ restcomm-snapshots-repository
+ Restcomm Snapshots Repository
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+
+
+ UTF-8
+ 6.0.23
+ 2.5
+
+
+
+
+ mobicents-public-repository-group
+ Mobicens Public Maven Repository Group
+ https://oss.sonatype.org/content/groups/public
+ default
+
+ true
+ never
+
+
+ true
+ never
+
+
+
+ jboss-public-repository-group
+ JBoss Public Maven Repository Group
+ https://repository.jboss.org/nexus/content/groups/public-jboss/
+ default
+
+ true
+ never
+
+
+ true
+ never
+
+
+
+ cxsnexus-releases
+ http://cxsnexus.restcomm.com/nexus/content/repositories/releases/
+ default
+
+
+
+
+
+
+
+
+ mobicents-public-repository-group
+ Mobicens Public Maven Repository Group
+ https://oss.sonatype.org/content/groups/public
+ default
+
+ true
+ never
+
+
+ true
+ never
+
+
+
+ jboss-public-repository-group
+ JBoss Public Maven Repository Group
+ https://repository.jboss.org/nexus/content/groups/public-jboss/
+ default
+
+ true
+ never
+
+
+ true
+ never
+
+
+
+
diff --git a/release/pom.xml b/release/pom.xml
new file mode 100644
index 0000000000..44874f1074
--- /dev/null
+++ b/release/pom.xml
@@ -0,0 +1,54 @@
+
+
+ 4.0.0
+
+ org.restcomm
+ restcomm-connect-root
+ 9.0.0-SNAPSHOT
+
+ assembly-parent
+ pom
+
+
+
+ org.restcomm
+ restcomm-connect-rvd
+ [1.2,1.2.999)
+ war
+
+
+ org.mobicents.webrtc
+ webrtc-ui
+ [1.1,1.1.999)
+ war
+
+
+ org.mobicents.media
+ media-server-standalone
+ ${mobicents.mgcp.impl.version}
+ zip
+ assembly
+
+
+ org.restcomm
+ restcomm-connect.application
+ ${project.version}
+ war
+
+
+ org.restcomm
+ restcomm-connect-management
+ ${project.version}
+ war
+
+
+
+
+
+ restcomm-assembly-as7
+ restcomm-assembly-wildfly10
+
+
diff --git a/release/restcomm-assembly-as7/pom.xml b/release/restcomm-assembly-as7/pom.xml
new file mode 100644
index 0000000000..1df91fdeca
--- /dev/null
+++ b/release/restcomm-assembly-as7/pom.xml
@@ -0,0 +1,107 @@
+
+
+ 4.0.0
+
+ org.restcomm
+ assembly-parent
+ 9.0.0-SNAPSHOT
+
+ org.restcomm
+ assembly-as7
+ pom
+
+ UTF-8
+ 3.2.0-89
+
+
+
+ org.restcomm
+ restcomm-connect-rvd
+ war
+
+
+ org.restcomm
+ restcomm-connect.application
+ war
+
+
+
+ org.restcomm
+ restcomm-connect-management
+ war
+
+
+
+
+ org.mobicents.webrtc
+ webrtc-ui
+ war
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.0.1
+
+
+ extractSipServlets
+ prepare-package
+
+ unpack
+
+
+
+
+ org.mobicents.servlet.sip
+ sip-servlets-as7
+ ${sipservletapi.version}
+ zip
+ assembly
+
+
+
+
+
+ extractMediaserver
+ prepare-package
+
+ unpack
+
+
+
+
+ org.mobicents.media
+ media-server-standalone
+ zip
+ assembly
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.1.0
+
+
+ src/main/resources/descriptor.xml
+
+ Restcomm-JBoss-AS7-${project.version}
+ false
+
+
+
+ package
+
+ single
+
+
+
+
+
+
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh
new file mode 100755
index 0000000000..e8c2d7ee1d
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh
@@ -0,0 +1,205 @@
+#!/usr/bin/env bash
+
+##
+## Description: Configures RestComm
+## Author: Lefteris Banos (eleftherios.banos@telestax.com)
+##
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_DARS=$RESTCOMM_HOME/standalone/configuration/dars
+RESTCOMM_CONF=$RESTCOMM_HOME/standalone/configuration
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+
+###Functions for SECURESSL=false###
+#Disable HTTPS when SECURESSL=false for RC.
+NoSslRestConf(){
+ FILE=$RESTCOMM_CONF/standalone-sip.xml
+ sed -e "s//<\!--connector name=\"https\" \1>/" \
+ -e "s/<\/connector>/<\/connector-->/" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ sed -e "s/<.*connector name=\"http\".*>/ /" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ sed -i "s|SSL_ENABLED=.*|SSL_ENABLED=false|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_KEYSTORE=.*|SSL_KEYSTORE=restcomm.jks|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_PASSWORD=.*|SSL_PASSWORD=changeme|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+}
+
+####funcitions for SECURESSL="SELF" || SECURESSL="AUTH" ####
+#HTTPS configuration.
+#Usage of certificate.
+SslRestCommConf(){
+ FILE=$RESTCOMM_CONF/standalone-sip.xml
+ echo "Will properly configure HTTPS Connector ";
+ FILERESTCOMMXML=$BASEDIR/standalone/deployments/restcomm.war/WEB-INF/web.xml
+ FILEMANAGERXML=$BASEDIR/standalone/deployments/restcomm-management.war/WEB-INF/web.xml
+ FILERVDXML=$BASEDIR/standalone/deployments/restcomm-rvd.war/WEB-INF/web.xml
+ FILEOLYMPUSXML=$BASEDIR/standalone/deployments/olympus.war/WEB-INF/web.xml
+ #Disable HTTP if set to true.
+ if [[ "$DISABLE_HTTP" == "true" || "$DISABLE_HTTP" == "TRUE" ]]; then
+ echo "DISABLE_HTTP is '$DISABLE_HTTP'. Will disable HTTP Connector"
+ sed -e "s/<.*connector name=\"http\".*>/<\!--connector name=\"http\" protocol=\"HTTP\/1.1\" scheme=\"http\" socket-binding=\"http\"-->/" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ grep -q '' $FILERESTCOMMXML && sed -e "s///" $FILERESTCOMMXML.bak > $FILERESTCOMMXML
+ grep -qs '' $FILEMANAGERXML && sed -e "s///" $FILEMANAGERXML.bak > $FILEMANAGERXML
+ grep -q '' $FILERVDXML && sed -e "s///" $FILERVDXML.bak > $FILERVDXML
+ grep -q '' $FILEOLYMPUSXML && sed -e "s///" $FILEOLYMPUSXML.bak > $FILEOLYMPUSXML
+
+ elif [[ "$DISABLE_HTTP" == "REDIRECT" || "$DISABLE_HTTP" == "redirect" ]]; then
+ sed -e "s/<.*connector name=\"http\".*>//" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ if [ ! -d "$BASEDIR/standalone/deployments/restcomm-management.war" ]; then
+ mkdir $BASEDIR/standalone/deployments/restcomm-management-exploded.war
+ unzip -q $BASEDIR/standalone/deployments/restcomm-management.war -d $BASEDIR/standalone/deployments/restcomm-management-exploded.war/
+ rm -f $BASEDIR/standalone/deployments/restcomm-management.war
+ mv -f $BASEDIR/standalone/deployments/restcomm-management-exploded.war $BASEDIR/standalone/deployments/restcomm-management.war
+ fi
+
+ sed -e "s//<\/security-constraint>/" $FILERESTCOMMXML.bak > $FILERESTCOMMXML
+ sed -e "s//<\/security-constraint>/" $FILEMANAGERXML.bak > $FILEMANAGERXML
+ sed -e "s//<\/security-constraint>/" $FILERVDXML.bak > $FILERVDXML
+ sed -e "s//<\/security-constraint>/" $FILEOLYMPUSXML.bak > $FILEOLYMPUSXML
+
+ else
+ sed -e "s/<.*connector name=\"http\".*>/ /" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ grep -q '' $FILERESTCOMMXML && sed -e "s///" $FILERESTCOMMXML.bak > $FILERESTCOMMXML
+ grep -qs '' $FILEMANAGERXML && sed -e "s///" $FILEMANAGERXML.bak > $FILEMANAGERXML
+ grep -q '' $FILERVDXML && sed -e "s///" $FILERVDXML.bak > $FILERVDXML
+ grep -q '' $FILEOLYMPUSXML && sed -e "s///" $FILEOLYMPUSXML.bak > $FILEOLYMPUSXML
+
+ fi
+ #If File contains path, or just the name.
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ CERTIFICATION_FILE=$TRUSTSTORE_FILE
+ else
+ CERTIFICATION_FILE="\\\${jboss.server.config.dir}/$TRUSTSTORE_FILE"
+ fi
+ #enable HTTPS and certificate file.
+ #Cipher `TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA` removed because it enables non-secure cipher ECDHE-RSA-DES-CBC3-SHA
+ echo "Will use trust store at location: $CERTIFICATION_FILE"
+ sed -e "s/<\!--connector name=\"https\" \(.*\)>//" \
+ -e "s|||" \
+ -e "s/<\/connector-->/<\/connector>/" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo "Properly configured HTTPS Connector to use trustStore file $CERTIFICATION_FILE"
+}
+
+#If self-sighned create certificate.
+#else use authorized.
+CertConfigure(){
+ #Certificate setup (Authority certificate or self-signed)
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ if [ "$SECURESSL" = "AUTH" ]; then
+ echo "Authorized certificate is used"
+ elif [ "$SECURESSL" = "SELF" ]; then
+ echo "TRUSTSTORE_FILE is not provided but SECURE is TRUE. We will create and configure self signed certificate"
+
+ sed -e "s/.*<\/ssl-mode>/allowall<\/ssl-mode>/" $FILE > $FILE.bak #When Self-signed used ssl-mode must set to "allowall"
+ mv $FILE.bak $FILE
+
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ TRUSTSTORE_LOCATION=$TRUSTSTORE_FILE
+ else
+ TRUSTSTORE_LOCATION=$RESTCOMM_HOME/standalone/configuration/$TRUSTSTORE_FILE
+ fi
+
+ echo "TRUSTSTORE_LOCATION: $TRUSTSTORE_LOCATION"
+ echo "PUBLIC_IP: $PUBLIC_IP"
+ echo "RESTCOMM_HOSTNAME: $RESTCOMM_HOSTNAME"
+ #Use HOSTNAME to create certificate is used. Else use STATIC_ADDRESS
+ if [ -n "$RESTCOMM_HOSTNAME" ]; then
+ HOSTNAME="${RESTCOMM_HOSTNAME}"
+ keytool -genkey -alias $TRUSTSTORE_ALIAS -keyalg RSA -keystore $TRUSTSTORE_LOCATION -dname "CN=$HOSTNAME" -storepass $TRUSTSTORE_PASSWORD -keypass $TRUSTSTORE_PASSWORD
+ else
+ HOSTNAME="${PUBLIC_IP}"
+ keytool -genkey -alias $TRUSTSTORE_ALIAS -keyalg RSA -keystore $TRUSTSTORE_LOCATION -dname "CN=restcomm" -ext san=ip:"$HOSTNAME" -storepass $TRUSTSTORE_PASSWORD -keypass $TRUSTSTORE_PASSWORD
+ fi
+ echo "The generated truststore file at $TRUSTSTORE_LOCATION "
+ fi
+
+ #Final necessary configuration. Protocols permitted, etc.
+ grep -q 'ephemeralDHKeySize' $RESTCOMM_BIN/standalone.conf || sed -i "s|-Djava.awt.headless=true|& -Djdk.tls.ephemeralDHKeySize=2048|" $RESTCOMM_BIN/standalone.conf
+ grep -q 'https.protocols' $RESTCOMM_BIN/standalone.conf || sed -i "s|-Djava.awt.headless=true|& -Dhttps.protocols=TLSv1.1,TLSv1.2|" $RESTCOMM_BIN/standalone.conf
+}
+
+#SIP-Servlets configuration for HTTPS.
+#For both Self-signed and Authorized certificate.
+MssStackConf(){
+ FILE=$RESTCOMM_CONF/mss-sip-stack.properties
+
+ if grep -q "gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE=${TLS_CLIENT_AUTH_TYPE}" "$FILE"; then
+ sed -i '/gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE='"$TLS_CLIENT_AUTH_TYPE"'/,+5d' $FILE
+ fi
+
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ TRUSTSTORE_LOCATION=$TRUSTSTORE_FILE
+ else
+ TRUSTSTORE_LOCATION=$RESTCOMM_HOME/standalone/configuration/$TRUSTSTORE_FILE
+ fi
+
+ #check for port offset
+ local HTTPS_PORT=$((HTTPS_PORT + PORT_OFFSET))
+
+ #https://github.com/RestComm/Restcomm-Connect/issues/2606
+ sed -i '/org.mobicents.ha.javax.sip.LOCAL_SSL_PORT=.*/ a \
+ \gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE='"$TLS_CLIENT_AUTH_TYPE"'\
+ \javax.net.ssl.keyStore='"$TRUSTSTORE_LOCATION"'\
+ \javax.net.ssl.keyStorePassword='" $TRUSTSTORE_PASSWORD"'\
+ \javax.net.ssl.trustStorePassword='"$TRUSTSTORE_PASSWORD"'\
+ \javax.net.ssl.trustStore='"$TRUSTSTORE_LOCATION"'\
+ \javax.net.ssl.keyStoreType=JKS\
+ ' $RESTCOMM_CONF/mss-sip-stack.properties
+}
+
+
+#SIP-Servlets configuration for HTTPS.
+#For both Self-signed and Authorized certificate.
+SslRMSConf(){
+ if [[ "$MANUAL_SETUP" == "false" || "$MANUAL_SETUP" == "FALSE" ]]; then
+
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ CERTIFICATION_FILE=$TRUSTSTORE_FILE
+ else
+ CERTIFICATION_FILE="$RESTCOMM_CONF/$TRUSTSTORE_FILE"
+ fi
+
+ sed -i "s|SSL_ENABLED=.*|SSL_ENABLED=true|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_KEYSTORE=.*|SSL_KEYSTORE=${CERTIFICATION_FILE}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_PASSWORD=.*|SSL_PASSWORD=${TRUSTSTORE_PASSWORD}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ fi
+}
+
+# MAIN
+echo 'RestComm SSL Configuring ...'
+
+if [[ "$SECURESSL" = "SELF" || "$SECURESSL" = "AUTH" ]]; then
+ if [[ -z $TRUSTSTORE_ALIAS || -z $TRUSTSTORE_PASSWORD || -z $TRUSTSTORE_FILE ]]; then
+ echo 'Need to set all: TRUSTSTORE_ALIAS, TRUSTSTORE_PASSWORD,TRUSTSTORE_FILE '
+ else
+ echo "SECURE $SECURESSL"
+ SslRestCommConf
+ CertConfigure
+ MssStackConf
+ SslRMSConf
+ fi
+elif [[ "$SECURESSL" == "false" || "$SECURESSL" == "FALSE" ]]; then
+ NoSslRestConf
+else
+ echo "Allowed values for SECURESSL: SELF, AUTH, FALSE"
+fi
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh
new file mode 100755
index 0000000000..ec8c1b1117
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+##
+## Configures dashboard.json based on global configuration options in restcomm.conf and advanced.conf.
+##
+## requirements:
+##
+## RESTCOMM_HOME env variable to be set
+## dashboard.json should be in place (under $RESTCOMM_HOME/standalone/deployments/restcomm-management.war)
+##
+## Author: otsakir@gmail.com - Orestis Tsakiridis
+
+echo "Configuring Dashboard..."
+
+
+# MAIN
+if [ -z "$RESTCOMM_HOME" ]
+then
+ echo "RESTCOMM_HOME env variable not set. Aborting."
+ exit 1
+fi
+
+
+# Variables
+DASHBOARD_ROOT="$RESTCOMM_HOME"/standalone/deployments/restcomm-management.war
+DASHBOARD_JSON_FILE="$DASHBOARD_ROOT"/conf/dashboard.json
+
+sed -i "s|\"rvdUrl\":\"[^\"]*\"|\"rvdUrl\":\"$RVD_URL/restcomm-rvd\"|" "$DASHBOARD_JSON_FILE"
+
+echo "Dasboard configured:"
+cat $DASHBOARD_JSON_FILE
\ No newline at end of file
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh
new file mode 100755
index 0000000000..4b4a8d6403
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+## Description: Configures Dialogic XMS
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+
+RESTCOMM_STANDALONE=$RESTCOMM_HOME/standalone
+RESTCOMM_DEPLOY=$RESTCOMM_STANDALONE/deployments/restcomm.war
+
+## Description: Elects Dialogic XMS as the active Media Server for RestComm
+activateXMS() {
+ restcomm_conf=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ ms_address="$1"
+
+ sed -e "// {
+ N; s|.*<\/compatibility>|$MS_COMPATIBILITY_MODE<\/compatibility>|
+ N; s|||
+ N; s|.*<\/address>|$ms_address<\/address>|
+ }" $restcomm_conf > $restcomm_conf.bak
+ mv -f $restcomm_conf.bak $restcomm_conf
+ echo '...activated Dialogic XMS...'
+}
+
+fetchExternalResources() {
+ if [[ "$MS_COMPATIBILITY_MODE" == "xms" ]]; then
+
+ echo "Checking required libraries ..."
+
+ if [ -f $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/dialogic309-3.2-snapshot-jboss.jar ]; then
+ echo "JSR309 library ready"
+ else
+ echo "Downloading JSR309 library ..."
+ cd $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib
+ wget -O dialogic309-3.2-snapshot-jboss.jar https://www.dialogic.com/files/jsr-309/3.2GA/3.2Snapshot/dialogic309-3.2-snapshot-jboss.jar
+ fi
+
+ if [ -f $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/dialogicsmiltypes-3.2-GA-14621.jar ]; then
+ echo "SMIL Types library ready"
+ else
+ echo "Downloading SMIL Types library ..."
+ cd $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib
+ wget -O dialogicsmiltypes-3.2-GA-14621.jar https://www.dialogic.com/files/jsr-309/3.2GA/dialogicsmiltypes-3.2-GA-14621.jar
+ fi
+
+ if [ -f $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/dialogicmsmltypes-3.2-GA-14621.jar ]; then
+ echo "MSML Types library ready"
+ else
+ echo "Downloading SMIL Types library ..."
+ cd $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib
+ wget -O dialogicmsmltypes-3.2-GA-14621.jar https://www.dialogic.com/files/jsr-309/3.2GA/dialogicmsmltypes-3.2-GA-14621.jar
+ fi
+ fi
+}
+
+#MAIN
+echo "Configuring Dialogic XMS...MS_MODE: $MS_COMPATIBILITY_MODE"
+activateXMS $MS_ADDRESS
+fetchExternalResources
+echo '...finished configuring Dialogic XMS!'
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh
new file mode 100755
index 0000000000..c324c99337
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh
@@ -0,0 +1,18 @@
+#! /bin/bash
+##
+## Description: Configures JBoss AS
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+##
+
+## FUNCTIONS
+disableSplashScreen() {
+ FILE="$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml"
+ sed -e 's|enable-welcome-root=".*"|enable-welcome-root="false"|' $FILE > $FILE.bak
+ mv -f $FILE.bak $FILE
+}
+
+## MAIN
+echo 'Configuring JBoss AS...'
+disableSplashScreen
+echo '...disabled JBoss splash screen...'
+echo 'Finished configuring JBoss AS!'
\ No newline at end of file
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh
new file mode 100755
index 0000000000..77b5c56486
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh
@@ -0,0 +1,47 @@
+#! /bin/bash
+##
+## Description: Configures SIP Load Balancer
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+## Author : Pavel Slegr (pavel.slegr@telestax.com)
+## Author : Charles Roufay (charles.roufay@telestax.com)
+##
+## Last update: 22/03/2016
+## Change Log: Move away from Telestax Proxy and configure LB from restcomm.conf
+## FUNCTIONS
+##
+##
+##
+##
+configSipStack() {
+ lb_sipstack_file="$RESTCOMM_HOME/standalone/configuration/mss-sip-stack.properties"
+
+ #delete additional connectors if any added to erlier run of the script.
+ if grep -q "## lb-configuration ##" $lb_sipstack_file
+ then
+ echo "Additional Connectors Created earlier, going to delete the connectors"
+ sed '/## lb-configuration ##/,/## lb-configuration ##/d' $lb_sipstack_file > $lb_sipstack_file.bak
+ mv $lb_sipstack_file.bak $lb_sipstack_file
+ else
+ echo "LB was not configured earlier"
+ fi
+
+ if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ if [ -z "$LB_INTERNAL_IP" ]; then
+ LB_INTERNAL_IP=$LB_PUBLIC_IP
+ fi
+ sed -e "/Mobicents Load Balancer/a\
+ ## lb-configuration ##\n\
+ gov.nist.javax.sip.PATCH_SIP_WEBSOCKETS_HEADERS=false\n\
+ org.mobicents.ha.javax.sip.REACHABLE_CHECK=false\n\
+ org.mobicents.ha.javax.sip.LoadBalancerHeartBeatingServiceClassName=org.mobicents.ha.javax.sip.MultiNetworkLoadBalancerHeartBeatingServiceImpl\n\
+ ## lb-configuration ##" $lb_sipstack_file > $lb_sipstack_file.bak
+
+ mv $lb_sipstack_file.bak $lb_sipstack_file
+ echo 'Load Balancer has been activated and mss-sip-stack.properties file updated'
+ fi
+}
+
+## MAIN
+configSipStack
+
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh
new file mode 100755
index 0000000000..5eb9ee7934
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+##
+## Description: Configures RestComm && RMS logs level
+## Authos: Lefteris Banos (eleftherios.banos@telestax.com)
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_CONF=$RESTCOMM_HOME/standalone/configuration
+
+
+check_if_logger_exist(){
+FILE=$RESTCOMM_CONF/standalone-sip.xml
+ #delete additional bindings if any added to erlier run of the script.
+ echo
+ if grep -q "${1}" $FILE
+ then
+ echo "Logger exist"
+ else
+ echo "Need to add logger ${1}"
+ sed -i "//i \\n\\n" $FILE
+ fi
+
+}
+
+configure_RC_component_log(){
+ check_if_logger_exist $1
+ sed -i "// {N; s///}" $RESTCOMM_CONF/standalone-sip.xml
+}
+
+configure_RC_logs(){
+ sed -i "/ / {
+ N; s|||
+ }" $RESTCOMM_CONF/standalone-sip.xml
+}
+
+config_on_thefly(){
+ FILE=$RESTCOMM_BIN/restcomm/set-log-level.sh
+ MNGMTPORT=$((9999 + PORT_OFFSET))
+ sed -i "s|jboss-cli.sh --connect controller=.*|jboss-cli.sh --connect controller=$BIND_ADDRESS:${MNGMTPORT} --file=\"\$CLIFILE\"|" $FILE
+}
+
+config_AKKA_logs(){
+ FILE=$RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/classes/application.conf
+ echo "Update AKKA log level to ${AKKA_LOG_LEVEL}"
+ sed -i "s|loglevel = \".*\"|loglevel = \"${AKKA_LOG_LEVEL}\"|" $FILE
+ sed -i "s|stdout-loglevel = \".*\"|stdout-loglevel = \"${AKKA_LOG_LEVEL}\"|" $FILE
+}
+
+
+#MAIN
+if [ -n "$LOG_LEVEL" ]; then
+ configure_RC_logs
+ config_on_thefly
+ config_AKKA_logs
+ for i in $( set -o posix ; set | grep ^LOG_LEVEL_COMPONENT_ | sort -rn ); do
+ component=$(echo ${i} | cut -d = -f1 | cut -d _ -f4 )
+ level=$(echo ${i} | cut -d = -f2)
+ case "$component" in
+ SIPSERVLET)
+ COMPONENT=org.mobicents.servlet.sip
+ ;;
+ GOVNIST)
+ COMPONENT=gov.nist
+ ;;
+ SIPRESTCOMM)
+ COMPONENT=org.mobicents.servlet.sip.restcomm
+ ;;
+ RESTCOMM)
+ COMPONENT=org.restcomm.connect
+ ;;
+ *)
+ echo "$component not possible to configure need to add it."
+ continue
+ esac
+
+ echo "Configuring log level for: $component -> $level"
+ configure_RC_component_log "$COMPONENT" "$level"
+ done
+ fi
+
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh
new file mode 100755
index 0000000000..7478e55e88
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh
@@ -0,0 +1,249 @@
+#!/bin/bash
+## Description: Enables and configures MySQL datasource
+## Params:
+## 1. RESTCOMM_VERSION
+## Author: Henrique Rosa
+## Author: Lefteris Banos
+
+# VARIABLES
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+
+
+creteMysqlDataSource(){
+ if [ -z "$RESTCOMM_HOME" ]; then
+ echo "RESTCOMM_HOME is not defined. Please setup this environment variable and try again."
+ exit 1
+ fi
+
+ # Variables
+ MYSQLDB_MODULE=$RESTCOMM_HOME/modules/system/layers/base/com/mysql/main
+ STANDALONE_SIP=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ # Download and install MariaDB driver as a JBoss module
+ mkdir -p $MYSQLDB_MODULE
+ if [ ! -f $MYSQLDB_MODULE/mysql-connector-java-5.1.36.jar ]; then
+ echo "Mysql driver not found!"
+ wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar -O /tmp/mysql-connector-java-5.1.36.jar
+ cp /tmp/mysql-connector-java-5.1.36.jar $MYSQLDB_MODULE
+ rm -f /tmp/mysql-connector-java-5.1.36.jar
+ else
+ echo "Mysql driver already downloaded"
+ fi
+
+
+cat > $MYSQLDB_MODULE/module.xml << 'EOF'
+
+
+
+
+
+
+
+
+
+
+EOF
+
+query=$(grep -q 'driver name=\"com.mysql\"' $STANDALONE_SIP)
+if [ $? -eq 0 ]; then
+ echo "Datasource already populated"
+else
+ echo "Going to populate the datasource"
+
+ if [ -n "$MYSQL_SNDHOST" ]; then
+ # Update JBoss configuration to create a MariaDB datasource
+ sed -e '// a\
+ \ \
+ \ com.mysql.jdbc.Driver\
+ \ com.mysql.jdbc.jdbc2.optional.MysqlXADataSource\
+ \ ' \
+ -e '// a\
+ \ \
+ \ jdbc:mysql://localhost:3306/restcomm \
+ \ | \
+ \ false \
+ \ com.mysql \
+ \ com.mysql.jdbc.Driver \
+ \ TRANSACTION_READ_COMMITTED \
+ \ \
+ \ 5 \
+ \ 50 \
+ \ \
+ \ \
+ \ username \
+ \ password \
+ \ \
+ \ \
+ \ 100 \
+ \ \
+ \ \
+ \ \
+ \ true \
+ \ \
+ \ \
+ \ select 1 \
+ \ \
+ \ ' $STANDALONE_SIP > $STANDALONE_SIP.bak
+ mv $STANDALONE_SIP.bak $STANDALONE_SIP
+
+ else
+ # Update JBoss configuration to create a MariaDB datasource
+ sed -e '// a\
+ \ \
+ \ com.mysql.jdbc.Driver\
+ \ com.mysql.jdbc.jdbc2.optional.MysqlXADataSource\
+ \ ' \
+ -e '// a\
+ \ \
+ \ jdbc:mysql://localhost:3306/restcomm \
+ \ com.mysql \
+ \ TRANSACTION_READ_COMMITTED \
+ \ \
+ \ 100 \
+ \ 200 \
+ \ \
+ \ \
+ \ username \
+ \ password \
+ \ \
+ \ \
+ \ 100 \
+ \ \
+ \ \
+ \ ' $STANDALONE_SIP > $STANDALONE_SIP.bak
+ mv $STANDALONE_SIP.bak $STANDALONE_SIP
+ fi
+fi
+}
+
+## Description: Configures MyBatis for MySQL
+## Parameters : none
+configMybatis() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/mybatis.xml
+
+ grep -q '' $FILE || sed -i '// a \
+ \ \
+ \ \
+ \ \
+ \ \
+ \ \
+ \ \
+ ' $FILE
+
+ sed -e '// s|default=".*"|default="mysql"|' $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo 'Activated mybatis environment for MySQL';
+}
+
+configureMySQLDataSource() {
+ FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ if [ -n "$5" ]; then
+ #DB failover configuration.
+ sed -e "s|.*|jdbc:mysql://$1:3306/$4\|jdbc:mysql://$5:3306/$4|g" $FILE > $FILE.bak
+ else
+ # Update DataSource
+ sed -e "s|.*|jdbc:mysql://$1:3306/$4|g" $FILE > $FILE.bak
+ fi
+ mv $FILE.bak $FILE
+ sed -e "s|.*|$2|g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ sed -e "s|.*|$3|g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo 'Updated MySQL DataSource Configuration'
+}
+
+## Description: Enables MySQL Datasource while disabling the remaining
+## Parameters : none
+enableDataSource() {
+ FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ # Disable all datasources but MySQL
+ sed -e '/ $FILE.bak
+
+ mv $FILE.bak $FILE
+ echo 'Enabled MySQL datasource'
+}
+
+## Description: Configures RestComm DAO manager to use MySQL
+## Params: none
+configDaoManager() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/dao-manager.xml
+
+ sed -e "s|.*||g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ sed -e "s|.*|\${restcomm:home}/WEB-INF/scripts/mariadb/sql|g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ echo 'Configured MySQL Dao Manager for MySQL'
+}
+
+## Description: Set Password for Adminitrator@company.com user. Only for fresh installation.
+initUserPassword(){
+ SQL_FILE=$RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+ if [ -n "$INITIAL_ADMIN_USER" ]; then
+ # change admin user
+ if grep -q "uninitialized" $SQL_FILE; then
+ echo "Update Admin user"
+ sed -i "s/administrator@company.com/${INITIAL_ADMIN_USER}/g" $SQL_FILE
+ else
+ echo "Adminitrator User Already changed"
+ fi
+ fi
+
+ if [ -n "$INITIAL_ADMIN_PASSWORD" ]; then
+ echo "change admin password"
+ if grep -q "uninitialized" $SQL_FILE; then
+ PASSWORD_ENCRYPTED=`echo -n "${INITIAL_ADMIN_PASSWORD}" | md5sum |cut -d " " -f1`
+ #echo "Update password to ${INITIAL_ADMIN_PASSWORD}($PASSWORD_ENCRYPTED)"
+ sed -i "s/uninitialized/active/g" $SQL_FILE
+ sed -i "s/77f8c12cc7b8f8423e5c38b035249166/$PASSWORD_ENCRYPTED/g" $SQL_FILE
+ sed -i 's/Date("2012-04-24")/now()/' $SQL_FILE
+ sed -i 's/Date("2012-04-24")/now()/' $SQL_FILE
+ # end
+ else
+ echo "Adminitrator Password Already changed"
+ fi
+ fi
+}
+
+## Description: populated DB with necessary starting point data if not done.
+populateDB(){
+ #Change script to defined schema
+ echo "Use RestComm Database:$MYSQL_SCHEMA "
+ sed -i "s|CREATE DATABASE IF NOT EXISTS .*| CREATE DATABASE IF NOT EXISTS ${MYSQL_SCHEMA};|" $RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+ sed -i "s|USE .*|USE ${MYSQL_SCHEMA};|" $RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+
+ if mysql -u $2 -p$3 -h $1 -e "SELECT * FROM \`$4\`.restcomm_clients;" &>/dev/null ; then
+ # Update config settings
+ echo "Database already populated"
+ else
+ echo "Database not populated, importing schema and updating config file"
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+ mysql -u $2 -p$3 -h $1 < $FILE
+ mysql -u $2 -p$3 -h $1 --execute='show databases;'
+ mysql -u $2 -p$3 -h $1 --execute='show tables;' $4;
+ echo "Database population done"
+ fi
+}
+
+# MAIN
+if [[ "$ENABLE_MYSQL" == "true" || "$ENABLE_MYSQL" == "TRUE" ]]; then
+ if [[ -z $MYSQL_HOST || -z $MYSQL_USER || -z $MYSQL_PASSWORD || -z $MYSQL_SCHEMA ]]; then
+ echo 'one or more variables are undefined'
+ echo 'Not possible to continue with Mysql configuration'
+ exit 1
+ else
+ echo "Configuring MySQL datasource... $MYSQL_HOST $MYSQL_SCHEMA $MYSQL_USER $MYSQL_SNDHOST"
+ creteMysqlDataSource
+ enableDataSource
+ configMybatis
+ configDaoManager
+ configureMySQLDataSource $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_SCHEMA $MYSQL_SNDHOST
+ initUserPassword
+ populateDB $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_SCHEMA
+ echo 'Finished configuring MySQL datasource!'
+ fi
+fi
\ No newline at end of file
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh
new file mode 100755
index 0000000000..24f3f93115
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+##
+## Description: Configures RestComm
+## Author: Lefteris Banos (eleftherios.banos@telestax.com)
+##
+
+BASEDIR=$RESTCOMM_HOME
+
+if [ ! -d "$BASEDIR/standalone/deployments/olympus.war" ]; then
+ mkdir $BASEDIR/standalone/deployments/olympus-exploded.war
+ unzip -q $BASEDIR/standalone/deployments/olympus.war -d $BASEDIR/standalone/deployments/olympus-exploded.war/
+ rm -f $BASEDIR/standalone/deployments/olympus.war
+ mv -f $BASEDIR/standalone/deployments/olympus-exploded.war $BASEDIR/standalone/deployments/olympus.war
+fi
+
+# Set Olympus ports
+olympusPortConf(){
+FILE=$BASEDIR/standalone/deployments/olympus.war/resources/xml/olympus.xml
+
+# Check for Port Offset
+ local SIP_PORT_WS=$((SIP_PORT_WS + PORT_OFFSET))
+ local SIP_PORT_WSS=$((SIP_PORT_WSS + PORT_OFFSET))
+
+ if [ -z "$SECURESSL" ] || [ "$SECURESSL" == "false" ] || [ "$SECURESSL" == "FALSE" ]; then
+ xmlstarlet ed -L -P -u "/olympus/server/@secure" -v "false" $FILE
+ else
+ xmlstarlet ed -L -P -u "/olympus/server/@secure" -v "true" $FILE
+ fi
+
+ if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ xmlstarlet ed -L -P -u "/olympus/server/port" -v ${LB_EXTERNAL_PORT_WS} $FILE
+ xmlstarlet ed -L -P -u "/olympus/server/secure-port" -v ${LB_EXTERNAL_PORT_WSS} $FILE
+ else
+ xmlstarlet ed -L -P -u "/olympus/server/port" -v ${SIP_PORT_WS} $FILE
+ xmlstarlet ed -L -P -u "/olympus/server/secure-port" -v ${SIP_PORT_WSS} $FILE
+ fi
+
+}
+
+
+
+
+# MAIN
+echo 'Configuring Olympus...'
+#Reload Variables
+olympusPortConf
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh
new file mode 100755
index 0000000000..92397c287e
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh
@@ -0,0 +1,893 @@
+#!/bin/bash
+##
+## Description: Configures RestComm
+## Author: Henrique Rosa (henrique.rosa@telestax.com)
+## Author: Pavel Slegr (pavel.slegr@telestax.com)
+## Author: Maria Farooq (maria.farooq@telestax.com)
+##
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_DARS=$RESTCOMM_HOME/standalone/configuration/dars
+RESTCOMM_CONF=$RESTCOMM_HOME/standalone/configuration
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+RVD_DEPLOY_PATH=$RESTCOMM_HOME/standalone/deployments/restcomm-rvd.war
+
+## FUNCTIONS
+
+## Description: Configures Java Options for Application Server
+## Parameters : none
+configRCJavaOpts() {
+ FILE=$RESTCOMM_BIN/standalone.conf
+ echo "RestComm java options with: $RC_JAVA_OPTS"
+ sed -e "/if \[ \"x\$JAVA_OPTS\" = \"x\" \]; then/ {
+ N; s|JAVA_OPTS=.*|JAVA_OPTS=\"$RC_JAVA_OPTS\"|
+ }" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+}
+
+## Description: Updates RestComm configuration file
+## Parameters : 1.STATIC_ADDRESS
+configRestcomm() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ static_address="$1"
+
+ sed -i "s|<\!--.*.*<\/external-ip>.*-->|$static_address<\/external-ip>|" $FILE
+ sed -i "s|.*<\/external-ip>|$static_address<\/external-ip>|" $FILE
+
+ sed -i "s||$static_address<\/external-ip>|" $FILE
+
+ echo 'Updated RestComm configuration'
+
+ #If "STRICT" no self-signed certificate is permitted.
+ if [ "$SSL_MODE" == "strict" ] || [ "$SSL_MODE" == "STRICT" ]; then
+ sed -e "s/.*<\/ssl-mode>/strict<\/ssl-mode>/g;s//strict<\/ssl-mode>/g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ else
+ sed -e "s/.*<\/ssl-mode>/allowall<\/ssl-mode>/g;s//allowall<\/ssl-mode>/g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ fi
+
+ #Configure RESTCOMM_HOSTNAME at restcomm.xml. If not set "STATIC_ADDRESS" will be used.
+ if [ -n "$RESTCOMM_HOSTNAME" ]; then
+ echo "HOSTNAME $RESTCOMM_HOSTNAME"
+
+ sed -i "s|.*<\/hostname>|${RESTCOMM_HOSTNAME}<\/hostname>|" $RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i "s||${RESTCOMM_HOSTNAME}<\/hostname>|" $RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ if ! grep "${BIND_ADDRESS}.*${RESTCOMM_HOSTNAME}" /etc/hosts ; then
+ if hash host 2>/dev/null; then
+ if ! host ${RESTCOMM_HOSTNAME} > /dev/null
+ then
+ echo "${BIND_ADDRESS} ${RESTCOMM_HOSTNAME}" >> /etc/hosts
+ fi
+ else
+ echo "INFO: \"host\" programm does not exist ('dnsutils' package) please make sure that used hostname has a valid DNS resolution."
+ echo "INFO:IF not add the necessary hostname Ip resolution at /etc/hosts file: e.g echo RestC0mm_BIND_IP RESTCOMM_HOSTNAME >> /etc/hosts "
+ fi
+fi
+ else
+ sed -i "s|.*<\/hostname>|${PUBLIC_IP}<\/hostname>|" $RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i "s||${PUBLIC_IP}<\/hostname>|" $RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ fi
+}
+## Description: OutBoundProxy configuration.
+configOutboundProxy(){
+ echo "Configure outbound-proxy"
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i "s|.*<\/outbound-proxy-uri>|$OUTBOUND_PROXY<\/outbound-proxy-uri>|" $FILE
+ sed -i "s|.*<\/outbound-proxy-user>|$OUTBOUND_PROXY_USERNAME<\/outbound-proxy-user>|" $FILE
+ sed -i "s|.*<\/outbound-proxy-password>|$OUTBOUND_PROXY_PASSWORD<\/outbound-proxy-password>|" $FILE
+
+ sed -i "s||$OUTBOUND_PROXY<\/outbound-proxy-uri>|" $FILE
+ sed -i "s||$OUTBOUND_PROXY_USERNAME<\/outbound-proxy-user>|" $FILE
+ sed -i "s||$OUTBOUND_PROXY_PASSWORD<\/outbound-proxy-password>|" $FILE
+}
+## Description: Push notification server configuration.
+configPushNotificationServer() {
+ echo "Configure push-notification-server"
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ sed -i "s|.*<\/push-notification-server-enabled>|$PUSH_NOTIFICATION_SERVER_ENABLED<\/push-notification-server-enabled>|" $FILE
+ sed -i "s|.*<\/push-notification-server-url>|$PUSH_NOTIFICATION_SERVER_URL<\/push-notification-server-url>|;" $FILE
+ sed -i "s|.*<\/push-notification-server-delay>|$PUSH_NOTIFICATION_SERVER_DELAY<\/push-notification-server-delay>|" $FILE
+
+ sed -i "s||$PUSH_NOTIFICATION_SERVER_ENABLED<\/push-notification-server-enabled>|" $FILE
+ sed -i "s||$PUSH_NOTIFICATION_SERVER_URL<\/push-notification-server-url>|" $FILE
+ sed -i "s||$PUSH_NOTIFICATION_SERVER_DELAY<\/push-notification-server-delay>|" $FILE
+}
+## Description: Configures Voip Innovations Credentials
+## Parameters : 1.Login
+## 2.Password
+## 3.Endpoint
+configVoipInnovations() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N; s|.*|$3|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ N; s||$3|
+ }" $FILE
+
+ echo 'Configured Voip Innovation credentials'
+}
+
+## Description: PROVISION MANAGER configuration.
+# MANAGERS : VI (Voip innovations),NX (nexmo),VB (Voxbone), BW(Bandwidth).
+configDidProvisionManager() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ if [[ "$PROVISION_PROVIDER" == "VI" || "$PROVISION_PROVIDER" == "vi" ]]; then
+ sed -e "s|phone-number-provisioning class=\".*\"|phone-number-provisioning class=\"org.restcomm.connect.provisioning.number.vi.VoIPInnovationsNumberProvisioningManager\"|" $FILE > $FILE.bak
+
+ mv $FILE.bak $FILE
+
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N; s|.*|$3|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ N; s||$3|
+ }" $FILE
+
+ sed -i "s|.*<\/outboudproxy-user-at-from-header>|"false"<\/outboudproxy-user-at-from-header>|" $FILE
+ sed -i "s||"false"<\/outboudproxy-user-at-from-header>|" $FILE
+ echo 'Configured Voip Innovation credentials'
+ else
+ if [[ "$PROVISION_PROVIDER" == "BW" || "$PROVISION_PROVIDER" == "bw" ]]; then
+ sed -e "s|phone-number-provisioning class=\".*\"|phone-number-provisioning class=\"org.restcomm.connect.provisioning.number.bandwidth.BandwidthNumberProvisioningManager\"|" $FILE > $FILE.bak
+
+ mv $FILE.bak $FILE
+
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N; s|.*|$6|
+ N; s|.*|$4|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ N; s||$6|
+ N; s||$4|
+ }" $FILE
+
+ sed -i "s|.*<\/outboudproxy-user-at-from-header>|"false"<\/outboudproxy-user-at-from-header>|" $FILE
+ sed -i "s||"false"<\/outboudproxy-user-at-from-header>|" $FILE
+ echo 'Configured Bandwidth credentials'
+ else
+ if [[ "$PROVISION_PROVIDER" == "NX" || "$PROVISION_PROVIDER" == "nx" ]]; then
+ echo "Nexmo PROVISION_PROVIDER"
+ sed -i "s|phone-number-provisioning class=\".*\"|phone-number-provisioning class=\"org.restcomm.connect.provisioning.number.nexmo.NexmoPhoneNumberProvisioningManager\"|" $FILE
+
+ if [[ -z "$8" ]]; then
+ sed -i "// {
+ N; s|||
+ N; s|||
+ N; s|||
+ N; s|||
+ }" $FILE
+ else
+ sed -i "// {
+ N; s|||
+ N; s|||
+ N; s|||
+ N; s|||
+ }" $FILE
+ fi
+
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N
+ N; s|.*|$7|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ N
+ N; s||$7|
+ }" $FILE
+
+ sed -i "s|.*<\/outboudproxy-user-at-from-header>|"true"<\/outboudproxy-user-at-from-header>|" $FILE
+ sed -i "s||"true"<\/outboudproxy-user-at-from-header>|" $FILE
+
+ else
+ if [[ "$PROVISION_PROVIDER" == "VB" || "$PROVISION_PROVIDER" == "vb" ]]; then
+ echo "Voxbone PROVISION_PROVIDER"
+ sed -i "s|phone-number-provisioning class=\".*\"|phone-number-provisioning class=\"org.restcomm.connect.provisioning.number.voxbone.VoxbonePhoneNumberProvisioningManager\"|" $FILE
+
+ sed -i "// {
+ N; s|||
+ N; s|||
+ N; s|||
+ N; s|||
+ }" $FILE
+
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ }" $FILE
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ }" $FILE
+ sed -i "s|.*<\/outboudproxy-user-at-from-header>|"false"<\/outboudproxy-user-at-from-header>|" $FILE
+ sed -i "s||"false"<\/outboudproxy-user-at-from-header>|" $FILE
+
+ fi
+ fi
+ fi
+ fi
+}
+
+## Description: Configures Fax Service Credentials
+## Parameters : 1.Username
+## 2.Password
+configFaxService() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ }" $FILE
+
+ echo 'Configured Fax Service credentials'
+}
+
+## Description: Configures Sms Aggregator
+## Parameters : 1.Outbound endpoint IP
+##
+configSmsAggregator() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ sed -i "// {
+ N; s|.*|$2|
+ N; s|.*|$1|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$2|
+ N; s||$1|
+ }" $FILE
+ echo "Configured Sms Aggregator using OUTBOUND PROXY $1"
+}
+
+## Description: Configures Speech Recognizer
+## Parameters : 1.iSpeech Key
+configSpeechRecognizer() {
+ if [ -n "$ISPEECH_KEY" ]; then
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ sed -i "// {
+ N; s||$1|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ }" $FILE
+
+ echo 'Configured the Speech Recognizer'
+ fi
+}
+
+## Description: Configures available speech synthesizers
+## Parameters : none
+configSpeechSynthesizers() {
+ if [[ "$TTSSYSTEM" == "voicerss" ]]; then
+ configVoiceRSS $VOICERSS_KEY
+
+ elif [[ "$TTSSYSTEM" == "awspolly" ]]; then
+ configAWSPolly $AWS_ACCESS_KEY $AWS_SECRET_KEY $AWS_REGION
+
+ else
+ configAcapela $ACAPELA_APPLICATION $ACAPELA_LOGIN $ACAPELA_PASSWORD
+ fi
+}
+
+## Description: Configures Acapela Speech Synthesizer
+## Parameters : 1.Application Code
+## 2.Login
+## 3.Password
+configAcapela() {
+ if [[ -z $ACAPELA_APPLICATION || -z $ACAPELA_LOGIN || -z $ACAPELA_PASSWORD ]]; then
+ echo '!Please make sure that all necessary settings for acapela are set!'
+ else
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i 's|||' $FILE
+
+ sed -i "// {
+ N
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N; s|.*|$3|
+ }" $FILE
+
+ sed -i "// {
+ N
+ N; s||$1|
+ N; s||$2|
+ N; s||$3|
+ }" $FILE
+
+ echo 'Configured Acapela Speech Synthesizer'
+ fi
+}
+
+
+## Description: Configures VoiceRSS Speech Synthesizer
+## Parameters : 1.API key
+configVoiceRSS() {
+ if [ -n "$VOICERSS_KEY" ]; then
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i 's|||' $FILE
+
+ sed -i "/http:\/\/api.voicerss.org<\/service-root>/ {
+ N; s|.*|$1|
+ }" $FILE
+
+ sed -i "/http:\/\/api.voicerss.org<\/service-root>/ {
+ N; s||$1|
+ }" $FILE
+
+ echo 'Configured VoiceRSS Speech Synthesizer'
+
+ else
+ echo 'Please set KEY for VoiceRSS TTS'
+ fi
+}
+
+## Description: Configures AWS Polly Speech Synthesizer
+## Parameters : 1.AWS Access Key
+## 2.AWS Secret key
+## 3.AWS Region
+configAWSPolly() {
+ if [[ -z $AWS_ACCESS_KEY || -z $AWS_SECRET_KEY || -z $AWS_REGION ]]; then
+ echo '!Please make sure that all necessary settings for AWS Polly are set!'
+ else
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i 's|||' $FILE
+
+ sed -i "// {
+ N
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N; s|.*|$3|
+ }" $FILE
+
+ sed -i "// {
+ N
+ N; s||$1|
+ N; s||$2|
+ N; s||$3|
+ }" $FILE
+
+ echo 'Configured AWS Polly Speech Synthesizer'
+ fi
+}
+
+## Description: Updates RestComm DARS properties for RestComm
+## Parameters : none
+configDARSProperties() {
+ FILE=$RESTCOMM_DARS/mobicents-dar.properties
+ sed -e 's|^ALL=.*|ALL=("RestComm", "DAR\:From", "NEUTRAL", "", "NO_ROUTE", "0")|' $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo "Updated mobicents-dar properties"
+}
+
+## Description: Configures TeleStax Proxy
+## Parameters : 1.Enabled
+## 2.login
+## 3.password
+## 4.Endpoint
+## 5.Proxy IP
+configTelestaxProxy() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ enabled="$1"
+ if [ "$enabled" == "true" ] || [ "$enabled" == "TRUE" ]; then
+ sed -i "// {
+ N; s|.*|$1|
+ N; s|.*|$2|
+ N; s|.*|$3|
+ N; s|.*|$4|
+ N; s|.*|$6|
+ N; s|.*|http:\/\/$5:2080|
+ }" $FILE
+
+ sed -i "// {
+ N; s||$1|
+ N; s||$2|
+ N; s||$3|
+ N; s||$4|
+ N; s||$6|
+ N; s||http:\/\/$5:2080|
+ }" $FILE
+
+ echo 'Enabled TeleStax Proxy'
+ else
+ sed -i "// {
+ N; s|.*|false|
+ N; s|.*||
+ N; s|.*||
+ N; s|.*||
+ N; s|.*||
+ N; s|.*|http:\/\/127.0.0.1:2080|
+ }" $FILE
+
+ sed -i "// {
+ N; s||false|
+ N; s|||
+ N; s|||
+ N; s|||
+ N; s|||
+ N; s||http:\/\/127.0.0.1:2080|
+ }" $FILE
+
+ echo 'Disabled TeleStax Proxy'
+ fi
+}
+
+
+## Description: Configures Media Server Manager
+## Parameters : 1.Enabled
+## 2.private IP
+## 3.public IP
+
+configMediaServerManager() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ bind_address="$1"
+ ms_address="$2"
+ ms_external_address="$3"
+
+ #Check for Por Offset
+ local LOCALMGCP=$((LOCALMGCP + PORT_OFFSET))
+ local REMOTEMGCP=$((REMOTEMGCP + PORT_OFFSET))
+
+ sed -e "s/.*<\/local-address>/$bind_address<\/local-address>/g;s//$bind_address<\/local-address>/g" \
+ -e "s/.*<\/local-port>/$LOCALMGCP<\/local-port>/g;s//$LOCALMGCP<\/local-port>/g" \
+ -e "s/.*<\/remote-address>/$ms_address<\/remote-address>/g;s//$ms_address<\/remote-address>/g" \
+ -e "s/.*<\/remote-port>/$REMOTEMGCP<\/remote-port>/g;s//$REMOTEMGCP<\/remote-port>/g" \
+ -e "s/.*<\/response-timeout>/$MGCP_RESPONSE_TIMEOUT<\/response-timeout>/g;s//$MGCP_RESPONSE_TIMEOUT<\/response-timeout>/g" \
+ -e "s/<\!--.*.*<\/external-address>.*-->/$ms_external_address<\/external-address>/g;" \
+ -e "s/.*<\/external-address>/$ms_external_address<\/external-address>/g;s//$ms_external_address<\/external-address>/g" $FILE > $FILE.bak
+
+ mv $FILE.bak $FILE
+ echo 'Configured Media Server Manager'
+}
+
+## Description: Configures SMPP Account Details
+## Parameters : 1.activate
+## 2.systemID
+## 3.password
+## 4.systemType
+## 5.peerIP
+## 6.peerPort
+## 7.sourceMap
+## 8.destinationMap
+
+configSMPPAccount() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ activate="$1"
+ systemID="$2"
+ password="$3"
+ systemType="$4"
+ peerIP="$5"
+ peerPort="$6"
+ sourceMap="$7"
+ destinationMap="$8"
+
+
+ sed -i "s|||g" $FILE
+ #Add sourceMap && destinationMap
+
+
+ if [ "$activate" == "true" ] || [ "$activate" == "TRUE" ]; then
+ sed -i "/.*|$systemID|
+ N; s|.*|$peerIP|
+ N; s|.*|$peerPort|
+ N
+ N
+ N; s|.*|$password|
+ N; s|.*|$systemType|
+ }" $FILE
+
+ sed -i "/$systemID|
+ N; s||$peerIP|
+ N; s||$peerPort|
+ N
+ N
+ N; s||$password|
+ N; s||$systemType|
+ }" $FILE
+
+ sed -i "s|||" $FILE
+ echo 'Configured SMPP Account Details'
+
+ else
+ sed -i "/.*||
+ N; s|.*||
+ N; s|.*||
+ N
+ N
+ N; s|.*||
+ N; s|.*||
+ }" $FILE
+
+ sed -i "/||
+ N; s|||
+ N; s|||
+ N
+ N
+ N; s|||
+ N; s|||
+ }" $FILE
+
+ sed -i "s|||" $FILE
+ echo 'Configured SMPP Account Details'
+ fi
+}
+
+## Description: Configures RestComm "prompts & cache" URIs
+#Mostly used for external MS.
+configRestCommURIs() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ #check for port offset
+ local HTTP_PORT=$((HTTP_PORT + PORT_OFFSET))
+ local HTTPS_PORT=$((HTTPS_PORT + PORT_OFFSET))
+
+ if [ -n "$MS_ADDRESS" ] && [ "$MS_ADDRESS" != "$BIND_ADDRESS" ]; then
+ if [ "$DISABLE_HTTP" = "true" ]; then
+ PORT="$HTTPS_PORT"
+ SCHEME='https'
+ else
+ PORT="$HTTP_PORT"
+ SCHEME='http'
+ fi
+
+ # STATIC_ADDRESS will be populated by user or script before
+ REMOTE_ADDRESS="${SCHEME}://${PUBLIC_IP}:${PORT}"
+
+ sed -i "s|.*|$REMOTE_ADDRESS/restcomm/audio<\/prompts-uri>|" $FILE
+ sed -i "s|.*/cache-uri>|$REMOTE_ADDRESS/restcomm/cache|" $FILE
+ sed -i "s|.*|$REMOTE_ADDRESS/restcomm/errors|" $FILE
+
+ sed -i "s||$REMOTE_ADDRESS/restcomm/audio<\/prompts-uri>|" $FILE
+ sed -i "s||$REMOTE_ADDRESS/restcomm/cache|" $FILE
+ sed -i "s||$REMOTE_ADDRESS/restcomm/errors|" $FILE
+
+ echo "Updated prompts-uri cache-uri error-dictionary-uri External MSaddress for "
+ fi
+ echo 'Configured RestCommURIs'
+}
+
+## Description: Specify the path where Recordings are saved.
+updateRecordingsPath() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ if [ -n "$RECORDINGS_PATH" ]; then
+ sed -i "s|.*|file://${RECORDINGS_PATH}<\/recordings-path>|" $FILE
+ sed -i "s||file://${RECORDINGS_PATH}<\/recordings-path>|" $FILE
+ echo "Updated RECORDINGS_PATH "
+
+ else
+ sed -i "s|.*|file://\${restcomm:home}/recordings<\/recordings-path>|" $FILE
+ sed -i "s||file://\${restcomm:home}/recordings<\/recordings-path>|" $FILE
+ fi
+ echo 'Configured Recordings path'
+}
+
+## Description: Specify HTTP/S ports used.
+#Needed when port offset is set.
+configHypertextPort(){
+ MSSFILE=$RESTCOMM_CONF/mss-sip-stack.properties
+
+ #Check for Por Offset
+ local HTTP_PORT=$((HTTP_PORT + PORT_OFFSET))
+ local HTTPS_PORT=$((HTTPS_PORT + PORT_OFFSET))
+
+ sed -e "s|org.mobicents.ha.javax.sip.LOCAL_HTTP_PORT=.*|org.mobicents.ha.javax.sip.LOCAL_HTTP_PORT=$HTTP_PORT|" \
+ -e "s|org.mobicents.ha.javax.sip.LOCAL_SSL_PORT=.*|org.mobicents.ha.javax.sip.LOCAL_SSL_PORT=$HTTPS_PORT|" $MSSFILE > $MSSFILE.bak
+ mv $MSSFILE.bak $MSSFILE
+ echo "Configured HTTP ports"
+}
+
+## Description: Other single configuration
+#enable/disable SSLSNI (default:false)
+otherRestCommConf(){
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -e "s/.*<\/play-music-for-conference>/${PLAY_WAIT_MUSIC}<\/play-music-for-conference>/g;s//${PLAY_WAIT_MUSIC}<\/play-music-for-conference>/g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ #Remove if is set in earlier run.
+ grep -q 'allowLegacyHelloMessages' $RESTCOMM_BIN/standalone.conf && sed -i -E "s/(.*)( -Dsun.security.ssl.allowLegacyHelloMessages=false -Djsse.enableSNIExtension=)(true|false)(.*)/\1\4/" $RESTCOMM_BIN/standalone.conf
+
+ if [[ "$SSLSNI" == "false" || "$SSLSNI" == "FALSE" ]]; then
+ sed -i "s|-Djava.awt.headless=true|& -Dsun.security.ssl.allowLegacyHelloMessages=false -Djsse.enableSNIExtension=false|" $RESTCOMM_BIN/standalone.conf
+ else
+ sed -i "s|-Djava.awt.headless=true|& -Dsun.security.ssl.allowLegacyHelloMessages=false -Djsse.enableSNIExtension=true|" $RESTCOMM_BIN/standalone.conf
+ fi
+
+ if [ -n "$HSQL_DIR" ]; then
+ echo "HSQL_DIR $HSQL_DIR"
+ FILEDB=$HSQL_DIR/restcomm.script
+ sed -i "s|.*|${HSQL_DIR}|" $FILE
+ if [ ! -f $FILEDB ]; then
+ mkdir -p $HSQL_DIR
+ cp $RESTCOMM_DEPLOY/WEB-INF/data/hsql/* $HSQL_DIR
+ fi
+ fi
+
+ if [ -n "$USSDGATEWAYURI" ]; then
+ echo "USSD GATEWAY configuration"
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed -i "s|.*|$USSDGATEWAYURI|" $FILE
+ sed -i "s|.*|$USSDGATEWAYUSER|" $FILE
+ sed -i "s|.*|$USSDGATEWAYPASSWORD|" $FILE
+
+ sed -i "s||$USSDGATEWAYURI|" $FILE
+ sed -i "s||$USSDGATEWAYUSER|" $FILE
+ sed -i "s||$USSDGATEWAYPASSWORD|" $FILE
+ fi
+
+ echo "HTTP_RESPONSE_TIMEOUT $HTTP_RESPONSE_TIMEOUT"
+ sed -i"." "// {
+ N
+ N;
+ N;
+ N;
+ N; s|.*|$HTTP_RESPONSE_TIMEOUT|
+ }" $FILE
+
+ sed -i"." "// {
+ N
+ N;
+ N;
+ N;
+ N; s||$HTTP_RESPONSE_TIMEOUT|
+ }" $FILE
+
+ echo "CACHE_NO_WAV $CACHE_NO_WAV"
+ sed -i "s|.*|${CACHE_NO_WAV}|" $FILE
+
+ echo "End Rest RestComm configuration"
+}
+
+disableRVD() {
+ if [[ -f "$RVD_DEPLOY_PATH.deployed" || -f "$RVD_DEPLOY_PATH.dodeploy" ]]; then
+ rm -f "$RVD_DEPLOY_PATH.deployed"
+ rm -f "$RVD_DEPLOY_PATH.dodeploy"
+ echo "RVD undeployed (or not deployed at all)"
+ else
+ echo "RVD not deployed"
+ fi
+}
+
+enableRVD() {
+ if [ -f "$RVD_DEPLOY_PATH.deployed" ]; then
+ echo "RVD already deployed"
+ else
+ touch "$RVD_DEPLOY_PATH".dodeploy
+ echo "RVD deployed"
+ fi
+}
+
+confRVD(){
+ if [[ "$RVD_UNDEPLOY" = true || "$RVD_UNDEPLOY" = True || "$RVD_UNDEPLOY" = TRUE ]]; then
+ disableRVD
+ else
+ enableRVD
+ echo "Configuring bundled RVD"
+ if [ -n "$RVD_LOCATION" ]; then
+ echo "RVD_LOCATION $RVD_LOCATION"
+ mkdir -p `echo $RVD_LOCATION`
+ sed -i "s|.*|${RVD_LOCATION}|" $RVD_DEPLOY_PATH/WEB-INF/rvd.xml
+
+ COPYFLAG=$RVD_LOCATION/.demos_initialized
+ if [ -f "$COPYFLAG" ]; then
+ #Do nothing, we already copied the demo file to the new workspace
+ echo "RVD demo application are already copied"
+ else
+ echo "Will copy RVD demo applications to the new workspace $RVD_LOCATION"
+ cp -ar $RVD_DEPLOY_PATH/workspace/* $RVD_LOCATION
+ touch $COPYFLAG
+ fi
+
+ fi
+ fi
+}
+
+## Adds/removes / element based on $RVD_URL
+## This version of confRcmlserver() will used xmlstarlet and will probably sed commands that rely on empty elements like instead of
+#confRcmlserver(){
+# echo "Configuring ..."
+# local RESTCOMM_XML=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+# if [ -z "$RVD_URL" ]; then
+# # remove / element altogether
+# xmlstarlet ed -P -d "/restcomm/rcmlserver/base-url" "$RESTCOMM_XML" > "${RESTCOMM_XML}.bak"
+# mv ${RESTCOMM_XML}.bak "$RESTCOMM_XML"
+# else
+# # remove existing element
+# xmlstarlet ed -P -d /restcomm/rcmlserver/base-url "$RESTCOMM_XML" > "${RESTCOMM_XML}.bak"
+# mv ${RESTCOMM_XML}.bak "$RESTCOMM_XML"
+# # add it anew
+# xmlstarlet ed -P -s /restcomm/rcmlserver -t elem -n base-url -v "$RVD_URL" "${RESTCOMM_XML}" > "${RESTCOMM_XML}.bak"
+# mv "${RESTCOMM_XML}.bak" "$RESTCOMM_XML"
+# fi
+# echo " configured"
+#}
+
+# Updates / according to $RVD_URL
+# This version of confRcmlserver() used sed for backwards compatibility with existing sed commands in this
+confRcmlserver() {
+ local RESTCOMM_XML=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ sed "//,/<\/rcmlserver>/ s|.*|${RVD_URL}|" "$RESTCOMM_XML" > "${RESTCOMM_XML}.bak"
+ mv ${RESTCOMM_XML}.bak "$RESTCOMM_XML"
+ echo "Configured . base-url set to '$RVD_URL'"
+}
+
+
+#Auto Configure RMS Networking, if MANUAL_SETUP=false.
+configRMSNetworking() {
+ if [[ "$MANUAL_SETUP" == "false" || "$MANUAL_SETUP" == "FALSE" ]]; then
+ sed -i "s|BIND_ADDRESS=.*|BIND_ADDRESS=${BIND_ADDRESS}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|MGCP_ADDRESS=.*|MGCP_ADDRESS=${BIND_ADDRESS}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|NETWORK=.*|NETWORK=${BIND_NETWORK}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SUBNET=.*|SUBNET=${BIND_SUBNET_MASK}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ fi
+}
+
+configAsrDriver() {
+ if [ ! -z "$MG_ASR_DRIVERS" ] && [ ! -z "$MG_ASR_DRIVER_DEFAULT" ]; then
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/mg-asr-drivers" \
+ -s "/restcomm/runtime-settings" -t elem -n mg-asr-drivers \
+ -i "/restcomm/runtime-settings/mg-asr-drivers" -t attr -n default -v "$MG_ASR_DRIVER_DEFAULT" \
+ $FILE
+ for driverName in ${MG_ASR_DRIVERS//,/ }; do
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/mg-asr-drivers" -t elem -n "driver" -v "$driverName" \
+ $FILE
+ done
+ fi
+}
+
+## Description: DNS Provisioning Manager Configuration.
+configDnsProvisioningManager() {
+ echo "Configure DnsProvisioningManager"
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/dns-provisioning" \
+ -s "/restcomm/runtime-settings" -t elem -n dns-provisioning \
+ -i "/restcomm/runtime-settings/dns-provisioning" -t attr -n class -v "$DNS_PROVISIONING_CLASS" \
+ $FILE
+
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/dns-provisioning" \
+ -s "/restcomm/runtime-settings" -t elem -n dns-provisioning \
+ -i "/restcomm/runtime-settings/dns-provisioning" -t attr -n enabled -v "$DNS_PROVISIONING_ENABLED" \
+ $FILE
+
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/dns-provisioning" \
+ -s "/restcomm/runtime-settings" -t elem -n dns-provisioning \
+ -i "/restcomm/runtime-settings/dns-provisioning" -t attr -n class -v "$DNS_PROVISIONING_CLASS" \
+ $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning" -t attr -n "enabled" -v "$DNS_PROVISIONING_ENABLED" $FILE
+
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/dns-provisioning/aws-route53" \
+ -s "/restcomm/runtime-settings/dns-provisioning" -t elem -n aws-route53 $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "restcomm-a-record-value" -v "$DNS_PROVISIONING_AWS_ROUTE53_A_VALUE" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "restcomm-srv-record-value" -v "$DNS_PROVISIONING_AWS_ROUTE53_SRV_VALUE" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "access-key" -v "$DNS_PROVISIONING_AWS_ROUTE53_ACCESS_KEY" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "secret-key" -v "$DNS_PROVISIONING_AWS_ROUTE53_SECRET_KEY" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "region" -v "$DNS_PROVISIONING_AWS_ROUTE53_REGION" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "ttl" -v "$DNS_PROVISIONING_AWS_ROUTE53_TTL" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "hosted-zone-id" -v "$DNS_PROVISIONING_AWS_ROUTE53_HOSTED_ZONE_ID" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n "is-alias" -v "$DNS_PROVISIONING_AWS_ROUTE53_IS_ALIAS" $FILE
+
+
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/dns-provisioning/aws-route53/alias-target" \
+ -s "/restcomm/runtime-settings/dns-provisioning/aws-route53" -t elem -n alias-target $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53/alias-target" -t elem -n "evaluate-target-health" -v "$DNS_PROVISIONING_AWS_ROUTE53_ALIAS_EVALUATE_TARGET_HEALTH" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning/aws-route53/alias-target" -t elem -n "hosted-zone-id" -v "$DNS_PROVISIONING_AWS_ROUTE53_ALIAS_HOSTED_ZONE_ID" $FILE
+
+}
+
+configConferenceTimeout(){
+ echo "Configure conference timeout $CONFERENCE_TIMEOUT"
+ xmlstarlet ed --inplace -u "/restcomm/runtime-settings/conference-timeout" -v "$CONFERENCE_TIMEOUT" $FILE
+}
+
+configSdrService(){
+ xmlstarlet ed --inplace -d "/restcomm/runtime-settings/sdr-service" $FILE
+ if [ -n "$SDR_SERVICE_CLASS" ]; then
+ echo "Configure Sdr service"
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings" -t elem -n sdr-service \
+ -i "/restcomm/runtime-settings/sdr-service" -t attr -n class -v "$SDR_SERVICE_CLASS" \
+ $FILE
+ if [ -n "$SDR_SERVICE_HTTP_URI" ]; then
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/sdr-service" -t elem -n http-uri -v "$SDR_SERVICE_HTTP_URI" $FILE
+ fi
+ if [ -n "$SDR_SERVICE_AMQP_URI" ]; then
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/sdr-service" -t elem -n amqp-uri -v "$SDR_SERVICE_AMQP_URI" $FILE
+ fi
+ fi
+}
+
+# MAIN
+echo 'Configuring RestComm...'
+configRCJavaOpts
+configDARSProperties
+configRestcomm "$PUBLIC_IP"
+#configVoipInnovations "$VI_LOGIN" "$VI_PASSWORD" "$VI_ENDPOINT"
+
+if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ HOSTFORDID=$LBHOST
+else
+ HOSTFORDID=$PUBLIC_IP
+
+ #Check for port offset.
+ DID_URIPORT=$((DID_URIPORT + PORT_OFFSET))
+fi
+
+if [ -z "$MS_ADDRESS" ]; then
+ MS_ADDRESS=$BIND_ADDRESS
+fi
+
+configDidProvisionManager "$DID_LOGIN" "$DID_PASSWORD" "$DID_ENDPOINT" "$DID_SITEID" "$HOSTFORDID" "$DID_ACCOUNTID" "$SMPP_SYSTEM_TYPE" "$DID_URIPORT"
+configFaxService "$INTERFAX_USER" "$INTERFAX_PASSWORD"
+configSmsAggregator "$SMS_OUTBOUND_PROXY" "$SMS_PREFIX"
+configSpeechRecognizer "$ISPEECH_KEY"
+configSpeechSynthesizers
+configTelestaxProxy "$ACTIVE_PROXY" "$TP_LOGIN" "$TP_PASSWORD" "$INSTANCE_ID" "$PROXY_IP" "$SITE_ID"
+configMediaServerManager "$BIND_ADDRESS" "$MS_ADDRESS" "$MEDIASERVER_EXTERNAL_ADDRESS"
+configSMPPAccount "$SMPP_ACTIVATE" "$SMPP_SYSTEM_ID" "$SMPP_PASSWORD" "$SMPP_SYSTEM_TYPE" "$SMPP_PEER_IP" "$SMPP_PEER_PORT" "$SMPP_SOURCE_MAP" "$SMPP_DEST_MAP"
+configRestCommURIs
+updateRecordingsPath
+configHypertextPort
+configOutboundProxy
+configPushNotificationServer
+otherRestCommConf
+confRcmlserver
+confRVD
+configRMSNetworking
+configAsrDriver
+configDnsProvisioningManager
+configConferenceTimeout
+configSdrService
+echo 'Configured RestComm!'
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd-logging.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd-logging.sh
new file mode 100755
index 0000000000..5aed5b9025
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd-logging.sh
@@ -0,0 +1,190 @@
+#!/bin/bash
+##
+## Logging configuration for RVD
+##
+## standalone-sip.xml is updated with RVD handler and loggers configuration. By default, if the respective
+## configuration is missing it is added. Otherwise nothing happens. If the logging LEVEL is specified in the
+## command line loggers are updated/created accordingly.
+##
+## usage:
+##
+## ./config-rvd-logging.sh - adds handler and logger (INFO) elements if missing
+## ./config-rvd-logging.sh DEBUG - creates or updates loggers by setting level to DEBUG
+## ./config-rvd-logging.sh DEBUG FILE - creates or updates loggers (DEBUG) but also configures them to use the 'FILE' periodic handler (main restcomm log)
+##
+## environment:
+##
+## requires RESTCOMM_HOME env variable to be set
+##
+## Author: otsakir@gmail.com - Orestis Tsakiridis
+
+# Default values
+STANDALONE_SIP=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+LOG_FILE="rvd/rvd.log"; # this is relative to "jboss.server.log.dir"
+RVD_LOG_LEVEL=INFO # logging level that will be used if handlers/loggers are missing
+LOGGING_HANDLER=RVD # the handler to be used for RVD logging. Set this to 'FILE' to redirect all messages to the main restcomm log (server.log)
+
+# Variables
+XML_UPDATED=false # flag to format xml file only if updated
+OVERRIDE=false
+
+error(){
+ echo "error parsing standalone-sip.xml"
+ exit 1
+}
+
+createHandler(){
+
+ # create the RVD handler if it is missing
+ xmlstarlet sel -Q -N logns=urn:jboss:domain:logging:1.2 -t -m "//logns:periodic-rotating-file-handler[@name='RVD']" -o "found" $STANDALONE_SIP
+ result=$?
+ if [ "$result" -eq 1 ]; then
+ echo "adding RVD handler"
+ xmlstarlet ed -P -N logns=urn:jboss:domain:logging:1.2 -d "//logns:periodic-rotating-file-handler[@name='RVD']" -s "//logns:subsystem" -t elem -n periodic-rotating-file-handler_TMP -v "" \
+ -i //periodic-rotating-file-handler_TMP -t attr -n name -v RVD \
+ -i //periodic-rotating-file-handler_TMP -t attr -n autoflush -v true \
+ -s //periodic-rotating-file-handler_TMP -t elem -n formatter_TMP -v "" \
+ -s //formatter_TMP -t elem -n pattern-formatter_TMP -v "" \
+ -i //pattern-formatter_TMP -t attr -n pattern -v "%d{MMdd HH:mm:ss,SSS X} %p (%t) %m %n" \
+ -s //periodic-rotating-file-handler_TMP -t elem -n file_TMP -v "" \
+ -i //file_TMP -t attr -n relative-to -v "jboss.server.log.dir" \
+ -i //file_TMP -t attr -n path -v "rvd/rvd.log" \
+ -s //periodic-rotating-file-handler_TMP -t elem -n suffix_TMP -v "" \
+ -s //suffix_TMP -t attr -n value -v ".yyyy-MM-dd" \
+ -s //periodic-rotating-file-handler_TMP -t elem -n append_TMP -v "" \
+ -s //append_TMP -t attr -n value -v true \
+ -r //periodic-rotating-file-handler_TMP -v periodic-rotating-file-handler \
+ -r //formatter_TMP -v formatter \
+ -r //pattern-formatter_TMP -v pattern-formatter \
+ -r //file_TMP -v file \
+ -r //suffix_TMP -v suffix \
+ -r //append_TMP -v append \
+ $STANDALONE_SIP > ${STANDALONE_SIP}_tmp
+ mv ${STANDALONE_SIP}_tmp $STANDALONE_SIP
+ XML_UPDATED=true
+ else
+ if [ "$result" -eq 3 ];
+ then
+ error
+ fi
+ fi
+
+}
+
+createLoggers(){
+
+ # create RVD local logger if it is missing
+ xmlstarlet sel -Q -N logns=urn:jboss:domain:logging:1.2 -t -m "//logns:logger[@category='org.restcomm.connect.rvd.LOCAL']" -o "found" $STANDALONE_SIP
+ result=$?
+ if [ "$result" -eq 1 -o \( "$result" = 0 -a "$OVERRIDE" = true \) ]; then
+ echo "adding RVD local logger - $RVD_LOG_LEVEL/$LOGGING_HANDLER handler"
+ xmlstarlet ed -P -N logns=urn:jboss:domain:logging:1.2 -d "//logns:logger[@category='org.restcomm.connect.rvd.LOCAL']" \
+ -s "//logns:subsystem" -t elem -n logger_TMP -v "" \
+ -i //logger_TMP -t attr -n category -v "org.restcomm.connect.rvd.LOCAL" \
+ -s //logger_TMP -t elem -n level_TMP -v "" \
+ -i //level_TMP -t attr -n name -v "$RVD_LOG_LEVEL" \
+ -s //logger_TMP -t elem -n handlers_TMP -v "" \
+ -s //handlers_TMP -t elem -n handler_TMP -v "" \
+ -s //handler_TMP -t attr -n name -v "$LOGGING_HANDLER" \
+ -r //logger_TMP -v logger \
+ -r //level_TMP -v level \
+ -r //handlers_TMP -v handlers \
+ -r //handler_TMP -v handler \
+ $STANDALONE_SIP > ${STANDALONE_SIP}_tmp
+ mv ${STANDALONE_SIP}_tmp $STANDALONE_SIP
+ XML_UPDATED=true
+ else
+ if [ "$result" -eq 3 ];
+ then
+ error
+ fi
+ fi
+
+ # create RVD global logger if it is missing
+ xmlstarlet sel -Q -N logns=urn:jboss:domain:logging:1.2 -t -m "//logns:logger[@category='org.restcomm.connect.rvd.GLOBAL']" -o "found" $STANDALONE_SIP
+ result=$?
+ if [ "$result" -eq 1 -o \( "$result" = 0 -a "$OVERRIDE" = true \) ]; then
+ echo "adding RVD global logger - $RVD_LOG_LEVEL/$LOGGING_HANDLER handler"
+ xmlstarlet ed -P -N logns=urn:jboss:domain:logging:1.2 -d "//logns:logger[@category='org.restcomm.connect.rvd.GLOBAL']" \
+ -s "//logns:subsystem" -t elem -n logger_TMP -v "" \
+ -i //logger_TMP -t attr -n category -v "org.restcomm.connect.rvd.GLOBAL" \
+ -s //logger_TMP -t elem -n level_TMP -v "" \
+ -i //level_TMP -t attr -n name -v "$RVD_LOG_LEVEL" \
+ -s //logger_TMP -t elem -n handlers_TMP -v "" \
+ -s //handlers_TMP -t elem -n handler_TMP -v "" \
+ -s //handler_TMP -t attr -n name -v "$LOGGING_HANDLER" \
+ -r //logger_TMP -v logger \
+ -r //level_TMP -v level \
+ -r //handlers_TMP -v handlers \
+ -r //handler_TMP -v handler \
+ $STANDALONE_SIP > ${STANDALONE_SIP}_tmp
+ mv ${STANDALONE_SIP}_tmp $STANDALONE_SIP
+ XML_UPDATED=true
+ else
+ if [ "$result" -eq 3 ];
+ then
+ error
+ fi
+ fi
+}
+
+formatXml(){
+ tmpfile=$(mktemp -t rvdconfigXXX)
+ xmlstarlet fo "$STANDALONE_SIP" > "$tmpfile"
+ mv "$tmpfile" "$STANDALONE_SIP"
+}
+
+# MAIN
+
+if [ -z "$RESTCOMM_HOME" ]
+then
+ echo "RESTCOMM_HOME env variable not set"
+ exit 1
+fi
+
+echo "Configuring RVD logging"
+
+# if no (level) argument is given, create default loggers only if they are missing
+if [ -z $1 ]
+then
+ # OVERRIDE is false
+ createHandler
+ createLoggers
+else
+ case "$1" in
+ FATAL|ERROR|WARN|INFO|DEBUG|TRACE|ALL|OFF)
+ # specify logging handler to be used - RVD|FILE)
+ if [ -z "$2" ]
+ then
+ LOGGING_HANDLER=RVD
+ else
+ case "$2" in
+ RVD|FILE)
+ LOGGING_HANDLER=$2
+ ;;
+ *)
+ echo "invalid arguments: handler should be one of RVD|FILE"
+ exit 1
+ ;;
+ esac
+ fi
+ RVD_LOG_LEVEL=$1
+ OVERRIDE=true
+ createHandler
+ createLoggers
+ ;;
+ *)
+ echo "invalid arguments: level should be one of FATAL|ERROR|WARN|INFO|DEBUG|TRACE|ALL|OFF"
+ exit 1
+ ;;
+ esac
+
+fi
+
+# format output if any update happened
+if [ "$XML_UPDATED" = true ]
+then
+ formatXml
+ echo "$STANDALONE_SIP updated"
+fi
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd.sh
new file mode 100755
index 0000000000..2497dc9a13
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd.sh
@@ -0,0 +1,92 @@
+#!/bin/bash
+##
+## Configures rvd.xml based on global configuration options in restcomm.conf and advanced.conf.
+##
+## usage:
+##
+## ./config-rvd-logging.sh - adds handler and logger (INFO) elements if missing
+## ./config-rvd-logging.sh DEBUG - creates or updates loggers by setting level to DEBUG
+## ./config-rvd-logging.sh DEBUG FILE - creates or updates loggers (DEBUG) but also configures them to use the 'FILE' periodic handler (main restcomm log)
+##
+## requirements:
+##
+## RESTCOMM_HOME env variable to be set
+## rvd.xml should be in place (under $RESTCOMM_HOME/standalone/deployments/restcomm-rvd.war)
+##
+## Author: otsakir@gmail.com - Orestis Tsakiridis
+
+# Variables
+RVD_ROOT=$RESTCOMM_HOME/standalone/deployments/restcomm-rvd.war
+RVD_XML_FILE=$RVD_ROOT/WEB-INF/rvd.xml
+
+updateVideoSupport() {
+ matchesCount=`xmlstarlet sel -t -v "count(/rvd/videoSupport)" "$RVD_XML_FILE"`
+ if [ $matchesCount -ge 1 ]; then
+ xmlstarlet ed -P -u "/rvd/videoSupport" -v "$1" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ else
+ xmlstarlet ed -P -s "/rvd" -t elem -n "videoSupport" -v "$1" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ fi
+}
+
+updateMaxMediaFileSize() {
+ matchesCount=`xmlstarlet sel -t -v "count(/rvd/maxMediaFileSize)" "$RVD_XML_FILE"`
+ if [ $matchesCount -ge 1 ]; then
+ xmlstarlet ed -P -u "/rvd/maxMediaFileSize" -v "$1" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ else
+ xmlstarlet ed -P -s "/rvd" -t elem -n "maxMediaFileSize" -v "$1" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ fi
+}
+
+# $1 is RVD_HTTP_TIMEOUT
+updateHttpTimeout() {
+ if [ -z $1 ]; then
+ xmlstarlet ed -P -d "/rvd/defaultHttpTimeout" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ echo "disabled defaultHttpTimeout option";
+ else
+ matchesCount=`xmlstarlet sel -t -v "count(/rvd/defaultHttpTimeout)" "$RVD_XML_FILE"`
+ if [ $matchesCount -ge 1 ]; then
+ xmlstarlet ed -P -u "/rvd/defaultHttpTimeout" -v "$1" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ else
+ xmlstarlet ed -P -s "/rvd" -t elem -n "defaultHttpTimeout" -v "$1" "$RVD_XML_FILE" > ${RVD_XML_FILE}_tmp
+ mv ${RVD_XML_FILE}_tmp ${RVD_XML_FILE}
+ fi
+ echo "set defaultHttpTimeout to $1"
+ fi
+}
+
+# MAIN
+
+if [[ "$RVD_UNDEPLOY" = true || "$RVD_UNDEPLOY" = TRUE || "$RVD_UNDEPLOY" = True ]]; then
+ echo "Skipping RVD configuration since it's not deployed"
+else
+ if [ -z "$RESTCOMM_HOME" ]
+ then
+ echo "RESTCOMM_HOME env variable not set. Aborting."
+ exit 1
+ fi
+ if [ ! -f "$RVD_XML_FILE" ]
+ then
+ echo "rvd.xml not found. Aborting."
+ return
+ fi
+
+ echo "Configuring RVD"
+
+ if [[ "$RVD_VIDEO_SUPPORT" = true || "$RVD_VIDEO_SUPPORT" = TRUE || "$RVD_VIDEO_SUPPORT" = True ]] ; then
+ updateVideoSupport true
+ else
+ updateVideoSupport false
+ fi
+ updateMaxMediaFileSize "$RVD_MAX_MEDIA_FILE_SIZE"
+
+ updateHttpTimeout "$RVD_HTTP_TIMEOUT"
+
+
+ echo "Updated rvd.xml"
+fi
\ No newline at end of file
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-sip-connectors.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-sip-connectors.sh
new file mode 100755
index 0000000000..b0e86b523e
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-sip-connectors.sh
@@ -0,0 +1,160 @@
+#!/bin/bash
+## Description: Configures SIP connectors
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+## Author : Pavel Slegr (pavel.slegr@telestax.com)
+
+## Description: Configures the connectors for RestComm & configures Proxy if enabled
+## Parameters : 1.Public IP
+configConnectors() {
+ FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+ static_address="$1"
+
+ #delete additional connectors if any added to erlier run of the script.
+ if grep -q "" $FILE
+ then
+ echo "Additional Connectors Created earlier, going to delete the connectors"
+ sed '//,//d' $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ else
+ echo "Additional Connectors not Created earlier"
+ fi
+
+ #IF LB activated. (Algorithm "use-load-balancer" used).
+ if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ if [ -z "$LB_INTERNAL_IP" ]; then
+ LB_INTERNAL_IP=$LB_PUBLIC_IP
+ fi
+ sed -e "s|path-name=\"org.mobicents.ext\" \(app-dispatcher-class=.*\)|path-name=\"org.mobicents.ha.balancing.only\" \1|" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ $FILE > $FILE.bak
+
+ else
+
+ #Check for Por Offset
+ local SIP_PORT_UDP=$((SIP_PORT_UDP + PORT_OFFSET))
+ local SIP_PORT_TCP=$((SIP_PORT_TCP + PORT_OFFSET))
+ local SIP_PORT_TLS=$((SIP_PORT_TLS + PORT_OFFSET))
+ local SIP_PORT_WS=$((SIP_PORT_WS + PORT_OFFSET))
+ local SIP_PORT_WSS=$((SIP_PORT_WSS + PORT_OFFSET))
+
+ sed -e "s|path-name=\".*\" \(app-dispatcher-class=.*\)|path-name=\"org.mobicents.ext\" \1|" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ $FILE > $FILE.bak
+ fi
+ mv $FILE.bak $FILE
+ echo 'Configured SIP Connectors and Bindings'
+
+
+ #Enable SipServlet statistics
+ grep -q 'gather-statistics' $FILE || sed -i "s|congestion-control-interval=\".*\"|& gather-statistics=\"true\"|" $FILE
+ echo "Configured gather-statistics"
+}
+
+#Socket Binding configuration for standalone-sip.xml
+configSocketbinding() {
+FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ #delete additional bindings if any added to erlier run of the script.
+ if grep -q "" $FILE
+ then
+ echo "Additional Bindings Created earlier, going to delete the old bindings"
+ sed '//,//d' $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ else
+ echo "Additional Bindings not Created earlier"
+ fi
+
+ #check for port offset
+ sed -i "s|\port-offset=\".*\"|port-offset=\"${PORT_OFFSET}\"|" $FILE
+
+ sed -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ -e "s|||" \
+ $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+}
+
+setMoreConnectors(){
+flag1=false
+flag2=false
+ for i in $( set -o posix ; set | grep ^ADDITIONAL_CONNECTOR_ | sort -rn ); do
+ connector=$(echo ${i} | cut -d = -f2 | cut -d _ -f2 | cut -d : -f1)
+ port=$(echo ${i} | cut -d = -f2 | cut -d _ -f2 | cut -d : -f2)
+ if [ "$flag1" = false ] ; then
+ setInitialSign
+ flag1=true
+ fi
+ addConector $connector $port
+ addSocketBinding $connector $port
+ echo "Configuring log level for: $connector -> $port"
+ flag2=true
+ done
+
+ if [ "$flag2" = true ] ; then
+ setFinalSign
+ fi
+}
+
+addConector(){
+FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+connector=$1
+port=$2
+
+ #check for port offset at the new connectors.
+ local port=$((port + PORT_OFFSET))
+ grep -q "connector name=\"${connector}\"" $FILE || sed -e "/path-name=\"org.mobicents.ext\"/a\
+ " $FILE > $FILE.bak
+
+ mv $FILE.bak $FILE
+ echo 'Configured additional SIP Connectors and Bindings'
+}
+
+addSocketBinding(){
+FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+connector=$1
+port=$2
+
+ grep -q "socket-binding name=\"${connector}\"" $FILE || sed "/name=\"management-https\"/a " $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+}
+
+setInitialSign(){
+ sed -e "/path-name=\"org.mobicents.ext\"/a\
+ " $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ sed "/name=\"management-https\"/a " $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+}
+
+setFinalSign(){
+ sed -e "/path-name=\"org.mobicents.ext\"/a\
+ " $FILE > $FILE.bak
+
+ mv $FILE.bak $FILE
+ sed "/name=\"management-https\"/a " $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+}
+
+#MAIN
+echo 'Configuring Application Server...'
+configSocketbinding
+configConnectors "$PUBLIC_IP"
+if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ echo "can not set additional connectors under LB."
+else
+ setMoreConnectors
+fi
+echo 'Finished configuring Application Server!'
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-utensil.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-utensil.sh
new file mode 100755
index 0000000000..5816553435
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-utensil.sh
@@ -0,0 +1,155 @@
+#!/bin/bash
+##
+## Description: Configures RestComm
+## Author: Henrique Rosa (henrique.rosa@telestax.com)
+## Author: Pavel Slegr (pavel.slegr@telestax.com)
+## Authos: Lefteris Banos (eleftherios.banos@telestax.com)
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+
+configS3Bucket() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+
+ if [[ "$ACTIVATE_S3_BUCKET" == "true" || "$ACTIVATE_S3_BUCKET" == "TRUE" ]]; then
+ echo "S3_BUCKET_NAME $S3_BUCKET_NAME S3_ACCESS_KEY $S3_ACCESS_KEY S3_SECURITY_KEY $S3_SECURITY_KEY"
+ sed -e "// {
+ N; s|.*|true|
+ N; s|.*|${S3_BUCKET_NAME}|
+ N; s|.*|${S3_FOLDER_NAME}|
+ N; s|.*|${S3_ACCESS_KEY}|
+ N; s|.*|${S3_SECURITY_KEY}|
+ }" $FILE > $FILE.bak;
+ mv $FILE.bak $FILE
+
+ if [ -n "$S3_BUCKET_REGION" ]; then
+ echo "S3_BUCKET_REGION $S3_BUCKET_REGION"
+ sed -e "s|.*|${S3_BUCKET_REGION}|" $FILE > $FILE.bak;
+ mv $FILE.bak $FILE
+ fi
+ else
+ sed -e "// {
+ N; s|.*|false|
+ N; s|.*||
+ N; s|.*||
+ N; s|.*||
+ }" $FILE > $FILE.bak;
+ mv $FILE.bak $FILE
+ fi
+}
+
+initUserPassword(){
+ SQL_FILE=$RESTCOMM_DEPLOY/WEB-INF/data/hsql/restcomm.script
+ if [ -n "$INITIAL_ADMIN_USER" ]; then
+ # change admin user
+ if grep -q "uninitialized" $SQL_FILE; then
+ echo "Update Admin user"
+ sed -i "s/administrator@company.com/${INITIAL_ADMIN_USER}/g" $SQL_FILE
+ else
+ echo "Adminitrator User Already changed"
+ fi
+ fi
+
+ if [ -n "$INITIAL_ADMIN_PASSWORD" ]; then
+ # change admin password
+ if grep -q "uninitialized" $SQL_FILE; then
+ PASSWORD_ENCRYPTED=`echo -n "${INITIAL_ADMIN_PASSWORD}" | md5sum |cut -d " " -f1`
+ #echo "Update password to ${INITIAL_ADMIN_PASSWORD}($PASSWORD_ENCRYPTED)"
+ sed -i "s/uninitialized/active/g" $SQL_FILE
+ sed -i "s/77f8c12cc7b8f8423e5c38b035249166/$PASSWORD_ENCRYPTED/g" $SQL_FILE
+ sed -i "s/2012-04-24 00:00:00.000000000/`echo "$(date +'%Y-%m-%d %H:%M:%S.%N')"`/" $SQL_FILE
+ sed -i "s/2012-04-24 00:00:00.000000000/`echo "$(date +'%Y-%m-%d %H:%M:%S.%N')"`/" $SQL_FILE
+ else
+ echo "Adminitrator Password Already changed"
+ fi
+ fi
+}
+
+configSMTP(){
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ if [[ -z $SMTP_USER || -z $SMTP_PASSWORD || -z $SMTP_HOST ]]; then
+ echo 'one or more variables are undefined'
+ echo 'Not possible to continue with SMTP configuration'
+
+ else
+ echo "SMTP_USER $SMTP_USER SMTP_PASSWORD $SMTP_PASSWORD SMTP_HOST $SMTP_HOST"
+ sed -i "// {
+ N; s|.*|${SMTP_HOST}|
+ N; s|.*|${SMTP_USER}|
+ N; s|.*|${SMTP_PASSWORD}|
+ N; s|.*|${SMTP_PORT}|
+ }" $FILE
+
+ sed -i "// {
+ N; s|.*|${SMTP_HOST}|
+ N; s|.*|${SMTP_USER}|
+ N; s|.*|${SMTP_PASSWORD}|
+ N; s|.*|${SMTP_PORT}|
+ }" $FILE
+ fi
+}
+
+configMonitoring(){
+ if [ -z ${GRAYLOG_SERVER} ]; then
+ echo "Graylog Monitoring is not configured";
+ crontab -l 2>/dev/null > mycron
+ crontab -l | grep -q 'HDmonitor' && sed -i '/HDmonitor/d' mycron
+ crontab -l | grep -q 'RMSJVMonitor' && sed -i '/RMSJVMonitor/d' mycron
+ crontab -l | grep -q 'RCJVMonitor' && sed -i '/RCJVMonitor/d' mycron
+ crontab -l | grep -q 'SERVERAMonitor' && sed -i '/SERVERAMonitor/d' mycron
+ #install new cron file
+ crontab mycron
+ rm mycron
+
+ else
+ echo "GRAYLOG_SERVER is: $GRAYLOG_SERVER";
+
+ #write out current crontab RMSJVMonitor
+ crontab -l 2>/dev/null > mycron
+
+ #echo new cron into cron file
+ crontab -l | grep -q 'MAILTO=""' && echo 'entry exists' || echo "MAILTO=\"\"" >> mycron
+ if [[ "$HD_MONITOR" == "false" || "$HD_MONITOR" == "FALSE" ]]; then
+ sed -i '/HDmonitor/d' mycron
+ echo "HD_MONITOR: $HD_MONITOR"
+ else
+ crontab -l | grep -q 'Graylog_Monitoring.sh HDmonitor' && echo 'entry exists' || echo "*/30 * * * * $RESTCOMM_BIN/restcomm/monitoring/Graylog_Monitoring.sh HDmonitor" >> mycron;
+ fi
+
+ if [[ "$RMSJVM_MONITOR" == "false" || "$RMSJVM_MONITOR" == "FALSE" ]]; then
+ sed -i '/RMSJVMonitor/d' mycron
+ echo "RMSJVM_MONITOR: $RMSJVM_MONITOR";
+ else
+ crontab -l | grep -q 'Graylog_Monitoring.sh RMSJVMonitor' && echo 'entry exists' || echo "* * * * * $RESTCOMM_BIN/restcomm/monitoring/Graylog_Monitoring.sh RMSJVMonitor" >> mycron;
+ fi
+
+ if [[ "$RCJVM_MONITOR" == "false" || "$RCJVM_MONITOR" == "FALSE" ]]; then
+ sed -i '/RCJVMonitor/d' mycron
+ echo "RCJVM_MONITOR: $RCJVM_MONITOR";
+ else
+ crontab -l | grep -q 'Graylog_Monitoring.sh RCJVMonitor' && echo 'entry exists' || echo "* * * * * $RESTCOMM_BIN/restcomm/monitoring/Graylog_Monitoring.sh RCJVMonitor" >> mycron;
+ fi
+
+ if [[ "$RAM_MONITOR" == "false" || "$RAM_MONITOR" == "FALSE" ]]; then
+ sed -i '/SERVERAMonitor/d' mycron
+ echo "RAM_MONITOR: $RAM_MONITOR";
+ else
+ crontab -l | grep -q 'Graylog_Monitoring.sh SERVERAMonitor' && echo 'entry exists' || echo "* * * * * $RESTCOMM_BIN/restcomm/monitoring/Graylog_Monitoring.sh SERVERAMonitor" >> mycron;
+ fi
+
+ #install new cron file
+ crontab mycron
+ rm mycron
+
+ #set Server Label
+ sed -i "s|SERVERLABEL=.*|SERVERLABEL=\"${SERVERLABEL}\"|" $RESTCOMM_BIN/restcomm/monitoring/Graylog_Monitoring.sh;
+ sed -i "s|GRAYLOG_SERVER=.*|GRAYLOG_SERVER=\"${GRAYLOG_SERVER}\"|" $RESTCOMM_BIN/restcomm/monitoring/Graylog_Monitoring.sh;
+ fi
+}
+
+# MAIN
+configS3Bucket
+initUserPassword
+configSMTP
+configMonitoring
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh
new file mode 100755
index 0000000000..454c5dca4d
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh
@@ -0,0 +1,35 @@
+#! /bin/bash
+
+## Description: Executes all RestComm configuration scripts for a given version.
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+
+autoconfigure() {
+ local BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+
+ ## We want this file to be executed last since its contains xmlstarlet based config script
+ ## https://telestax.atlassian.net/browse/RESTCOMM-1140
+ local LAST_FILE_TO_BE_EXECUTED=$BASEDIR/autoconfig.d/config-restcomm.sh
+
+ # load configuration values
+ #source $BASEDIR/restcomm.conf
+ echo ''
+ echo 'RestComm automatic configuration started:'
+ echo "LAST_FILE_TO_BE_EXECUTED is: $LAST_FILE_TO_BE_EXECUTED"
+ for f in $BASEDIR/autoconfig.d/*.sh; do
+ echo "Executing configuration file $f..."
+ if [ "$f" != "$LAST_FILE_TO_BE_EXECUTED" ]; then
+ source $f
+ echo "Finished executing configuration file $f!"
+ echo ''
+ fi
+ done
+
+ source $LAST_FILE_TO_BE_EXECUTED
+ echo "Finished executing configuration file $LAST_FILE_TO_BE_EXECUTED!"
+ echo ''
+
+ echo 'RestComm automatic configuration finished!'
+ echo ''
+}
+
+autoconfigure
\ No newline at end of file
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh
new file mode 100755
index 0000000000..58b00dc67b
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env bash
+##
+## Descript+ion: Script that collects all necessary system logs and data.
+## Author : Lefteris Banos
+## Author : George Vagenas
+#
+
+##Global Parameters
+DATE=$(date +%F_%H_%M)
+DIR_NAME=restcomm_$DATE
+BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+JMAP_DIR=$BASEDIR/$DIR_NAME
+
+JMAP="true"
+DTAR="true"
+
+##
+## FUNCTIONS
+##
+getPID(){
+ RESTCOMM_PID=" "
+ RMS_PID=""
+
+ RESTCOMM_PID=$(jps | grep jboss-modules.jar | cut -d " " -f 1)
+
+ while read -r line
+ do
+ if ps -ef | grep $line | grep -q mediaserver
+ then
+ RMS_PID=$line
+ fi
+ done < <(jps | grep Main | cut -d " " -f 1)
+
+}
+
+restcomm_jmap(){
+if [[ -z "$RESTCOMM_PID" ]]; then
+ getPID
+fi
+
+if [[ -z "$RESTCOMM_PID" ]]; then
+ echo "Please make sure that RestComm is running..."
+ else
+ echo "****************************************************************" > $JMAP_DIR/restcomm_mem
+ echo "GC Histogram before GC.run" >> $JMAP_DIR/restcomm_mem
+ echo "****************************************************************" >> $JMAP_DIR/restcomm_mem
+ jcmd $RESTCOMM_PID GC.class_histogram | grep org.restcomm.connect >> $JMAP_DIR/restcomm_mem
+
+ jcmd $RESTCOMM_PID GC.run
+ sleep 5
+
+ echo "****************************************************************" >> $JMAP_DIR/restcomm_mem
+ echo "GC Histogram after GC.run" >> $JMAP_DIR/restcomm_mem
+ echo "****************************************************************" >> $JMAP_DIR/restcomm_mem
+ jcmd $RESTCOMM_PID GC.class_histogram | grep org.restcomm.connect >> $JMAP_DIR/restcomm_mem
+
+ echo "****************************************************************" >> $JMAP_DIR/restcomm_mem
+ echo "JVMTop" >> $JMAP_DIR/restcomm_mem
+ echo "****************************************************************" >> $JMAP_DIR/restcomm_mem
+ $BASEDIR/jvmtop.sh -n 1 >> $JMAP_DIR/restcomm_mem
+
+ jmap -dump:live,format=b,file=restcomm_jmap_$DATE.bin $RESTCOMM_PID
+ mv restcomm_jmap_$DATE.bin $JMAP_DIR
+ fi
+
+}
+
+rms_jmap(){
+if [[ -z "$RMS_PID" ]]; then
+ getPID
+fi
+
+if [[ -z "$RMS_PID" ]]; then
+ echo "Please make sure that Mediaserver is running..."
+ else
+ jcmd $RMS_PID GC.run
+ sleep 2
+ jmap -dump:live,format=b,file=rms_jmap_$DATE.bin $RMS_PID
+ mv rms_jmap_$DATE.bin $JMAP_DIR
+ fi
+}
+
+make_tar() {
+ if [ -d "$JMAP_DIR" ]; then
+ echo TAR_FILE : $JMAP_DIR.tar.gz
+ tar -zcf $JMAP_DIR.tar.gz -C $JMAP_DIR . 3>&1 1>&2 2>&3
+ rm -rf $JMAP_DIR
+ return 0
+ fi
+ exit 1
+}
+
+mkdir $JMAP_DIR
+restcomm_jmap
+rms_jmap
+make_tar
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh
new file mode 100755
index 0000000000..2c934ea154
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+## Description: Change 'sed' to 'gsed' for MacOS users in order for the autoconfig scripts to work properly
+## Prerequisites: Install gnu-sed using homebrew (brew install gnu-sed)
+## Author: George Vagenas
+gsed -i 's/sed/gsed/g' ./*.sh
+gsed -i 's/sed/gsed/g' ./autoconfig.d/*.sh
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh
new file mode 100755
index 0000000000..32aa5305b2
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+# jvmtop - java monitoring for the command-line
+# launch script
+#
+# author: Markus Kolb
+#
+
+DIR=`cd "\`dirname "$0"\`" && pwd`
+
+if [ -z "$JAVA_HOME" ] ; then
+ JAVA_HOME=`readlink -f \`which java 2>/dev/null\` 2>/dev/null | \
+ sed 's/\/bin\/java//'`
+fi
+
+TOOLSJAR="$JAVA_HOME/../lib/tools.jar"
+
+if [ ! -f "$TOOLSJAR" ] ; then
+ echo "$JAVA_HOME seems to be no JDK!" >&2
+ exit 1
+fi
+
+"$JAVA_HOME"/bin/java $JAVA_OPTS -cp "$DIR/jvmtop.jar:$TOOLSJAR" \
+com.jvmtop.JvmTop "$@"
+exit $?
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh
new file mode 100755
index 0000000000..f253f176be
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh
@@ -0,0 +1,206 @@
+#!/bin/bash
+##
+## Descript+ion: Script that collects all necessary system logs and data.
+## Author : Lefteris Banos
+#
+DATE=$(date +%F_%H_%M)
+DIR_NAME=restcomm_$DATE
+RESTCOMM_CORE_FILE=server.log
+MEDIASERVER_FILE=server.log
+SYSLOGS_DIR=/var/log
+BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+RESTCOMM_LOG_BASE=$(cd $BASEDIR/../../ && pwd)
+RESTCOMM_CORE_LOG=$RESTCOMM_LOG_BASE/standalone/log
+RVD_LOG=$RESTCOMM_LOG_BASE/standalone/log/rvd
+RVD_LOG_FILE=rvd.log
+MMS_LOGS=$RESTCOMM_LOG_BASE/mediaserver/log
+LOGS_DIR_ZIP=$BASEDIR/$DIR_NAME
+
+restcomm_logs () {
+ if [ -f $RESTCOMM_CORE_LOG/$RESTCOMM_CORE_FILE ]; then
+ cp $RESTCOMM_CORE_LOG/$RESTCOMM_CORE_FILE $LOGS_DIR_ZIP/restcomm_server.log
+ fi
+}
+restcomm_logs_bytime () {
+ if [ -f $RESTCOMM_CORE_LOG/$RESTCOMM_CORE_FILE ]; then
+ IN=$1
+ IFS=","
+ arr=($IN)
+ unset IFS
+ FROM=`grep -n "^${arr[0]}" $RESTCOMM_CORE_LOG/$RESTCOMM_CORE_FILE |cut -f1 -d: | tail -1`
+ TO=`grep -n "^${arr[1]}" $RESTCOMM_CORE_LOG/$RESTCOMM_CORE_FILE |cut -f1 -d: | tail -1`
+ awk 'NR=="'"$FROM"'", NR=="'"$TO"'"; NR=="'"$TO"'" {print; exit}' $RESTCOMM_CORE_LOG/$RESTCOMM_CORE_FILE > $LOGS_DIR_ZIP/RestCommlinesTime.log
+ fi
+}
+rvd_logs () {
+ if [ -f $RVD_LOG/$RVD_LOG_FILE ]; then
+ cp $RVD_LOG/$RVD_LOG_FILE $LOGS_DIR_ZIP/rvd_server.log
+ fi
+}
+mediaserver_logs () {
+ if [ -f $MMS_LOGS/$MEDIASERVER_FILE ]; then
+ cp $MMS_LOGS/$MEDIASERVER_FILE $LOGS_DIR_ZIP/mms_server.log
+ fi
+}
+system_logs () {
+ if [ -f $SYSLOGS_DIR/messages ]; then
+ cp $SYSLOGS_DIR/messages $LOGS_DIR_ZIP/
+ fi
+ if [ -f $SYSLOGS_DIR/syslog ]; then
+ cp $SYSLOGS_DIR/syslog $LOGS_DIR_ZIP/
+ fi
+}
+JVM_perfo_stats () {
+ if [ -n "$RESTCOMM_PID" ]; then
+ jstack -l $RESTCOMM_PID > $LOGS_DIR_ZIP/restcomm_jstack_trace_$DATE
+ fi
+ if [ -n "$RMS_PID" ]; then
+ jstack -l $RMS_PID > $LOGS_DIR_ZIP/mms_jstack_trace_$DATE
+ fi
+}
+system_usage_info () {
+ echo "---top:" > $LOGS_DIR_ZIP/usage_stats_$DATE
+ echo CPU\(s\): `top -b -n1 | grep "Cpu(s)" | awk '{print $2" : " $4}'` >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ echo >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ top -b -n1 | grep Mem >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ echo "---free:" >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ free >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ echo "---df:" >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ df -h >> $LOGS_DIR_ZIP/usage_stats_$DATE
+ ps aux > $LOGS_DIR_ZIP/top_$DATE
+}
+jvm_process_info () {
+ if [ -n "$RESTCOMM_PID" ]; then
+ echo "----------------------- restcomm ---------------------------" > $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "--------New Generation Heap-------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ jstat -gcnew $RESTCOMM_PID >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "--------New Generation Space Size-------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ jstat -gcnewcapacity $RESTCOMM_PID >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "--------Garbage-collected heap-------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ jstat -gc $RESTCOMM_PID >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ fi
+ if [ -n "$RMS_PID" ]; then
+ echo "----------------------- mediaserver ---------------------------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "-------- New Generation Heap -------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ jstat -gcnew $RMS_PID >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "--------New Generation Space Size-------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ jstat -gcnewcapacity $RMS_PID >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "--------Garbage-collected heap-------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ jstat -gc $RMS_PID >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ fi
+ echo "--------------------------------- ---------------------------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo "----------------------- More INFO ---------------------------" >> $LOGS_DIR_ZIP/jvm_process_$DATE
+ echo " http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html " >> $LOGS_DIR_ZIP/jvm_process_$DATE
+}
+LWP_threads_logs () {
+ pat=`ps -ef | grep java | grep -v grep | awk '{print $2}'`
+ ps -eLo pid,lwp,nlwp,ruser,pcpu,stime,etime,args | grep -F "${pat}" > $LOGS_DIR_ZIP/lwpthread_$DATE.txt
+ return 0
+}
+netstat_stats () {
+ echo "----------------------- netstat -s ---------------------------" > $LOGS_DIR_ZIP/netstat_stats_$DATE
+ netstat -s >> $LOGS_DIR_ZIP/netstat_stats_$DATE
+ echo >> $LOGS_DIR_ZIP/netstat_stats_$DATE
+ echo >> $LOGS_DIR_ZIP/netstat_stats_$DATE
+ echo "----------------------- netstat -anp ---------------------------" >> $LOGS_DIR_ZIP/netstat_stats_$DATE
+ netstat -anp >> $LOGS_DIR_ZIP/netstat_stats_$DATE
+}
+make_tar () {
+ echo TAR_FILE : $LOGS_DIR_ZIP.tar.gz
+ tar -zcf $LOGS_DIR_ZIP.tar.gz -C $LOGS_DIR_ZIP . 3>&1 1>&2 2>&3
+ rm -rf $LOGS_DIR_ZIP
+}
+set_info() {
+ echo "$1" > $LOGS_DIR_ZIP/issue_info.txt
+}
+jvm_top() {
+ ./jvmtop.sh --once > $LOGS_DIR_ZIP/jvm_top.txt
+}
+sys_date() {
+ echo `date` > $LOGS_DIR_ZIP/sys_date.txt
+}
+getPID(){
+ RESTCOMM_PID=$(jps | grep jboss-modules.jar | cut -d " " -f 1)
+ while read -r line
+ do
+ if ps -ef | grep $line | grep -q mediaserver
+ then
+ RMS_PID=$line
+ fi
+ done < <(jps | grep Main | cut -d " " -f 1)
+ if [[ -z "$RESTCOMM_PID" ]]; then
+ echo "RestComm is not Running, will try to collect all available logs"
+ fi
+ if [[ -z "$RMS_PID" ]]; then
+ echo "RMS is not Running, will try to collect all available logs"
+ fi
+}
+usage () {
+ cat << EOF
+Usage: logs_collect.sh
+options:
+-m : optional message of the problem.
+-t : Restcomm log file time extractor (e.g "06:20:0*,06:23:0*").
+-h : prints this message
+-z : Create .tar file
+EOF
+ exit 1
+}
+#MAIN
+tflag=false
+zflag=false
+TEMP=`getopt --long -o ":t:m:hz" "$@"`
+eval set -- "$TEMP"
+while true ; do
+ case "$1" in
+ -m )
+ mkdir -p $LOGS_DIR_ZIP
+ set_info "$2"
+ shift 2
+ ;;
+ -t )
+ tflag=true
+ var=$2
+ shift 2
+ ;;
+ -z )
+ zflag=true
+ break
+ ;;
+ -h )
+ usage
+ ;;
+ *)
+ break
+ ;;
+ esac
+done;
+if [ ! -e $LOGS_DIR_ZIP ]; then
+ echo "create DIR $LOGS_DIR_ZIP"
+ mkdir -p $LOGS_DIR_ZIP
+fi
+if [ -d "$LOGS_DIR_ZIP" ]; then
+ getPID
+ restcomm_logs
+ rvd_logs
+ mediaserver_logs
+ system_logs
+ JVM_perfo_stats
+ jvm_process_info
+ LWP_threads_logs
+ system_usage_info
+ netstat_stats
+ jvm_top
+ sys_date
+ if $tflag ; then
+ restcomm_logs_bytime $var
+ fi
+ if $zflag ; then
+ make_tar
+ fi
+else
+ echo "Directory $LOGS_DIR_ZIP not created, going to exit."
+ exit 1
+fi
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh
new file mode 100755
index 0000000000..9e28525f0e
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+SERVERLABEL=""
+GRAYLOG_SERVER=""
+
+HDmonitor(){
+ #Collect HD Data from Host
+ hdusage=`df -hP $PWD | awk '/[0-9]%/{print $(NF-1)}'`
+ #Send data to graylog
+ message={"\"host\"":"\"${SERVERLABEL}\"","\"message\"":"\"${hdusage}\""}
+ curl --connect-timeout 10 --max-time 15 -XPOST http://$GRAYLOG_SERVER:5555/gelf -p0 -d ${message}
+}
+
+
+RCJVMonitor(){
+ #FInd RMS process number
+ rcprocess=$(jps | grep jboss-modules.jar | cut -d " " -f 1)
+ #Run JVMTOP
+ jvmvars=` $BASEDIR/../jvmtop.sh --once | grep ${rcprocess} | sed -e "s/ */ /g" | sed -e "s/%//g" | sed -e "s/m//g" | cut -f3,4,5,6,7,8 -d ' ' `
+ #Send data to graylog
+ IFS=" " read HPCUR HPMAX NHCUR NHMAX CPU GC <<< $jvmvars
+ message={"\"host\"":"\"${SERVERLABEL}\"","\"message\"":"\"RC_JVM_STATS\"","\"_HPCUR\"":"${HPCUR}","\"_HPMAX\"":"${HPMAX}","\"_NHCUR\"":"${NHCUR}","\"_NHMAX\"":"${NHMAX}","\"_CPU\"":"${CPU}","\"_GC\"":"${GC}"}
+ curl --connect-timeout 10 --max-time 15 -XPOST http://$GRAYLOG_SERVER:7777/gelf -p0 -d ${message}
+}
+
+
+RMSJVMonitor(){
+ #FInd RMS process number
+ while read -r line
+ do
+ if ps -ef | grep $line | grep -q mediaserver
+ then
+ msprocess=$line
+ fi
+ done < <(jps | grep Main | cut -d " " -f 1)
+
+ #Run JVMTOP
+ jvmvars=` $BASEDIR/../jvmtop.sh --once | grep ${msprocess} | sed -e "s/ */ /g" | sed -e "s/%//g" | sed -e "s/m//g" | cut -f3,4,5,6,7,8 -d ' ' `
+ #Send data to graylog
+ IFS=" " read HPCUR HPMAX NHCUR NHMAX CPU GC <<< $jvmvars
+ message={"\"host\"":"\"${SERVERLABEL}\"","\"message\"":"\"MS_JVM_STATS\"","\"_HPCUR\"":"${HPCUR}","\"_HPMAX\"":"${HPMAX}","\"_NHCUR\"":"${NHCUR}","\"_NHMAX\"":"${NHMAX}","\"_CPU\"":"${CPU}","\"_GC\"":"${GC}"}
+ curl --connect-timeout 10 --max-time 15 -XPOST http://$GRAYLOG_SERVER:7777/gelf -p0 -d ${message}
+}
+
+SERVERAMonitor(){
+ #Collect RAM from host data
+ MemTotal=`awk '( $1 == "MemTotal:" ) { print $2/1048576 }' /proc/meminfo`
+ MemFree=`awk '( $1 == "MemFree:" ) { print $2/1048576 }' /proc/meminfo`
+ Buffers=`awk '( $1 == "Buffers:" ) { print $2/1048576 }' /proc/meminfo`
+ Cache=`awk '( $1 == "Cached:" ) { print $2/1048576 }' /proc/meminfo`
+ SwapTotal=`awk '( $1 == "SwapTotal:" ) { print $2/1048576 }' /proc/meminfo`
+ SwapFree=`awk '( $1 == "SwapFree:" ) { print $2/1048576 }' /proc/meminfo`
+
+ #Send data to graylog
+ message={"\"host\"":"\"${SERVERLABEL}\"","\"message\"":"\"Host_Heap\"","\"_MemTotal\"":"${MemTotal}","\"_MemFree\"":"${MemFree}","\"_Buffers\"":"${Buffers}","\"_Cache\"":"${Cache}","\"_SwapTotal\"":"${SwapTotal}","\"_SwapFree\"":"${SwapFree}"}
+ curl --connect-timeout 10 --max-time 15 -XPOST http://$GRAYLOG_SERVER:6666/gelf -p0 -d ${message}
+}
+
+echo $1
+$1
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh
new file mode 100755
index 0000000000..90e9470a76
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+##
+## Descript+ion: Script that collects all necessary system logs and data.
+## Author : Lefteris Banos
+#
+
+JMAP="false"
+
+##
+## FUNCTIONS
+##
+getPID(){
+ RESTCOMM_PID=" "
+ RMS_PID=""
+
+ RESTCOMM_PID=$(jps | grep jboss-modules.jar | cut -d " " -f 1)
+
+ while read -r line
+ do
+ if ps -ef | grep $line | grep -q mediaserver
+ then
+ RMS_PID=$line
+ fi
+ done < <(jps | grep Main | cut -d " " -f 1)
+
+}
+
+stopRestComm(){
+ echo "...stoping RestComm"
+ ./stop-restcomm.sh
+
+ while [[ ! -z "$RESTCOMM_PID" || ! -z "$RMS_PID" ]]; do
+ getPID
+ echo "...waiting RestComm and MS to stop"
+ sleep 2
+ done
+}
+
+startRestComm(){
+ echo "...starting RestComm"
+ ./start-restcomm.sh
+}
+
+#MAIN
+# parse the flag options (and their arguments)
+while getopts "hmz" OPT; do
+ case "$OPT" in
+ h)
+ echo "Description: Collects system data. The output is a compressed file."
+ echo " "
+ echo "restart-restcomm.sh [options]"
+ echo " "
+ echo "options:"
+ echo "-m collect jmap"
+ echo "now will jusr restart Restcomm right now"
+ echo "-h show brief help"
+ exit 0
+ ;;
+ m)
+ JMAP="true"
+ ;;
+ now)
+ JMAP="false"
+ ;;
+ ?)
+ echo "Invalid option: $OPTARG"
+ echo "Type \"restart-restcomm.sh -help\" for instructions"
+ exit 1 ;;
+ esac
+done
+
+# get rid of the just-finished flag arguments
+shift $(($OPTIND-1))
+
+
+if [ "$JMAP" == "true" ]; then
+ echo "...JMAP files will be collected"
+ ./collect_jmap.sh
+fi
+
+stopRestComm
+sleep 2
+startRestComm
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh
new file mode 100755
index 0000000000..e3acd40f3b
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh
@@ -0,0 +1,114 @@
+#!/bin/bash
+## Description: Set log_level on the fly
+## Author: Lefteris Banos
+##Using Jboss Command Line Interface - CLI (https://developer.jboss.org/wiki/CommandLineInterface)
+
+
+# VARIABLES
+BASE_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+RESTCOMM_BIN=$BASE_DIR/..
+CLIFILE=$BASE_DIR/log.cli
+
+
+changelog() {
+ cat <> $CLIFILE
+ /subsystem=logging/logger=$1:write-attribute(name=level,value=$2)
+EOT
+}
+
+changelogROOT() {
+ cat <> $CLIFILE
+ /subsystem=logging/root-logger=$1:write-attribute(name=level,value=$2)
+EOT
+}
+
+changelogCONSOLE() {
+ cat <> $CLIFILE
+ /subsystem=logging/console-handler=$1:write-attribute(name=level,value=$2)
+EOT
+}
+
+
+listlog(){
+ cat <> $CLIFILE
+/subsystem=logging/logger=org.mobicents.servlet.sip:read-resource
+/subsystem=logging/logger=org.mobicents.servlet.sip.restcomm:read-resource
+/subsystem=logging/logger=org.restcomm.connect:read-resource
+/subsystem=logging/logger=gov.nist:read-resource
+/subsystem=logging/console-handler=CONSOLE:read-resource
+/subsystem=logging/root-logger=ROOT:read-resource
+EOT
+}
+
+if [ $# -eq 0 ]
+ then
+ arr="help"
+else
+ arr=( "$@" )
+fi
+
+for compt in $arr
+ do
+ case "$compt" in
+ servlet)
+ COMPONENT=org.mobicents.servlet.sip
+ changelog $COMPONENT $2
+ ;;
+
+ govnist)
+ COMPONENT=gov.nist
+ changelog $COMPONENT $2
+ ;;
+ siprestcomm)
+ COMPONENT=org.mobicents.servlet.sip.restcomm
+ changelog $COMPONENT $2
+ ;;
+ restcomm)
+ COMPONENT=org.restcomm.connect
+ changelog $COMPONENT $2
+ # update RVD's logging level too. TODO do this separately on 'rvd)' when docker scripts are updated too
+ COMPONENT=org.restcomm.connect.rvd.LOCAL
+ changelog $COMPONENT $2
+ COMPONENT=org.restcomm.connect.rvd.GLOBAL
+ changelog $COMPONENT $2
+ ;;
+ rvd)
+ COMPONENT=org.restcomm.connect.rvd.LOCAL
+ changelog $COMPONENT $2
+ COMPONENT=org.restcomm.connect.rvd.GLOBAL
+ changelog $COMPONENT $2
+ ;;
+ root)
+ COMPONENT=ROOT
+ changelogROOT $COMPONENT $2
+ ;;
+ console)
+ COMPONENT=CONSOLE
+ changelogCONSOLE $COMPONENT $2
+ ;;
+ list)
+ listlog
+ ;;
+ *)
+ echo "Usage: $0 \"servlet govnist siprestcomm restscomm console root\" DEBUG. Can also set each element individually"
+ echo "Usage: $0 list (To list the actual log levels)"
+ exit 1
+ esac
+done
+
+ n=0
+ until [ $n -ge 5 ]
+ do
+ n=$[$n+1]
+ $RESTCOMM_BIN/jboss-cli.sh --connect controller=127.0.0.1 --file="$CLIFILE" # substitute your command here
+ if [ $? -eq 0 ]; then echo "LOG level changed properly" && break; fi
+
+ if [ $n -eq 5 ]; then echo "Command Fail.. please try again"; fi
+ sleep 2
+ done
+
+
+
+rm $CLIFILE
+
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh
new file mode 100755
index 0000000000..cadee45e16
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh
@@ -0,0 +1,19 @@
+#! /bin/bash
+
+## Description: Starts Media Server with auto-configuration.
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+
+startMediaServer() {
+ local basedir=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+ local ms_conf=$basedir/mediaserver.conf
+ local ms_home=$RESTCOMM_HOME/mediaserver
+
+ chmod +x $ms_home/*.sh
+ chmod +x $ms_home/.autoconfig/*.sh
+ chmod +x $ms_home/.autoconfig/autoconfig.d/*.sh
+ chmod +x $ms_home/bin/*.sh
+
+ $ms_home/start-mediaserver.sh $ms_conf
+}
+
+startMediaServer
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh
new file mode 100755
index 0000000000..ae6ba7538e
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh
@@ -0,0 +1,165 @@
+#! /bin/bash
+##
+## Description: Starts RestComm with auto-configuration.
+##
+## Parameters : 1. Bind Address (default: 127.0.0.1)
+## 2. Run Mode [standalone|standalone-lb|domain|domain-lb] (default:standalone)
+##
+## Author : Henrique Rosa
+##
+# set environment variables for execution
+BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+RESTCOMM_HOME=$(cd $BASEDIR/../../ && pwd)
+MMS_HOME=$RESTCOMM_HOME/mediaserver
+LB_HOME=$RESTCOMM_HOME/tools/sip-balancer
+
+##
+## FUNCTIONS
+##
+startRestcomm() {
+ run_mode="$1"
+ bind_address="$2"
+ ExtraOpts="-Djboss.bind.address.management=127.0.0.1"
+
+ # Check if RestComm is already running
+ if tmux ls | grep -q 'restcomm'; then
+ echo 'TelScale RestComm is already running on terminal session "restcomm"!'
+ exit 1;
+ fi
+
+ if [ -n "$MGMT_PASS" ] && [ -n "$MGMT_USER" ]; then
+ echo "MGMT_PASS, MGMT_USER is set will be added to MGMNT configuration"
+ grep -q "$MGMT_USER" $RESTCOMM_HOME/standalone/configuration/mgmt-users.properties || $RESTCOMM_HOME/bin/add-user.sh "$MGMT_USER" "$MGMT_PASS" -s
+ #Management bind address
+ ExtraOpts="-Djboss.bind.address.management=$bind_address"
+ fi
+
+ case $run_mode in
+ 'standalone'*)
+ # start restcomm on standalone mode
+ chmod +x $RESTCOMM_HOME/bin/standalone.sh
+ echo 'TelScale RestComm started running on standalone mode. Terminal session: restcomm.'
+ echo "Using IP Address: $BIND_ADDRESS"
+ if [[ "$RUN_DOCKER" == "true" || "$RUN_DOCKER" == "TRUE" ]]; then
+ $RESTCOMM_HOME/bin/standalone.sh -b $bind_address "${ExtraOpts}"
+ else
+ tmux new -s restcomm -d "$RESTCOMM_HOME/bin/standalone.sh -b $bind_address ${ExtraOpts}"
+ fi
+ ;;
+ 'domain'*)
+ # start restcomm on standalone mode
+ chmod +x $RESTCOMM_HOME/bin/domain.sh
+ tmux new -s restcomm -d "$RESTCOMM_HOME/bin/domain.sh -b $bind_address ${ExtraOpts}"
+ echo 'TelScale RestComm started running on domain mode. Screen session: restcomm.'
+ echo "Using IP Address: $BIND_ADDRESS"
+ ;;
+ *)
+ # start restcomm on standalone mode
+ chmod +x $RESTCOMM_HOME/bin/standalone.sh
+ tmux new -s restcomm -d "$RESTCOMM_HOME/bin/standalone.sh -b $bind_address ${ExtraOpts}"
+ echo 'TelScale RestComm started running on standalone mode. Screen session: restcomm.'
+ echo "Using IP Address: $BIND_ADDRESS"
+ ;;
+ esac
+
+}
+
+verifyDependencies() {
+ source $BASEDIR/verify-dependencies.sh
+}
+
+loadConfigurationParams() {
+ source $BASEDIR/restcomm.conf
+ source $BASEDIR/advanced.conf
+}
+
+##
+## MAIN
+##
+verifyDependencies
+loadConfigurationParams
+
+echo BASEDIR: $BASEDIR
+echo RESTCOMM_HOME: $RESTCOMM_HOME
+
+# input parameters and default values
+RUN_MODE='standalone'
+BIND_ADDRESS=''
+
+while getopts "s:r:i:" optname
+do
+ case "$optname" in
+ "s")
+ STATIC_ADDRESS="$OPTARG"
+ ;;
+ "r")
+ RUN_MODE="$OPTARG"
+ ;;
+ "i")
+ NET_INTERFACE="$OPTARG"
+ ;;
+ ":")
+ echo "No argument value for option $OPTARG"
+ exit 1
+ ;;
+ "?")
+ echo "Unknown option $OPTARG"
+ exit 1
+ ;;
+ *)
+ echo 'Unknown error while processing options'
+ exit 1
+ ;;
+ esac
+done
+
+# validate network interface and extract network properties
+if [[ -z "$NET_INTERFACE" ]]; then
+NET_INTERFACE='eth0'
+echo "Looking for the appropriate interface"
+ NET_INTERFACES=$(ifconfig | expand | cut -c1-8 | sort | uniq -u | awk -F: '{print $1;}')
+ if [[ -z $(echo $NET_INTERFACES | sed -n "/$NET_INTERFACE/p") ]]; then
+ echo "The network interface $NET_INTERFACE is not available or does not exist."
+ echo "The list of available interfaces is: $NET_INTERFACES"
+ exit 1
+ fi
+fi
+
+# load network properties for chosen interface
+if [[ -z "$PRIVATE_IP" || -z "$SUBNET_MASK" || -z "$NETWORK" || -z "$BROADCAST_ADDRESS" ]]; then
+echo "Looking for the IP Address, subnet, network and broadcast_address"
+ source $BASEDIR/utils/read-network-props.sh "$NET_INTERFACE"
+fi
+
+BIND_ADDRESS="$PRIVATE_IP"
+BIND_NETWORK="$NETWORK"
+BIND_SUBNET_MASK="$SUBNET_MASK"
+
+if [[ -z "$STATIC_ADDRESS" ]]; then
+ STATIC_ADDRESS=$BIND_ADDRESS
+fi
+
+if [[ -z "$MEDIASERVER_EXTERNAL_ADDRESS" ]]; then
+ MEDIASERVER_EXTERNAL_ADDRESS="$STATIC_ADDRESS"
+fi
+
+if [[ -z "$PUBLIC_IP" ]]; then
+ PUBLIC_IP=$STATIC_ADDRESS
+fi
+
+if [[ -z "$SMS_OUTBOUND_PROXY" ]]; then
+ SMS_OUTBOUND_PROXY=$OUTBOUND_PROXY
+fi
+
+# configure restcomm installation
+
+if [[ "$MANUAL_SETUP" == "false" || "$MANUAL_SETUP" == "FALSE" ]]; then
+ source $BASEDIR/autoconfigure.sh
+fi
+
+if [[ "$MS_EXTERNAL" == "false" || "$MS_EXTERNAL" == "FALSE" ]]; then
+ source $BASEDIR/start-mediaserver.sh
+fi
+# start restcomm in selected run mode
+startRestcomm "$RUN_MODE" "$BIND_ADDRESS"
+exit 0
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh
new file mode 100755
index 0000000000..a8f2904939
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh
@@ -0,0 +1,11 @@
+#! /bin/bash
+
+## Description: Stops Media Server running in a terminal session.
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+
+stopMediaServer() {
+ local ms_home=$RESTCOMM_HOME/mediaserver
+ $ms_home/stop-mediaserver.sh
+}
+
+stopMediaServer
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh
new file mode 100755
index 0000000000..6c91d6232d
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh
@@ -0,0 +1,26 @@
+#! /bin/bash
+##
+## Description: Stops RestComm and Media Server processes running on terminal sessions
+## Authors : Henrique Rosa (henrique.rosa@telestax.com)
+##
+
+BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+RESTCOMM_HOME=$(cd $BASEDIR/../../ && pwd)
+MS_HOME=$RESTCOMM_HOME/mediaserver
+
+stopMediaServer() {
+ source $BASEDIR/stop-mediaserver.sh
+}
+
+stopRestComm() {
+ echo 'Shutting down RestComm...'
+ if tmux ls | grep -q 'restcomm'; then
+ tmux kill-session -t restcomm
+ echo '...stopped RestComm instance running on terminal session "restcomm"!'
+ else
+ echo '...restComm already stopped!'
+ fi
+}
+
+stopMediaServer
+stopRestComm
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/utils/read-network-props.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/utils/read-network-props.sh
new file mode 100755
index 0000000000..096a496be7
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/utils/read-network-props.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+##
+## Description : Utility script to find network properties
+## Author : Henrique Rosa - henrique.rosa@telestax.com
+##
+
+# VARIABLES
+IP_ADDRESS_PATTERN="[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}"
+INTERFACE="$1"
+
+## Description: Gets the private IP of the instance
+## Parameters : none
+getPrivateIP() {
+ echo "$INET_DATA" | grep -o "addr:$IP_ADDRESS_PATTERN" | awk -F: '{print $2}'
+}
+
+## Description: Gets the broadcast address of the instance
+## Parameters : none
+getBroadcastAddress() {
+ echo "$INET_DATA" | grep "Bcast:$IP_ADDRESS_PATTERN" | awk '{print $3}' | awk -F: '{print $2}'
+}
+
+## Description: Gets the Subnet Mask of the instance
+## Parameters : none
+getSubnetMask() {
+ /sbin/ifconfig $INTERFACE | grep "Mask:$IP_ADDRESS_PATTERN" | awk '{print $4}' | awk -F: '{print $2}'
+}
+
+## Description: Gets the Network of the instance
+## Parameters : 1.Private IP
+## 2.Subnet Mask
+getNetwork() {
+ #debian/ubuntu
+ NW=`ipcalc -n $1 $2 | grep -i "Network" | awk '{print $2}' | awk -F/ '{print $1}';`
+ if [[ -z "$NW" ]]; then
+ #rhel/centos/amazon
+ NW=`ipcalc -n $1 $2 | grep -i "Network" | awk -F= '{print $2}';`
+ fi
+ echo $NW
+}
+
+# MAIN
+INET_DATA=$(/sbin/ifconfig $INTERFACE | grep "inet ")
+
+PRIVATE_IP=$(getPrivateIP)
+SUBNET_MASK=$(getSubnetMask)
+NETWORK=$(getNetwork $PRIVATE_IP $SUBNET_MASK)
+BROADCAST_ADDRESS=$(getBroadcastAddress)
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh
new file mode 100755
index 0000000000..dbf06b3195
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+## Description: Verifies if all dependencies are installed.
+## Author: Henrique Rosa (henrique.rosa@telestax.com)
+
+verifyJava() {
+ if [ -n "$(which java)" ]; then
+ if [ $(java -version 2>&1 | head -n 1 | cut -d'"' -f2 | cut -d'.' -f2) -ne "7" ]; then
+ echo "Only Java 1.7 required."
+ exit 1
+ fi
+ else
+ echo "Java dependency is missing."
+ echo "CentOS/RHEL: java-1.7.0-openjdk-devel.x86_64"
+ echo "Debian/Ubuntu:"
+ echo " add-apt-repository ppa:openjdk-r/ppa"
+ echo " apt-get update"
+ echo " apt-get install openjdk-7-jdk"
+ echo "macOS: brew cask install java7"
+ exit 1
+ fi
+}
+
+verifyTmux() {
+ if [ -z "$(which tmux)" ]; then
+ echo "TMux dependency is missing."
+ echo "CentOS/RHEL: yum install tmux"
+ echo "Debian/Ubuntu: apt-get install tmux"
+ echo "macOS: brew install tmux"
+ exit 1
+ fi
+}
+
+verifyXmlstarlet() {
+ if [ -z "$(which xmlstarlet)" ]; then
+ echo "XML Starlet dependency is missing."
+ echo "CentOS/RHEL: yum install xmlstarlet"
+ echo "Debian/Ubuntu: apt-get install xmlstarlet"
+ echo "macOS: brew install xmlstarlet"
+ exit 1
+ fi
+}
+
+verifyIpcalc() {
+ if [ -z "$(which ipcalc)" ]; then
+ echo "IP Calc dependency is missing."
+ echo "CentOS/RHEL: yum install ipcalc"
+ echo "Debian/Ubuntu: apt-get install ipcalc"
+ echo "macOS: brew install ipcalc"
+ exit 1
+ fi
+}
+
+verifyJava
+verifyTmux
+verifyXmlstarlet
+verifyIpcalc
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/docs/restcomm/README b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/docs/restcomm/README
new file mode 100644
index 0000000000..e69f60bc40
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/docs/restcomm/README
@@ -0,0 +1,2 @@
+For Restcomm documentation please visit
+https://www.restcomm.com/docs/connect/index.html
\ No newline at end of file
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties
new file mode 100644
index 0000000000..4027360c94
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties
@@ -0,0 +1,2 @@
+#Application Router Configuration
+ALL=("RestComm","DAR\:From","ORIGINATING","","NO_ROUTE","0")
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties
new file mode 100644
index 0000000000..a1309d2c75
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties
@@ -0,0 +1,41 @@
+gov.nist.javax.sip.LOG_MESSAGE_CONTENT=true
+gov.nist.javax.sip.LOG4J_LOGGER_NAME=gov.nist
+gov.nist.javax.sip.TRACE_LEVEL=LOG4J
+gov.nist.javax.sip.DEBUG_LOG=logs/mss-jsip-debuglog.txt
+gov.nist.javax.sip.SERVER_LOG=logs/mss-jsip-messages.xml
+javax.sip.STACK_NAME=Restcomm-SIP-Servlets
+javax.sip.AUTOMATIC_DIALOG_SUPPORT=off
+gov.nist.javax.sip.DELIVER_UNSOLICITED_NOTIFY=true
+gov.nist.javax.sip.THREAD_POOL_SIZE=64
+gov.nist.javax.sip.REENTRANT_LISTENER=true
+# prevent DOS attacks
+gov.nist.javax.sip.MAX_LISTENER_RESPONSE_TIME=120
+gov.nist.javax.sip.MAX_MESSAGE_SIZE=40000
+# setting up the buffer size to reduce retransmissions and avoid loosing messages
+gov.nist.javax.sip.RECEIVE_UDP_BUFFER_SIZE=131072
+gov.nist.javax.sip.SEND_UDP_BUFFER_SIZE=131072
+gov.nist.javax.sip.AGGRESSIVE_CLEANUP=true
+gov.nist.javax.sip.MAX_FORK_TIME_SECONDS=0
+# set to true so that the stack do more validation on dialog,
+# but won't work on chained applications so false by default
+gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING=false
+gov.nist.javax.sip.MESSAGE_PROCESSOR_FACTORY=gov.nist.javax.sip.stack.NioMessageProcessorFactory
+org.mobicents.servlet.sip.USER_AGENT_HEADER=Restcomm ${project.version}
+org.mobicents.servlet.sip.SERVER_HEADER=Restcomm ${project.version}
+#Uncomment the following line to enable Congestion Control
+#gov.nist.javax.sip.SIP_MESSAGE_VALVE=org.mobicents.ext.javax.sip.congestion.CongestionControlMessageValve
+org.mobicents.ext.javax.sip.congestion.SIP_SCANNERS=
+org.mobicents.ext.javax.sip.congestion.CONGESTION_CONTROL_MONITOR_INTERVAL=-1
+#org.mobicents.ext.javax.sip.congestion.MEMORY_THRESHOLD", "85");
+#org.mobicents.ext.javax.sip.congestion.BACK_TO_NORMAL_MEMORY_THRESHOLD", "80");
+#org.mobicents.ext.javax.sip.congestion.CPU_PROCESS_THRESHOLD", "85");
+#org.mobicents.ext.javax.sip.congestion.BACK_TO_NORMAL_CPU_PROCESS_THRESHOLD", "80");
+#org.mobicents.ext.javax.sip.congestion.SERVER_TRANSACTIONS_THRESHOLD", "15000");
+#org.mobicents.ext.javax.sip.congestion.BACK_TO_NORMAL_SERVER_TRANSACTIONS_THRESHOLD", "10000");
+#org.mobicents.ext.javax.sip.congestion.DIALOGS_THRESHOLD", "200000");
+#org.mobicents.ext.javax.sip.congestion.BACK_TO_NORMAL_DIALOGS_THRESHOLD", "180000");
+#Uncomment the following line to work with the Mobicents Load Balancer
+#org.mobicents.ha.javax.sip.BALANCERS=127.0.0.1
+org.mobicents.ha.javax.sip.LOCAL_HTTP_PORT=8080
+org.mobicents.ha.javax.sip.LOCAL_SSL_PORT=8443
+#org.mobicents.ha.javax.sip.REACHABLE_CHECK=
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy
@@ -0,0 +1 @@
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy
@@ -0,0 +1 @@
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy
@@ -0,0 +1 @@
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy
@@ -0,0 +1 @@
+
diff --git a/release/restcomm-assembly-as7/src/main/resources/descriptor.xml b/release/restcomm-assembly-as7/src/main/resources/descriptor.xml
new file mode 100644
index 0000000000..c7760910ff
--- /dev/null
+++ b/release/restcomm-assembly-as7/src/main/resources/descriptor.xml
@@ -0,0 +1,67 @@
+
+ assembly
+
+ zip
+
+ Restcomm-JBoss-AS7-${project.version}
+
+
+
+ ${project.build.directory}/dependency/restcomm-sip-servlets-${sipservletapi.version}-jboss-as-7.2.0.Final
+ /
+
+
+ standalone/configuration/dars/mobicents-dar.properties
+ standalone/configuration/mss-sip-stack.properties
+
+
+
+
+ ${project.build.directory}/dependency/restcomm-media-server
+ /mediaserver
+
+
+
+ ${project.basedir}/src/main/resources/assembly-resources
+ /
+
+
+
+
+ /standalone/deployments
+ false
+ restcomm-rvd.war
+
+ org.restcomm:restcomm-connect-rvd
+
+
+
+ /standalone/deployments
+ false
+ olympus.war
+
+ org.mobicents.webrtc:webrtc-ui
+
+
+
+
+ /standalone/deployments/restcomm.war
+ true
+
+ org.restcomm:restcomm-connect.application
+
+
+
+ false
+ /standalone/deployments
+ restcomm-management.war
+
+ org.restcomm:restcomm-connect-management
+
+
+
+
+
+
diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml
new file mode 100644
index 0000000000..a0c096cf14
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/pom.xml
@@ -0,0 +1,106 @@
+
+
+ 4.0.0
+
+ org.restcomm
+ assembly-parent
+ 9.0.0-SNAPSHOT
+
+ assembly-wildfly10
+ pom
+
+ UTF-8
+ 3.2.0-103
+
+
+
+ org.restcomm
+ restcomm-connect-rvd
+ war
+
+
+ org.restcomm
+ restcomm-connect.application
+ war
+
+
+
+ org.restcomm
+ restcomm-connect-management
+ war
+
+
+
+
+ org.mobicents.webrtc
+ webrtc-ui
+ war
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.0.1
+
+
+ extractSipServlets
+ prepare-package
+
+ unpack
+
+
+
+
+ org.mobicents.servlet.sip
+ sip-servlets-wildfly-10
+ ${sipservletapi.version}
+ zip
+ assembly
+
+
+
+
+
+ extractMediaserver
+ prepare-package
+
+ unpack
+
+
+
+
+ org.mobicents.media
+ media-server-standalone
+ zip
+ assembly
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.1.0
+
+
+ src/assembly/descriptor.xml
+
+ Restcomm-JBoss-Wildfly10-${project.version}
+ false
+
+
+
+ package
+
+ single
+
+
+
+
+
+
+
diff --git a/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml b/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml
new file mode 100644
index 0000000000..c5b9172bb6
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml
@@ -0,0 +1,84 @@
+
+ assembly
+
+ zip
+
+ Restcomm-JBoss-Wildfly10-${project.version}
+
+
+
+ ${project.build.directory}/dependency/restcomm-sip-servlets-${sipservletapi.version}-wildfly-10.0.0.Final
+ /
+
+
+ standalone/configuration/dars/mobicents-dar.properties
+ standalone/configuration/mss-sip-stack.properties
+
+ standalone/deployments/click2call.war
+
+
+
+
+ ${project.build.directory}/dependency/restcomm-media-server
+ /mediaserver
+
+
+
+ ${project.build.directory}/classes/assembly-resources
+
+ **/*.sh
+
+ /
+ true
+
+ 0777
+
+
+
+ ${project.build.directory}/classes/assembly-resources
+
+ **/*.sh
+
+ /
+ true
+
+
+
+
+ /standalone/deployments
+ false
+ restcomm-rvd.war
+
+ org.restcomm:restcomm-connect-rvd
+
+
+
+ /standalone/deployments
+ false
+ olympus.war
+
+ org.mobicents.webrtc:webrtc-ui
+
+
+
+
+ /standalone/deployments/restcomm.war
+ true
+
+ org.restcomm:restcomm-connect.application
+
+
+
+ false
+ /standalone/deployments
+ restcomm-management.war
+
+ org.restcomm:restcomm-connect-management
+
+
+
+
+
+
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh
new file mode 100755
index 0000000000..e8c2d7ee1d
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh
@@ -0,0 +1,205 @@
+#!/usr/bin/env bash
+
+##
+## Description: Configures RestComm
+## Author: Lefteris Banos (eleftherios.banos@telestax.com)
+##
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_DARS=$RESTCOMM_HOME/standalone/configuration/dars
+RESTCOMM_CONF=$RESTCOMM_HOME/standalone/configuration
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+
+###Functions for SECURESSL=false###
+#Disable HTTPS when SECURESSL=false for RC.
+NoSslRestConf(){
+ FILE=$RESTCOMM_CONF/standalone-sip.xml
+ sed -e "s//<\!--connector name=\"https\" \1>/" \
+ -e "s/<\/connector>/<\/connector-->/" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ sed -e "s/<.*connector name=\"http\".*>/ /" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ sed -i "s|SSL_ENABLED=.*|SSL_ENABLED=false|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_KEYSTORE=.*|SSL_KEYSTORE=restcomm.jks|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_PASSWORD=.*|SSL_PASSWORD=changeme|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+}
+
+####funcitions for SECURESSL="SELF" || SECURESSL="AUTH" ####
+#HTTPS configuration.
+#Usage of certificate.
+SslRestCommConf(){
+ FILE=$RESTCOMM_CONF/standalone-sip.xml
+ echo "Will properly configure HTTPS Connector ";
+ FILERESTCOMMXML=$BASEDIR/standalone/deployments/restcomm.war/WEB-INF/web.xml
+ FILEMANAGERXML=$BASEDIR/standalone/deployments/restcomm-management.war/WEB-INF/web.xml
+ FILERVDXML=$BASEDIR/standalone/deployments/restcomm-rvd.war/WEB-INF/web.xml
+ FILEOLYMPUSXML=$BASEDIR/standalone/deployments/olympus.war/WEB-INF/web.xml
+ #Disable HTTP if set to true.
+ if [[ "$DISABLE_HTTP" == "true" || "$DISABLE_HTTP" == "TRUE" ]]; then
+ echo "DISABLE_HTTP is '$DISABLE_HTTP'. Will disable HTTP Connector"
+ sed -e "s/<.*connector name=\"http\".*>/<\!--connector name=\"http\" protocol=\"HTTP\/1.1\" scheme=\"http\" socket-binding=\"http\"-->/" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ grep -q '' $FILERESTCOMMXML && sed -e "s///" $FILERESTCOMMXML.bak > $FILERESTCOMMXML
+ grep -qs '' $FILEMANAGERXML && sed -e "s///" $FILEMANAGERXML.bak > $FILEMANAGERXML
+ grep -q '' $FILERVDXML && sed -e "s///" $FILERVDXML.bak > $FILERVDXML
+ grep -q '' $FILEOLYMPUSXML && sed -e "s///" $FILEOLYMPUSXML.bak > $FILEOLYMPUSXML
+
+ elif [[ "$DISABLE_HTTP" == "REDIRECT" || "$DISABLE_HTTP" == "redirect" ]]; then
+ sed -e "s/<.*connector name=\"http\".*>//" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ if [ ! -d "$BASEDIR/standalone/deployments/restcomm-management.war" ]; then
+ mkdir $BASEDIR/standalone/deployments/restcomm-management-exploded.war
+ unzip -q $BASEDIR/standalone/deployments/restcomm-management.war -d $BASEDIR/standalone/deployments/restcomm-management-exploded.war/
+ rm -f $BASEDIR/standalone/deployments/restcomm-management.war
+ mv -f $BASEDIR/standalone/deployments/restcomm-management-exploded.war $BASEDIR/standalone/deployments/restcomm-management.war
+ fi
+
+ sed -e "s//<\/security-constraint>/" $FILERESTCOMMXML.bak > $FILERESTCOMMXML
+ sed -e "s//<\/security-constraint>/" $FILEMANAGERXML.bak > $FILEMANAGERXML
+ sed -e "s//<\/security-constraint>/" $FILERVDXML.bak > $FILERVDXML
+ sed -e "s//<\/security-constraint>/" $FILEOLYMPUSXML.bak > $FILEOLYMPUSXML
+
+ else
+ sed -e "s/<.*connector name=\"http\".*>/ /" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ grep -q '' $FILERESTCOMMXML && sed -e "s///" $FILERESTCOMMXML.bak > $FILERESTCOMMXML
+ grep -qs '' $FILEMANAGERXML && sed -e "s///" $FILEMANAGERXML.bak > $FILEMANAGERXML
+ grep -q '' $FILERVDXML && sed -e "s///" $FILERVDXML.bak > $FILERVDXML
+ grep -q '' $FILEOLYMPUSXML && sed -e "s///" $FILEOLYMPUSXML.bak > $FILEOLYMPUSXML
+
+ fi
+ #If File contains path, or just the name.
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ CERTIFICATION_FILE=$TRUSTSTORE_FILE
+ else
+ CERTIFICATION_FILE="\\\${jboss.server.config.dir}/$TRUSTSTORE_FILE"
+ fi
+ #enable HTTPS and certificate file.
+ #Cipher `TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA` removed because it enables non-secure cipher ECDHE-RSA-DES-CBC3-SHA
+ echo "Will use trust store at location: $CERTIFICATION_FILE"
+ sed -e "s/<\!--connector name=\"https\" \(.*\)>//" \
+ -e "s|||" \
+ -e "s/<\/connector-->/<\/connector>/" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo "Properly configured HTTPS Connector to use trustStore file $CERTIFICATION_FILE"
+}
+
+#If self-sighned create certificate.
+#else use authorized.
+CertConfigure(){
+ #Certificate setup (Authority certificate or self-signed)
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ if [ "$SECURESSL" = "AUTH" ]; then
+ echo "Authorized certificate is used"
+ elif [ "$SECURESSL" = "SELF" ]; then
+ echo "TRUSTSTORE_FILE is not provided but SECURE is TRUE. We will create and configure self signed certificate"
+
+ sed -e "s/.*<\/ssl-mode>/allowall<\/ssl-mode>/" $FILE > $FILE.bak #When Self-signed used ssl-mode must set to "allowall"
+ mv $FILE.bak $FILE
+
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ TRUSTSTORE_LOCATION=$TRUSTSTORE_FILE
+ else
+ TRUSTSTORE_LOCATION=$RESTCOMM_HOME/standalone/configuration/$TRUSTSTORE_FILE
+ fi
+
+ echo "TRUSTSTORE_LOCATION: $TRUSTSTORE_LOCATION"
+ echo "PUBLIC_IP: $PUBLIC_IP"
+ echo "RESTCOMM_HOSTNAME: $RESTCOMM_HOSTNAME"
+ #Use HOSTNAME to create certificate is used. Else use STATIC_ADDRESS
+ if [ -n "$RESTCOMM_HOSTNAME" ]; then
+ HOSTNAME="${RESTCOMM_HOSTNAME}"
+ keytool -genkey -alias $TRUSTSTORE_ALIAS -keyalg RSA -keystore $TRUSTSTORE_LOCATION -dname "CN=$HOSTNAME" -storepass $TRUSTSTORE_PASSWORD -keypass $TRUSTSTORE_PASSWORD
+ else
+ HOSTNAME="${PUBLIC_IP}"
+ keytool -genkey -alias $TRUSTSTORE_ALIAS -keyalg RSA -keystore $TRUSTSTORE_LOCATION -dname "CN=restcomm" -ext san=ip:"$HOSTNAME" -storepass $TRUSTSTORE_PASSWORD -keypass $TRUSTSTORE_PASSWORD
+ fi
+ echo "The generated truststore file at $TRUSTSTORE_LOCATION "
+ fi
+
+ #Final necessary configuration. Protocols permitted, etc.
+ grep -q 'ephemeralDHKeySize' $RESTCOMM_BIN/standalone.conf || sed -i "s|-Djava.awt.headless=true|& -Djdk.tls.ephemeralDHKeySize=2048|" $RESTCOMM_BIN/standalone.conf
+ grep -q 'https.protocols' $RESTCOMM_BIN/standalone.conf || sed -i "s|-Djava.awt.headless=true|& -Dhttps.protocols=TLSv1.1,TLSv1.2|" $RESTCOMM_BIN/standalone.conf
+}
+
+#SIP-Servlets configuration for HTTPS.
+#For both Self-signed and Authorized certificate.
+MssStackConf(){
+ FILE=$RESTCOMM_CONF/mss-sip-stack.properties
+
+ if grep -q "gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE=${TLS_CLIENT_AUTH_TYPE}" "$FILE"; then
+ sed -i '/gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE='"$TLS_CLIENT_AUTH_TYPE"'/,+5d' $FILE
+ fi
+
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ TRUSTSTORE_LOCATION=$TRUSTSTORE_FILE
+ else
+ TRUSTSTORE_LOCATION=$RESTCOMM_HOME/standalone/configuration/$TRUSTSTORE_FILE
+ fi
+
+ #check for port offset
+ local HTTPS_PORT=$((HTTPS_PORT + PORT_OFFSET))
+
+ #https://github.com/RestComm/Restcomm-Connect/issues/2606
+ sed -i '/org.mobicents.ha.javax.sip.LOCAL_SSL_PORT=.*/ a \
+ \gov.nist.javax.sip.TLS_CLIENT_AUTH_TYPE='"$TLS_CLIENT_AUTH_TYPE"'\
+ \javax.net.ssl.keyStore='"$TRUSTSTORE_LOCATION"'\
+ \javax.net.ssl.keyStorePassword='" $TRUSTSTORE_PASSWORD"'\
+ \javax.net.ssl.trustStorePassword='"$TRUSTSTORE_PASSWORD"'\
+ \javax.net.ssl.trustStore='"$TRUSTSTORE_LOCATION"'\
+ \javax.net.ssl.keyStoreType=JKS\
+ ' $RESTCOMM_CONF/mss-sip-stack.properties
+}
+
+
+#SIP-Servlets configuration for HTTPS.
+#For both Self-signed and Authorized certificate.
+SslRMSConf(){
+ if [[ "$MANUAL_SETUP" == "false" || "$MANUAL_SETUP" == "FALSE" ]]; then
+
+ if [[ "$TRUSTSTORE_FILE" = /* ]]; then
+ CERTIFICATION_FILE=$TRUSTSTORE_FILE
+ else
+ CERTIFICATION_FILE="$RESTCOMM_CONF/$TRUSTSTORE_FILE"
+ fi
+
+ sed -i "s|SSL_ENABLED=.*|SSL_ENABLED=true|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_KEYSTORE=.*|SSL_KEYSTORE=${CERTIFICATION_FILE}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ sed -i "s|SSL_PASSWORD=.*|SSL_PASSWORD=${TRUSTSTORE_PASSWORD}|" $RESTCOMM_BIN/restcomm/mediaserver.conf
+ fi
+}
+
+# MAIN
+echo 'RestComm SSL Configuring ...'
+
+if [[ "$SECURESSL" = "SELF" || "$SECURESSL" = "AUTH" ]]; then
+ if [[ -z $TRUSTSTORE_ALIAS || -z $TRUSTSTORE_PASSWORD || -z $TRUSTSTORE_FILE ]]; then
+ echo 'Need to set all: TRUSTSTORE_ALIAS, TRUSTSTORE_PASSWORD,TRUSTSTORE_FILE '
+ else
+ echo "SECURE $SECURESSL"
+ SslRestCommConf
+ CertConfigure
+ MssStackConf
+ SslRMSConf
+ fi
+elif [[ "$SECURESSL" == "false" || "$SECURESSL" == "FALSE" ]]; then
+ NoSslRestConf
+else
+ echo "Allowed values for SECURESSL: SELF, AUTH, FALSE"
+fi
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh
new file mode 100755
index 0000000000..ec8c1b1117
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+##
+## Configures dashboard.json based on global configuration options in restcomm.conf and advanced.conf.
+##
+## requirements:
+##
+## RESTCOMM_HOME env variable to be set
+## dashboard.json should be in place (under $RESTCOMM_HOME/standalone/deployments/restcomm-management.war)
+##
+## Author: otsakir@gmail.com - Orestis Tsakiridis
+
+echo "Configuring Dashboard..."
+
+
+# MAIN
+if [ -z "$RESTCOMM_HOME" ]
+then
+ echo "RESTCOMM_HOME env variable not set. Aborting."
+ exit 1
+fi
+
+
+# Variables
+DASHBOARD_ROOT="$RESTCOMM_HOME"/standalone/deployments/restcomm-management.war
+DASHBOARD_JSON_FILE="$DASHBOARD_ROOT"/conf/dashboard.json
+
+sed -i "s|\"rvdUrl\":\"[^\"]*\"|\"rvdUrl\":\"$RVD_URL/restcomm-rvd\"|" "$DASHBOARD_JSON_FILE"
+
+echo "Dasboard configured:"
+cat $DASHBOARD_JSON_FILE
\ No newline at end of file
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh
new file mode 100755
index 0000000000..4b4a8d6403
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+## Description: Configures Dialogic XMS
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+
+RESTCOMM_STANDALONE=$RESTCOMM_HOME/standalone
+RESTCOMM_DEPLOY=$RESTCOMM_STANDALONE/deployments/restcomm.war
+
+## Description: Elects Dialogic XMS as the active Media Server for RestComm
+activateXMS() {
+ restcomm_conf=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ ms_address="$1"
+
+ sed -e "// {
+ N; s|.*<\/compatibility>|$MS_COMPATIBILITY_MODE<\/compatibility>|
+ N; s|||
+ N; s|.*<\/address>|$ms_address<\/address>|
+ }" $restcomm_conf > $restcomm_conf.bak
+ mv -f $restcomm_conf.bak $restcomm_conf
+ echo '...activated Dialogic XMS...'
+}
+
+fetchExternalResources() {
+ if [[ "$MS_COMPATIBILITY_MODE" == "xms" ]]; then
+
+ echo "Checking required libraries ..."
+
+ if [ -f $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/dialogic309-3.2-snapshot-jboss.jar ]; then
+ echo "JSR309 library ready"
+ else
+ echo "Downloading JSR309 library ..."
+ cd $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib
+ wget -O dialogic309-3.2-snapshot-jboss.jar https://www.dialogic.com/files/jsr-309/3.2GA/3.2Snapshot/dialogic309-3.2-snapshot-jboss.jar
+ fi
+
+ if [ -f $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/dialogicsmiltypes-3.2-GA-14621.jar ]; then
+ echo "SMIL Types library ready"
+ else
+ echo "Downloading SMIL Types library ..."
+ cd $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib
+ wget -O dialogicsmiltypes-3.2-GA-14621.jar https://www.dialogic.com/files/jsr-309/3.2GA/dialogicsmiltypes-3.2-GA-14621.jar
+ fi
+
+ if [ -f $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib/dialogicmsmltypes-3.2-GA-14621.jar ]; then
+ echo "MSML Types library ready"
+ else
+ echo "Downloading SMIL Types library ..."
+ cd $RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/lib
+ wget -O dialogicmsmltypes-3.2-GA-14621.jar https://www.dialogic.com/files/jsr-309/3.2GA/dialogicmsmltypes-3.2-GA-14621.jar
+ fi
+ fi
+}
+
+#MAIN
+echo "Configuring Dialogic XMS...MS_MODE: $MS_COMPATIBILITY_MODE"
+activateXMS $MS_ADDRESS
+fetchExternalResources
+echo '...finished configuring Dialogic XMS!'
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh
new file mode 100755
index 0000000000..c324c99337
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh
@@ -0,0 +1,18 @@
+#! /bin/bash
+##
+## Description: Configures JBoss AS
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+##
+
+## FUNCTIONS
+disableSplashScreen() {
+ FILE="$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml"
+ sed -e 's|enable-welcome-root=".*"|enable-welcome-root="false"|' $FILE > $FILE.bak
+ mv -f $FILE.bak $FILE
+}
+
+## MAIN
+echo 'Configuring JBoss AS...'
+disableSplashScreen
+echo '...disabled JBoss splash screen...'
+echo 'Finished configuring JBoss AS!'
\ No newline at end of file
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh
new file mode 100755
index 0000000000..77b5c56486
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh
@@ -0,0 +1,47 @@
+#! /bin/bash
+##
+## Description: Configures SIP Load Balancer
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+## Author : Pavel Slegr (pavel.slegr@telestax.com)
+## Author : Charles Roufay (charles.roufay@telestax.com)
+##
+## Last update: 22/03/2016
+## Change Log: Move away from Telestax Proxy and configure LB from restcomm.conf
+## FUNCTIONS
+##
+##
+##
+##
+configSipStack() {
+ lb_sipstack_file="$RESTCOMM_HOME/standalone/configuration/mss-sip-stack.properties"
+
+ #delete additional connectors if any added to erlier run of the script.
+ if grep -q "## lb-configuration ##" $lb_sipstack_file
+ then
+ echo "Additional Connectors Created earlier, going to delete the connectors"
+ sed '/## lb-configuration ##/,/## lb-configuration ##/d' $lb_sipstack_file > $lb_sipstack_file.bak
+ mv $lb_sipstack_file.bak $lb_sipstack_file
+ else
+ echo "LB was not configured earlier"
+ fi
+
+ if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ if [ -z "$LB_INTERNAL_IP" ]; then
+ LB_INTERNAL_IP=$LB_PUBLIC_IP
+ fi
+ sed -e "/Mobicents Load Balancer/a\
+ ## lb-configuration ##\n\
+ gov.nist.javax.sip.PATCH_SIP_WEBSOCKETS_HEADERS=false\n\
+ org.mobicents.ha.javax.sip.REACHABLE_CHECK=false\n\
+ org.mobicents.ha.javax.sip.LoadBalancerHeartBeatingServiceClassName=org.mobicents.ha.javax.sip.MultiNetworkLoadBalancerHeartBeatingServiceImpl\n\
+ ## lb-configuration ##" $lb_sipstack_file > $lb_sipstack_file.bak
+
+ mv $lb_sipstack_file.bak $lb_sipstack_file
+ echo 'Load Balancer has been activated and mss-sip-stack.properties file updated'
+ fi
+}
+
+## MAIN
+configSipStack
+
+
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh
new file mode 100755
index 0000000000..5eb9ee7934
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+##
+## Description: Configures RestComm && RMS logs level
+## Authos: Lefteris Banos (eleftherios.banos@telestax.com)
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_CONF=$RESTCOMM_HOME/standalone/configuration
+
+
+check_if_logger_exist(){
+FILE=$RESTCOMM_CONF/standalone-sip.xml
+ #delete additional bindings if any added to erlier run of the script.
+ echo
+ if grep -q "${1}" $FILE
+ then
+ echo "Logger exist"
+ else
+ echo "Need to add logger ${1}"
+ sed -i "//i \\n\\n" $FILE
+ fi
+
+}
+
+configure_RC_component_log(){
+ check_if_logger_exist $1
+ sed -i "// {N; s///}" $RESTCOMM_CONF/standalone-sip.xml
+}
+
+configure_RC_logs(){
+ sed -i "/ / {
+ N; s|||
+ }" $RESTCOMM_CONF/standalone-sip.xml
+}
+
+config_on_thefly(){
+ FILE=$RESTCOMM_BIN/restcomm/set-log-level.sh
+ MNGMTPORT=$((9999 + PORT_OFFSET))
+ sed -i "s|jboss-cli.sh --connect controller=.*|jboss-cli.sh --connect controller=$BIND_ADDRESS:${MNGMTPORT} --file=\"\$CLIFILE\"|" $FILE
+}
+
+config_AKKA_logs(){
+ FILE=$RESTCOMM_HOME/standalone/deployments/restcomm.war/WEB-INF/classes/application.conf
+ echo "Update AKKA log level to ${AKKA_LOG_LEVEL}"
+ sed -i "s|loglevel = \".*\"|loglevel = \"${AKKA_LOG_LEVEL}\"|" $FILE
+ sed -i "s|stdout-loglevel = \".*\"|stdout-loglevel = \"${AKKA_LOG_LEVEL}\"|" $FILE
+}
+
+
+#MAIN
+if [ -n "$LOG_LEVEL" ]; then
+ configure_RC_logs
+ config_on_thefly
+ config_AKKA_logs
+ for i in $( set -o posix ; set | grep ^LOG_LEVEL_COMPONENT_ | sort -rn ); do
+ component=$(echo ${i} | cut -d = -f1 | cut -d _ -f4 )
+ level=$(echo ${i} | cut -d = -f2)
+ case "$component" in
+ SIPSERVLET)
+ COMPONENT=org.mobicents.servlet.sip
+ ;;
+ GOVNIST)
+ COMPONENT=gov.nist
+ ;;
+ SIPRESTCOMM)
+ COMPONENT=org.mobicents.servlet.sip.restcomm
+ ;;
+ RESTCOMM)
+ COMPONENT=org.restcomm.connect
+ ;;
+ *)
+ echo "$component not possible to configure need to add it."
+ continue
+ esac
+
+ echo "Configuring log level for: $component -> $level"
+ configure_RC_component_log "$COMPONENT" "$level"
+ done
+ fi
+
+
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh
new file mode 100755
index 0000000000..7478e55e88
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh
@@ -0,0 +1,249 @@
+#!/bin/bash
+## Description: Enables and configures MySQL datasource
+## Params:
+## 1. RESTCOMM_VERSION
+## Author: Henrique Rosa
+## Author: Lefteris Banos
+
+# VARIABLES
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+
+
+creteMysqlDataSource(){
+ if [ -z "$RESTCOMM_HOME" ]; then
+ echo "RESTCOMM_HOME is not defined. Please setup this environment variable and try again."
+ exit 1
+ fi
+
+ # Variables
+ MYSQLDB_MODULE=$RESTCOMM_HOME/modules/system/layers/base/com/mysql/main
+ STANDALONE_SIP=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ # Download and install MariaDB driver as a JBoss module
+ mkdir -p $MYSQLDB_MODULE
+ if [ ! -f $MYSQLDB_MODULE/mysql-connector-java-5.1.36.jar ]; then
+ echo "Mysql driver not found!"
+ wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar -O /tmp/mysql-connector-java-5.1.36.jar
+ cp /tmp/mysql-connector-java-5.1.36.jar $MYSQLDB_MODULE
+ rm -f /tmp/mysql-connector-java-5.1.36.jar
+ else
+ echo "Mysql driver already downloaded"
+ fi
+
+
+cat > $MYSQLDB_MODULE/module.xml << 'EOF'
+
+
+
+
+
+
+
+
+
+
+EOF
+
+query=$(grep -q 'driver name=\"com.mysql\"' $STANDALONE_SIP)
+if [ $? -eq 0 ]; then
+ echo "Datasource already populated"
+else
+ echo "Going to populate the datasource"
+
+ if [ -n "$MYSQL_SNDHOST" ]; then
+ # Update JBoss configuration to create a MariaDB datasource
+ sed -e '// a\
+ \ \
+ \ com.mysql.jdbc.Driver\
+ \ com.mysql.jdbc.jdbc2.optional.MysqlXADataSource\
+ \ ' \
+ -e '// a\
+ \ \
+ \ jdbc:mysql://localhost:3306/restcomm \
+ \ | \
+ \ false \
+ \ com.mysql \
+ \ com.mysql.jdbc.Driver \
+ \ TRANSACTION_READ_COMMITTED \
+ \ \
+ \ 5 \
+ \ 50 \
+ \ \
+ \ \
+ \ username \
+ \ password \
+ \ \
+ \ \
+ \ 100 \
+ \ \
+ \ \
+ \ \
+ \ true \
+ \ \
+ \ \
+ \ select 1 \
+ \ \
+ \ ' $STANDALONE_SIP > $STANDALONE_SIP.bak
+ mv $STANDALONE_SIP.bak $STANDALONE_SIP
+
+ else
+ # Update JBoss configuration to create a MariaDB datasource
+ sed -e '// a\
+ \ \
+ \ com.mysql.jdbc.Driver\
+ \ com.mysql.jdbc.jdbc2.optional.MysqlXADataSource\
+ \ ' \
+ -e '// a\
+ \ \
+ \ jdbc:mysql://localhost:3306/restcomm \
+ \ com.mysql \
+ \ TRANSACTION_READ_COMMITTED \
+ \ \
+ \ 100 \
+ \ 200 \
+ \ \
+ \ \
+ \ username \
+ \ password \
+ \ \
+ \ \
+ \ 100 \
+ \ \
+ \ \
+ \ ' $STANDALONE_SIP > $STANDALONE_SIP.bak
+ mv $STANDALONE_SIP.bak $STANDALONE_SIP
+ fi
+fi
+}
+
+## Description: Configures MyBatis for MySQL
+## Parameters : none
+configMybatis() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/mybatis.xml
+
+ grep -q '' $FILE || sed -i '// a \
+ \ \
+ \ \
+ \ \
+ \ \
+ \ \
+ \ \
+ ' $FILE
+
+ sed -e '// s|default=".*"|default="mysql"|' $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo 'Activated mybatis environment for MySQL';
+}
+
+configureMySQLDataSource() {
+ FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ if [ -n "$5" ]; then
+ #DB failover configuration.
+ sed -e "s|.*|jdbc:mysql://$1:3306/$4\|jdbc:mysql://$5:3306/$4|g" $FILE > $FILE.bak
+ else
+ # Update DataSource
+ sed -e "s|.*|jdbc:mysql://$1:3306/$4|g" $FILE > $FILE.bak
+ fi
+ mv $FILE.bak $FILE
+ sed -e "s|.*|$2|g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ sed -e "s|.*|$3|g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ echo 'Updated MySQL DataSource Configuration'
+}
+
+## Description: Enables MySQL Datasource while disabling the remaining
+## Parameters : none
+enableDataSource() {
+ FILE=$RESTCOMM_HOME/standalone/configuration/standalone-sip.xml
+
+ # Disable all datasources but MySQL
+ sed -e '/ $FILE.bak
+
+ mv $FILE.bak $FILE
+ echo 'Enabled MySQL datasource'
+}
+
+## Description: Configures RestComm DAO manager to use MySQL
+## Params: none
+configDaoManager() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/dao-manager.xml
+
+ sed -e "s|.*||g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+ sed -e "s|.*|\${restcomm:home}/WEB-INF/scripts/mariadb/sql|g" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+
+ echo 'Configured MySQL Dao Manager for MySQL'
+}
+
+## Description: Set Password for Adminitrator@company.com user. Only for fresh installation.
+initUserPassword(){
+ SQL_FILE=$RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+ if [ -n "$INITIAL_ADMIN_USER" ]; then
+ # change admin user
+ if grep -q "uninitialized" $SQL_FILE; then
+ echo "Update Admin user"
+ sed -i "s/administrator@company.com/${INITIAL_ADMIN_USER}/g" $SQL_FILE
+ else
+ echo "Adminitrator User Already changed"
+ fi
+ fi
+
+ if [ -n "$INITIAL_ADMIN_PASSWORD" ]; then
+ echo "change admin password"
+ if grep -q "uninitialized" $SQL_FILE; then
+ PASSWORD_ENCRYPTED=`echo -n "${INITIAL_ADMIN_PASSWORD}" | md5sum |cut -d " " -f1`
+ #echo "Update password to ${INITIAL_ADMIN_PASSWORD}($PASSWORD_ENCRYPTED)"
+ sed -i "s/uninitialized/active/g" $SQL_FILE
+ sed -i "s/77f8c12cc7b8f8423e5c38b035249166/$PASSWORD_ENCRYPTED/g" $SQL_FILE
+ sed -i 's/Date("2012-04-24")/now()/' $SQL_FILE
+ sed -i 's/Date("2012-04-24")/now()/' $SQL_FILE
+ # end
+ else
+ echo "Adminitrator Password Already changed"
+ fi
+ fi
+}
+
+## Description: populated DB with necessary starting point data if not done.
+populateDB(){
+ #Change script to defined schema
+ echo "Use RestComm Database:$MYSQL_SCHEMA "
+ sed -i "s|CREATE DATABASE IF NOT EXISTS .*| CREATE DATABASE IF NOT EXISTS ${MYSQL_SCHEMA};|" $RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+ sed -i "s|USE .*|USE ${MYSQL_SCHEMA};|" $RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+
+ if mysql -u $2 -p$3 -h $1 -e "SELECT * FROM \`$4\`.restcomm_clients;" &>/dev/null ; then
+ # Update config settings
+ echo "Database already populated"
+ else
+ echo "Database not populated, importing schema and updating config file"
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/scripts/mariadb/init.sql
+ mysql -u $2 -p$3 -h $1 < $FILE
+ mysql -u $2 -p$3 -h $1 --execute='show databases;'
+ mysql -u $2 -p$3 -h $1 --execute='show tables;' $4;
+ echo "Database population done"
+ fi
+}
+
+# MAIN
+if [[ "$ENABLE_MYSQL" == "true" || "$ENABLE_MYSQL" == "TRUE" ]]; then
+ if [[ -z $MYSQL_HOST || -z $MYSQL_USER || -z $MYSQL_PASSWORD || -z $MYSQL_SCHEMA ]]; then
+ echo 'one or more variables are undefined'
+ echo 'Not possible to continue with Mysql configuration'
+ exit 1
+ else
+ echo "Configuring MySQL datasource... $MYSQL_HOST $MYSQL_SCHEMA $MYSQL_USER $MYSQL_SNDHOST"
+ creteMysqlDataSource
+ enableDataSource
+ configMybatis
+ configDaoManager
+ configureMySQLDataSource $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_SCHEMA $MYSQL_SNDHOST
+ initUserPassword
+ populateDB $MYSQL_HOST $MYSQL_USER $MYSQL_PASSWORD $MYSQL_SCHEMA
+ echo 'Finished configuring MySQL datasource!'
+ fi
+fi
\ No newline at end of file
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh
new file mode 100755
index 0000000000..24f3f93115
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+##
+## Description: Configures RestComm
+## Author: Lefteris Banos (eleftherios.banos@telestax.com)
+##
+
+BASEDIR=$RESTCOMM_HOME
+
+if [ ! -d "$BASEDIR/standalone/deployments/olympus.war" ]; then
+ mkdir $BASEDIR/standalone/deployments/olympus-exploded.war
+ unzip -q $BASEDIR/standalone/deployments/olympus.war -d $BASEDIR/standalone/deployments/olympus-exploded.war/
+ rm -f $BASEDIR/standalone/deployments/olympus.war
+ mv -f $BASEDIR/standalone/deployments/olympus-exploded.war $BASEDIR/standalone/deployments/olympus.war
+fi
+
+# Set Olympus ports
+olympusPortConf(){
+FILE=$BASEDIR/standalone/deployments/olympus.war/resources/xml/olympus.xml
+
+# Check for Port Offset
+ local SIP_PORT_WS=$((SIP_PORT_WS + PORT_OFFSET))
+ local SIP_PORT_WSS=$((SIP_PORT_WSS + PORT_OFFSET))
+
+ if [ -z "$SECURESSL" ] || [ "$SECURESSL" == "false" ] || [ "$SECURESSL" == "FALSE" ]; then
+ xmlstarlet ed -L -P -u "/olympus/server/@secure" -v "false" $FILE
+ else
+ xmlstarlet ed -L -P -u "/olympus/server/@secure" -v "true" $FILE
+ fi
+
+ if [ "$ACTIVATE_LB" == "true" ] || [ "$ACTIVATE_LB" == "TRUE" ]; then
+ xmlstarlet ed -L -P -u "/olympus/server/port" -v ${LB_EXTERNAL_PORT_WS} $FILE
+ xmlstarlet ed -L -P -u "/olympus/server/secure-port" -v ${LB_EXTERNAL_PORT_WSS} $FILE
+ else
+ xmlstarlet ed -L -P -u "/olympus/server/port" -v ${SIP_PORT_WS} $FILE
+ xmlstarlet ed -L -P -u "/olympus/server/secure-port" -v ${SIP_PORT_WSS} $FILE
+ fi
+
+}
+
+
+
+
+# MAIN
+echo 'Configuring Olympus...'
+#Reload Variables
+olympusPortConf
diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh
new file mode 100755
index 0000000000..92397c287e
--- /dev/null
+++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh
@@ -0,0 +1,893 @@
+#!/bin/bash
+##
+## Description: Configures RestComm
+## Author: Henrique Rosa (henrique.rosa@telestax.com)
+## Author: Pavel Slegr (pavel.slegr@telestax.com)
+## Author: Maria Farooq (maria.farooq@telestax.com)
+##
+
+# VARIABLES
+RESTCOMM_BIN=$RESTCOMM_HOME/bin
+RESTCOMM_DARS=$RESTCOMM_HOME/standalone/configuration/dars
+RESTCOMM_CONF=$RESTCOMM_HOME/standalone/configuration
+RESTCOMM_DEPLOY=$RESTCOMM_HOME/standalone/deployments/restcomm.war
+RVD_DEPLOY_PATH=$RESTCOMM_HOME/standalone/deployments/restcomm-rvd.war
+
+## FUNCTIONS
+
+## Description: Configures Java Options for Application Server
+## Parameters : none
+configRCJavaOpts() {
+ FILE=$RESTCOMM_BIN/standalone.conf
+ echo "RestComm java options with: $RC_JAVA_OPTS"
+ sed -e "/if \[ \"x\$JAVA_OPTS\" = \"x\" \]; then/ {
+ N; s|JAVA_OPTS=.*|JAVA_OPTS=\"$RC_JAVA_OPTS\"|
+ }" $FILE > $FILE.bak
+ mv $FILE.bak $FILE
+}
+
+## Description: Updates RestComm configuration file
+## Parameters : 1.STATIC_ADDRESS
+configRestcomm() {
+ FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
+ static_address="$1"
+
+ sed -i "s|<\!--.*.*<\/external-ip>.*-->|$static_address<\/external-ip>|" $FILE
+ sed -i "s|.*<\/external-ip>|$static_address<\/external-ip>|" $FILE
+
+ sed -i "s||$static_address<\/external-ip>|" $FILE
+
+ echo 'Updated RestComm configuration'
+
+ #If "STRICT" no self-signed certificate is permitted.
+ if [ "$SSL_MODE" == "strict" ] || [ "$SSL_MODE" == "STRICT" ]; then
+ sed -e "s/