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/.*<\/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd-logging.sh b/release/restcomm-assembly-wildfly10/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-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd.sh b/release/restcomm-assembly-wildfly10/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-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-sip-connectors.sh b/release/restcomm-assembly-wildfly10/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-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-utensil.sh b/release/restcomm-assembly-wildfly10/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-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh new file mode 100755 index 0000000000..454c5dca4d --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh new file mode 100755 index 0000000000..58b00dc67b --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh new file mode 100755 index 0000000000..2c934ea154 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh new file mode 100755 index 0000000000..32aa5305b2 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh new file mode 100755 index 0000000000..f253f176be --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh new file mode 100755 index 0000000000..9e28525f0e --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh new file mode 100755 index 0000000000..90e9470a76 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh new file mode 100755 index 0000000000..e3acd40f3b --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh new file mode 100755 index 0000000000..cadee45e16 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh new file mode 100755 index 0000000000..ae6ba7538e --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh new file mode 100755 index 0000000000..a8f2904939 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh new file mode 100755 index 0000000000..6c91d6232d --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/utils/read-network-props.sh b/release/restcomm-assembly-wildfly10/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-wildfly10/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-wildfly10/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh new file mode 100755 index 0000000000..95565c6cf3 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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 "8" ]; then + echo "Only Java 1.8 required." + exit 1 + fi + else + echo "Java dependency is missing." + echo "CentOS/RHEL: java-1.8.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-8-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-wildfly10/src/main/resources/assembly-resources/docs/restcomm/README b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/docs/restcomm/README new file mode 100644 index 0000000000..e69f60bc40 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties new file mode 100644 index 0000000000..4027360c94 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties new file mode 100644 index 0000000000..a1309d2c75 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/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-wildfly10/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy @@ -0,0 +1 @@ + diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy @@ -0,0 +1 @@ + diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy @@ -0,0 +1 @@ + diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy @@ -0,0 +1 @@ + diff --git a/release/src/main/resources/common.xml b/release/src/main/resources/common.xml new file mode 100644 index 0000000000..5a828b6fc0 --- /dev/null +++ b/release/src/main/resources/common.xml @@ -0,0 +1,120 @@ + + + + + src/main/config/run.sh + bin/run.sh + + + + + src/main/config/log4j2.xml + conf/log4j2.xml + + + + src/main/config/mediaserver.xml + conf/mediaserver.xml + + + + + src/main/config/autoconfig/start-mediaserver.sh + start-mediaserver.sh + + + src/main/config/autoconfig/stop-mediaserver.sh + stop-mediaserver.sh + + + src/main/config/autoconfig/mediaserver.conf + mediaserver.conf + + + src/main/config/autoconfig/logger.conf + logger.conf + + + src/main/config/autoconfig/ssl.conf + ssl.conf + + + src/main/config/autoconfig/verify-dependencies.sh + .autoconfig/verify-dependencies.sh + + + src/main/config/autoconfig/autoconfigure.sh + .autoconfig/autoconfigure.sh + + + src/main/config/autoconfig/config-network.sh + .autoconfig/autoconfig.d/config-network.sh + + + src/main/config/autoconfig/config-controller-mgcp.sh + .autoconfig/autoconfig.d/config-controller-mgcp.sh + + + src/main/config/autoconfig/config-media.sh + .autoconfig/autoconfig.d/config-media.sh + + + src/main/config/autoconfig/config-resources.sh + .autoconfig/autoconfig.d/config-resources.sh + + + src/main/config/autoconfig/config-dtls.sh + .autoconfig/autoconfig.d/config-dtls.sh + + + src/main/config/autoconfig/config-logger.sh + .autoconfig/autoconfig.d/config-logger.sh + + + src/main/config/autoconfig/config-java-opts.sh + .autoconfig/autoconfig.d/config-java-opts.sh + + + src/main/config/autoconfig/config-ssl.sh + .autoconfig/autoconfig.d/config-ssl.sh + + + src/main/config/autoconfig/config-asr-drivers.sh + .autoconfig/autoconfig.d/config-asr-drivers.sh + + + + + src/main/config/dtls/x509-ca.pem + conf/dtls/x509-ca.pem + + + src/main/config/dtls/x509-ca-key.pem + conf/dtls/x509-ca-key.pem + + + src/main/config/dtls/x509-server.pem + conf/dtls/x509-server.pem + + + src/main/config/dtls/x509-server-key.pem + conf/dtls/x509-server-key.pem + + + src/main/config/dtls/x509-client-ecdsa.pem + conf/dtls/x509-client-ecdsa.pem + + + src/main/config/dtls/x509-client-key-ecdsa.pem + conf/dtls/x509-client-key-ecdsa.pem + + + src/main/config/dtls/x509-server-ecdsa.pem + conf/dtls/x509-server-ecdsa.pem + + + src/main/config/dtls/x509-server-key-ecdsa.pem + conf/dtls/x509-server-key-ecdsa.pem + + + \ No newline at end of file diff --git a/release/src/main/resources/descriptor.xml b/release/src/main/resources/descriptor.xml new file mode 100644 index 0000000000..277a903333 --- /dev/null +++ b/release/src/main/resources/descriptor.xml @@ -0,0 +1,31 @@ + + assembly + + zip + + ${project.build.finalName} + + + ${project.build.directory}/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final + / + + + ${project.build.directory}/dependency/restcomm-media-server + /mediaserver + + + + + /standalone/deployments + false + + org.restcomm:restcomm-connect-rvd + org.mobicents.webrtc:webrtc-ui + + + + + + diff --git a/restcomm-connect-root.iml b/restcomm-connect-root.iml new file mode 100644 index 0000000000..4fd5057cb9 --- /dev/null +++ b/restcomm-connect-root.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 80de776a9b..e6ab61117b 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -4,13 +4,10 @@ org.restcomm - restcomm-parent - 4.0.1 + restcomm-connect-root + 9.0.0-SNAPSHOT - - org.restcomm restcomm-connect - 8.3.2-SNAPSHOT pom RestComm-Connect A unified communications platform for web developers. @@ -115,9 +112,7 @@ 1.9.1 2.3.2 1.2.293 - 1.0.3.Final - 1.0.3 - 1.0.2 + 1.1.13.Final 2.2.6 2.0.4 @@ -141,7 +136,6 @@ - restcomm.application restcomm.commons restcomm.dao @@ -165,7 +159,6 @@ restcomm.telephony restcomm.tts.api restcomm.tts.voicerss - restcomm.testsuite restcomm.ui restcomm.tts.att restcomm.ussd @@ -186,129 +179,6 @@ - - - org.restcomm - restcomm-connect.sdr.api - ${project.version} - - - org.restcomm - restcomm-connect.core - ${project.version} - - - org.restcomm - restcomm-connect.mrb.api - ${project.version} - - - - org.restcomm - restcomm-connect.mrb - ${project.version} - - - org.restcomm - restcomm-connect.application - ${project.version} - war - - - org.restcomm - restcomm-connect.extension.api - ${project.version} - - - org.restcomm - restcomm-connect.extension.controller - ${project.version} - - - org.restcomm - restcomm-connect.monitoring.service - ${project.version} - - - org.restcomm - restcomm-connect.dao - ${project.version} - - - org.restcomm - restcomm-connect.telephony - ${project.version} - - - org.restcomm - restcomm-connect.telephony.api - ${project.version} - - - - org.restcomm - restcomm-connect.http - ${project.version} - - - org.restcomm - restcomm-connect.extension.api - ${project.version} - - - - org.restcomm - restcomm-connect.testsuite - ${project.version} - - - - org.restcomm - restcomm-connect.commons - ${project.version} - - - org.restcomm - restcomm-connect.email.api - ${project.version} - - - - org.restcomm - restcomm-connect.sms - ${project.version} - - - org.restcomm - restcomm-connect.mgcp - ${project.version} - - - - org.restcomm - restcomm-connect.mscontrol.api - ${project.version} - - - - org.restcomm - restcomm-connect.mscontrol.mms - ${project.version} - - - org.restcomm - restcomm-connect.dns.api - ${project.version} - - - org.restcomm - restcomm-connect-management - ${project.version} - war - - - - @@ -425,18 +295,18 @@ ${javamail.version} - - javax.servlet - javax.servlet-api - 3.0.1 - provided - org.mobicents.servlet.sip sip-servlets-spec ${sipservletapi.version} provided + + org.mobicents.servlet.sip + sip-servlets-client + ${sipservletapi.version} + provided + @@ -453,6 +323,12 @@ ${shiroweb.version} + + javax.ws.rs + jsr311-api + 1.0 + + com.sun.jersey jersey-server @@ -555,19 +431,6 @@ test - - org.apache.tomcat - tomcat-coyote - ${tomcat7.version} - provided - - - - org.apache.tomcat - tomcat-jasper - ${tomcat7.version} - provided - javax.sip @@ -576,19 +439,6 @@ test - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - ${sipservletapi.version} - provided - - - - org.mobicents.servlet.sip - sip-servlets-core-api - ${sipservletapi.version} - - org.mobicents.servlet.sip sip-servlets-application-router @@ -602,45 +452,12 @@ ${hsqldb.version} - - org.mobicents.arquillian.container - mss-tomcat-embedded-7 - ${mss.arquillian.version} - test - - - com.telscale.licensing - lce-core - - - org.mobicents.sipunit - * - - - - - - org.apache.tomcat - tomcat-catalina - ${tomcat7.version} - - org.jboss.arquillian.junit arquillian-junit-container ${arquillian.version} + test - - - org.mobicents.arquillian.container - mss-arquillian-mediaserver-api - ${mss.arquillian.version} - - - org.mobicents.arquillian.container - mss-arquillian-mediaserver-extension - ${mss.arquillian.version} - org.jboss.shrinkwrap.resolver @@ -655,12 +472,6 @@ ${shrinkwrap.resolver.version} test - - - com.cloudhopper - ch-commons-util - ${ch-commons-util.version} - org.mobicents.sipunit @@ -698,46 +509,19 @@ ${smpp-extensions.version} + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + org.mockito mockito-core ${mockito-core.version} test - - - org.mobicents.servlet.sip.containers - sip-servlets-tomcat-7 - ${sipservletapi.version} - - - org.mobicents.servlet.sip - sip-servlets-impl - ${sipservletapi.version} - - - org.mobicents.servlet.sip - sip-servlets-client - ${sipservletapi.version} - - - org.mobicents.commtesting - mgcpUnit - ${mgcpunit.version} - - - org.mobicents.media - concurrent - ${mobicents.mgcp.impl.version} - - - com.github.tomakehurst - wiremock - 1.57 - - standalone - @@ -746,80 +530,74 @@ junit junit + ${junit.version} test org.scalatest scalatest_2.9.1 + ${scalatest.version} test com.typesafe.akka akka-testkit_2.10 - test - - - - org.apache.tomcat - tomcat-coyote - test - - - - org.apache.tomcat - tomcat-jasper + ${akka.version} test javax.sip jain-sip-ri + ${sip-ri.version} test - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - test - org.mobicents.servlet.sip sip-servlets-application-router + ${sipservletapi.version} test org.hsqldb hsqldb + ${hsqldb.version} test org.mobicents.sipunit sipunit + ${sipunit.version} test org.mobicents checkstyle + ${mobicents.checkstyle.version} commons-codec commons-codec + ${commons-codec.version} commons-lang commons-lang + ${commons-lang.version} org.mockito mockito-core + ${mockito-core.version} test @@ -861,6 +639,7 @@ org.apache.maven.plugins maven-checkstyle-plugin + ${checkstyle.plugin.version} /checkstyle/checkstyle.xml true @@ -993,7 +772,7 @@ org.apache.maven.plugins maven-checkstyle-plugin ${checkstyle.plugin.version} - + @@ -1005,6 +784,12 @@ restcomm.docs + + testsuite + + restcomm.testsuite + + set-git-hash @@ -1086,6 +871,7 @@ + @@ -1156,5 +942,4 @@ - - \ No newline at end of file + diff --git a/restcomm/restcomm.application/pom.xml b/restcomm/restcomm.application/pom.xml index 375345a83b..a688a6a628 100644 --- a/restcomm/restcomm.application/pom.xml +++ b/restcomm/restcomm.application/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.application @@ -67,12 +67,7 @@ sip-servlets-spec provided - - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - provided - + javax.servlet diff --git a/restcomm/restcomm.asr/pom.xml b/restcomm/restcomm.asr/pom.xml index 6843754c3e..e6ac9285ab 100644 --- a/restcomm/restcomm.asr/pom.xml +++ b/restcomm/restcomm.asr/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.asr @@ -68,4 +68,4 @@ file:///${basedir}/lib - \ No newline at end of file + diff --git a/restcomm/restcomm.commons/pom.xml b/restcomm/restcomm.commons/pom.xml index 3959375957..0b23384b8b 100644 --- a/restcomm/restcomm.commons/pom.xml +++ b/restcomm/restcomm.commons/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.commons diff --git a/restcomm/restcomm.core/pom.xml b/restcomm/restcomm.core/pom.xml index b350060fc6..4536ab1d0a 100644 --- a/restcomm/restcomm.core/pom.xml +++ b/restcomm/restcomm.core/pom.xml @@ -1,36 +1,46 @@ - 4.0.0 - - org.restcomm - restcomm-connect - 8.3.2-SNAPSHOT - - restcomm-connect.core - restcomm-connect.core - http://maven.apache.org + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.restcomm + restcomm-connect + 9.0.0-SNAPSHOT + + restcomm-connect.core + restcomm-connect.core + http://maven.apache.org - - UTF-8 - + + UTF-8 + - - - org.restcomm - restcomm-connect.dao - ${project.version} - provided - - - org.restcomm - restcomm-connect.commons - ${project.version} - provided - - - com.googlecode.libphonenumber - libphonenumber - - + + + org.restcomm + restcomm-connect.dao + ${project.version} + provided + + + org.restcomm + restcomm-connect.commons + ${project.version} + provided + + + com.googlecode.libphonenumber + libphonenumber + + + log4j + log4j + provided + + + javax.servlet + javax.servlet-api + provided + + \ No newline at end of file diff --git a/restcomm/restcomm.dao/pom.xml b/restcomm/restcomm.dao/pom.xml index 0ccd38dc11..1f8f3e46f4 100644 --- a/restcomm/restcomm.dao/pom.xml +++ b/restcomm/restcomm.dao/pom.xml @@ -6,7 +6,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.dao @@ -68,17 +68,7 @@ provided - - org.apache.tomcat - tomcat-coyote - provided - - - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - provided - + com.googlecode.libphonenumber diff --git a/restcomm/restcomm.dns.api/pom.xml b/restcomm/restcomm.dns.api/pom.xml index 5434798937..066826d400 100644 --- a/restcomm/restcomm.dns.api/pom.xml +++ b/restcomm/restcomm.dns.api/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.dns.api @@ -20,10 +20,11 @@ - org.apache.tomcat - tomcat-coyote - provided - - + javax.servlet + javax.servlet-api + provided + + + diff --git a/restcomm/restcomm.docs/pom.xml b/restcomm/restcomm.docs/pom.xml index 55e0e98cb7..0ad66575a4 100644 --- a/restcomm/restcomm.docs/pom.xml +++ b/restcomm/restcomm.docs/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm diff --git a/restcomm/restcomm.docs/sources-asciidoc/pom.xml b/restcomm/restcomm.docs/sources-asciidoc/pom.xml index a532eb6f7f..dbed8557cb 100644 --- a/restcomm/restcomm.docs/sources-asciidoc/pom.xml +++ b/restcomm/restcomm.docs/sources-asciidoc/pom.xml @@ -6,7 +6,7 @@ org.restcomm restcomm-connect-docs - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect-docs-sources diff --git a/restcomm/restcomm.email.api/pom.xml b/restcomm/restcomm.email.api/pom.xml index 4764ef5d56..407ef44979 100644 --- a/restcomm/restcomm.email.api/pom.xml +++ b/restcomm/restcomm.email.api/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.email.api @@ -21,38 +21,12 @@ ${project.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + javax.servlet + javax.servlet-api + provided + - \ No newline at end of file + diff --git a/restcomm/restcomm.email/pom.xml b/restcomm/restcomm.email/pom.xml index 9cf6298898..26d92bf3d1 100644 --- a/restcomm/restcomm.email/pom.xml +++ b/restcomm/restcomm.email/pom.xml @@ -5,7 +5,7 @@ restcomm-connect org.restcomm - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.email @@ -78,4 +78,4 @@ - \ No newline at end of file + diff --git a/restcomm/restcomm.extension.api/pom.xml b/restcomm/restcomm.extension.api/pom.xml index 7c41ed0fd9..c805c09c24 100644 --- a/restcomm/restcomm.extension.api/pom.xml +++ b/restcomm/restcomm.extension.api/pom.xml @@ -1,54 +1,49 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + 4.0.0 - org.restcomm - restcomm-connect - 8.3.2-SNAPSHOT - + org.restcomm + restcomm-connect + 9.0.0-SNAPSHOT + - org.restcomm - restcomm-connect.extension.api - restcomm-connect.extension.api + org.restcomm + restcomm-connect.extension.api + restcomm-connect.extension.api - - UTF-8 - + + UTF-8 + + + + + + javax.ws.rs + jsr311-api + provided + + + + joda-time + joda-time + ${jodatime.version} + + + + org.restcomm + restcomm-connect.commons + ${project.version} + provided + - - com.sun.jersey - jersey-core - ${jersey.version} + javax.servlet + javax.servlet-api + provided - - joda-time - joda-time - ${jodatime.version} - - - - org.restcomm - restcomm-connect.commons - ${project.version} - provided - - - - - org.apache.tomcat - tomcat-coyote - provided - - - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - provided - - + diff --git a/restcomm/restcomm.extension.controller/pom.xml b/restcomm/restcomm.extension.controller/pom.xml index 3b2720cf13..014ea363ea 100644 --- a/restcomm/restcomm.extension.controller/pom.xml +++ b/restcomm/restcomm.extension.controller/pom.xml @@ -7,7 +7,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm @@ -46,13 +46,8 @@ ${sipservletapi.version} provided - - - org.apache.tomcat - tomcat-coyote - provided - - + + org.restcomm restcomm-connect.dao @@ -67,6 +62,17 @@ org.apache.maven maven-artifact + + javax.servlet + javax.servlet-api + provided + + + + javax.ws.rs + jsr311-api + test + diff --git a/restcomm/restcomm.fax/pom.xml b/restcomm/restcomm.fax/pom.xml index 39f0369d8b..2e89a8f351 100644 --- a/restcomm/restcomm.fax/pom.xml +++ b/restcomm/restcomm.fax/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.fax @@ -54,4 +54,4 @@ - \ No newline at end of file + diff --git a/restcomm/restcomm.http/pom.xml b/restcomm/restcomm.http/pom.xml index 700b562346..ca737f9079 100644 --- a/restcomm/restcomm.http/pom.xml +++ b/restcomm/restcomm.http/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.http @@ -182,13 +182,6 @@ test - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - ${sipservletapi.version} - test - - org.mobicents.servlet.sip sip-servlets-application-router @@ -196,20 +189,6 @@ test - - org.apache.tomcat - tomcat-coyote - ${tomcat7.version} - test - - - - org.apache.tomcat - tomcat-jasper - ${tomcat7.version} - test - - junit junit @@ -233,30 +212,6 @@ hsqldb - - org.mobicents.arquillian.container - mss-tomcat-embedded-7 - test - - - - org.jboss.arquillian.junit - arquillian-junit-container - test - - - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven - test - - - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven-archive - test - - org.mockito mockito-core diff --git a/restcomm/restcomm.identity/pom.xml b/restcomm/restcomm.identity/pom.xml index 00998bd2c7..5b6a76b3db 100644 --- a/restcomm/restcomm.identity/pom.xml +++ b/restcomm/restcomm.identity/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.identity @@ -45,22 +45,6 @@ provided - - com.sun.jersey - jersey-server - - - - com.sun.jersey - jersey-client - - - - com.sun.jersey - jersey-servlet - ${jersey.version} - - com.thoughtworks.xstream xstream diff --git a/restcomm/restcomm.interpreter/pom.xml b/restcomm/restcomm.interpreter/pom.xml index acdacd6697..0b857d1768 100644 --- a/restcomm/restcomm.interpreter/pom.xml +++ b/restcomm/restcomm.interpreter/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.interpreter @@ -144,7 +144,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided @@ -179,4 +178,4 @@ - \ No newline at end of file + diff --git a/restcomm/restcomm.mgcp/pom.xml b/restcomm/restcomm.mgcp/pom.xml index 97b9ab498c..7bf64527b2 100644 --- a/restcomm/restcomm.mgcp/pom.xml +++ b/restcomm/restcomm.mgcp/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mgcp diff --git a/restcomm/restcomm.monitoring.service/pom.xml b/restcomm/restcomm.monitoring.service/pom.xml index ad6ab223ec..21dfe455df 100644 --- a/restcomm/restcomm.monitoring.service/pom.xml +++ b/restcomm/restcomm.monitoring.service/pom.xml @@ -1,96 +1,96 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + 4.0.0 - - org.restcomm - restcomm-connect - 8.3.2-SNAPSHOT - + + org.restcomm + restcomm-connect + 9.0.0-SNAPSHOT + - restcomm-connect.monitoring.service - restcomm-connect.monitoring.service + restcomm-connect.monitoring.service + restcomm-connect.monitoring.service - - UTF-8 - + + UTF-8 + - - - org.slf4j - slf4j-api - + + + org.slf4j + slf4j-api + - - org.slf4j - slf4j-log4j12 - + + org.slf4j + slf4j-log4j12 + - - log4j - log4j - provided - + + log4j + log4j + provided + - - org.scala-lang - scala-library - + + org.scala-lang + scala-library + - - com.typesafe.akka - akka-actor_2.10 - + + com.typesafe.akka + akka-actor_2.10 + - - com.typesafe.akka - akka-slf4j_2.10 - + + com.typesafe.akka + akka-slf4j_2.10 + - - org.apache.httpcomponents - httpclient - + + org.apache.httpcomponents + httpclient + - - org.restcomm - restcomm-connect.commons - ${project.version} - + + org.restcomm + restcomm-connect.commons + ${project.version} + - - org.restcomm - restcomm-connect.dao - ${project.version} - provided - + + org.restcomm + restcomm-connect.dao + ${project.version} + provided + - - org.restcomm - restcomm-connect.telephony.api - ${project.version} - provided - + + org.restcomm + restcomm-connect.telephony.api + ${project.version} + provided + - - org.apache.tomcat - tomcat-coyote - provided - - + javax.sip jain-sip-api - ${jain-sip-api.version} - provided + ${jain-sip-api.version} + provided org.restcomm restcomm-connect.mgcp - ${project.version} + ${project.version} + + javax.servlet + javax.servlet-api + provided + diff --git a/restcomm/restcomm.mrb.api/pom.xml b/restcomm/restcomm.mrb.api/pom.xml index f38c398c9b..91cc0d3916 100644 --- a/restcomm/restcomm.mrb.api/pom.xml +++ b/restcomm/restcomm.mrb.api/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mrb.api diff --git a/restcomm/restcomm.mrb/pom.xml b/restcomm/restcomm.mrb/pom.xml index b06e91f9ad..752f011565 100644 --- a/restcomm/restcomm.mrb/pom.xml +++ b/restcomm/restcomm.mrb/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mrb diff --git a/restcomm/restcomm.mscontrol.api/pom.xml b/restcomm/restcomm.mscontrol.api/pom.xml index fc97c1e00b..cc2ce794c5 100644 --- a/restcomm/restcomm.mscontrol.api/pom.xml +++ b/restcomm/restcomm.mscontrol.api/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mscontrol.api diff --git a/restcomm/restcomm.mscontrol.jsr309/pom.xml b/restcomm/restcomm.mscontrol.jsr309/pom.xml index 81d2780a0c..9060a2fccb 100644 --- a/restcomm/restcomm.mscontrol.jsr309/pom.xml +++ b/restcomm/restcomm.mscontrol.jsr309/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mscontrol.jsr309 diff --git a/restcomm/restcomm.mscontrol.mms/pom.xml b/restcomm/restcomm.mscontrol.mms/pom.xml index 52badf2e07..3ee8580a9b 100644 --- a/restcomm/restcomm.mscontrol.mms/pom.xml +++ b/restcomm/restcomm.mscontrol.mms/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mscontrol.mms diff --git a/restcomm/restcomm.provisioning.number.api/pom.xml b/restcomm/restcomm.provisioning.number.api/pom.xml index 5abd2b7bd0..9bddffebdf 100644 --- a/restcomm/restcomm.provisioning.number.api/pom.xml +++ b/restcomm/restcomm.provisioning.number.api/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.api @@ -14,13 +14,12 @@ restcomm-connect.commons ${project.version} - - - org.apache.tomcat - tomcat-coyote - provided - - + + + javax.servlet + javax.servlet-api + provided + diff --git a/restcomm/restcomm.provisioning.number.bandwidth/pom.xml b/restcomm/restcomm.provisioning.number.bandwidth/pom.xml index 88f236f461..91703dbc8c 100644 --- a/restcomm/restcomm.provisioning.number.bandwidth/pom.xml +++ b/restcomm/restcomm.provisioning.number.bandwidth/pom.xml @@ -5,7 +5,7 @@ restcomm-connect org.restcomm - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 @@ -55,7 +55,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided @@ -164,4 +163,4 @@ - \ No newline at end of file + diff --git a/restcomm/restcomm.provisioning.number.nexmo/pom.xml b/restcomm/restcomm.provisioning.number.nexmo/pom.xml index 90354b9097..841b40e72d 100644 --- a/restcomm/restcomm.provisioning.number.nexmo/pom.xml +++ b/restcomm/restcomm.provisioning.number.nexmo/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.nexmo @@ -51,7 +51,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.provisioning.number.vi/pom.xml b/restcomm/restcomm.provisioning.number.vi/pom.xml index b5492a6867..547a9d6a24 100644 --- a/restcomm/restcomm.provisioning.number.vi/pom.xml +++ b/restcomm/restcomm.provisioning.number.vi/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.vi @@ -56,7 +56,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.provisioning.number.voxbone/pom.xml b/restcomm/restcomm.provisioning.number.voxbone/pom.xml index 39a6132bc7..ff26d307cd 100644 --- a/restcomm/restcomm.provisioning.number.voxbone/pom.xml +++ b/restcomm/restcomm.provisioning.number.voxbone/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.voxbone @@ -56,7 +56,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.routing/pom.xml b/restcomm/restcomm.routing/pom.xml index aca0c59743..ef27fa48d1 100644 --- a/restcomm/restcomm.routing/pom.xml +++ b/restcomm/restcomm.routing/pom.xml @@ -5,11 +5,10 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm restcomm-connect.routing - 8.3.2-SNAPSHOT restcomm-connect.routing http://maven.apache.org diff --git a/restcomm/restcomm.sdr.api/pom.xml b/restcomm/restcomm.sdr.api/pom.xml index 14540abb60..66bbb6960f 100644 --- a/restcomm/restcomm.sdr.api/pom.xml +++ b/restcomm/restcomm.sdr.api/pom.xml @@ -5,7 +5,7 @@ restcomm-connect org.restcomm - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.sdr.api @@ -34,4 +34,4 @@ provided - \ No newline at end of file + diff --git a/restcomm/restcomm.sms.api/pom.xml b/restcomm/restcomm.sms.api/pom.xml index 736c80acc6..7b04579fcf 100644 --- a/restcomm/restcomm.sms.api/pom.xml +++ b/restcomm/restcomm.sms.api/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.sms.api diff --git a/restcomm/restcomm.sms/pom.xml b/restcomm/restcomm.sms/pom.xml index 1c2ae9f849..4c6155cb40 100644 --- a/restcomm/restcomm.sms/pom.xml +++ b/restcomm/restcomm.sms/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.sms @@ -47,7 +47,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.telephony.api/pom.xml b/restcomm/restcomm.telephony.api/pom.xml index fe68e2bf04..4a8cf63f04 100644 --- a/restcomm/restcomm.telephony.api/pom.xml +++ b/restcomm/restcomm.telephony.api/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.telephony.api restcomm-connect.telephony.api @@ -19,14 +19,13 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided - + - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 + org.mobicents.servlet.sip + sip-servlets-client provided @@ -62,4 +61,4 @@ - \ No newline at end of file + diff --git a/restcomm/restcomm.telephony/pom.xml b/restcomm/restcomm.telephony/pom.xml index 7e169c4a00..a83b1e3cd9 100644 --- a/restcomm/restcomm.telephony/pom.xml +++ b/restcomm/restcomm.telephony/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.telephony @@ -67,17 +67,7 @@ provided - - org.apache.tomcat - tomcat-jasper - provided - - - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - provided - + javax.servlet diff --git a/restcomm/restcomm.testsuite/HowToDebugTestsuiteUsingArquillianManagedServer.md b/restcomm/restcomm.testsuite/HowToDebugTestsuiteUsingArquillianManagedServer.md new file mode 100644 index 0000000000..bea0e5dbcf --- /dev/null +++ b/restcomm/restcomm.testsuite/HowToDebugTestsuiteUsingArquillianManagedServer.md @@ -0,0 +1,20 @@ +# How to Debug TestSuite when using Arquillian Manager container + +To debug a managed container we need to use remote debugging. +Check here: http://arquillian.org/guides/getting_started_rinse_and_repeat/#debug_a_managed_server + +1. Edit `arquillian.xml` to include the following: + +`-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y -Dorg.jboss.server.bootstrap.maxThreads=1` + +Using the above, when the test case starts it will suspend waiting for the remote debugger to connect + +2. Using IDE settings, prepare remote debugging configuration that points to 127.0.0.1:8787 + +3. Start test case, you will notice it suspend waiting for remote debugger + +4. Start remote debugger + +## Important note + +Remote debugging property should always be removed, otherwise CI and CD jobs will fail to run automatically testsuite diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 99a09a198b..528f1d97c8 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -4,12 +4,16 @@ restcomm-connect org.restcomm - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 restcomm-connect.testsuite + + 3.2.0-105 + + @@ -93,10 +97,6 @@ shiro-web - - com.sun.jersey - jersey-server - com.sun.jersey @@ -129,74 +129,57 @@ javax.sip jain-sip-ri - + - org.jboss.arquillian.junit - arquillian-junit-container - ${arquillian.version} - compile + org.jboss.arquillian.junit + arquillian-junit-container + ${arquillian.version} + compile - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven - ${shrinkwrap.resolver.version} - compile + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven + ${shrinkwrap.resolver.version} + compile - - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-api-maven - ${shrinkwrap.resolver.version} - compile - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-api-maven-archive - ${shrinkwrap.resolver.version} - compile - + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api-maven + ${shrinkwrap.resolver.version} + compile + - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven-archive - ${shrinkwrap.resolver.version} - compile - + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-api-maven-archive + ${shrinkwrap.resolver.version} + compile + - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - ${sipservletapi.version} + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven-archive + ${shrinkwrap.resolver.version} compile + + - org.mobicents.servlet.sip.containers - sip-servlets-tomcat-7 - ${sipservletapi.version} - compile + org.mobicents.sipunit + sipunit + compile - org.mobicents.arquillian.container - mss-tomcat-embedded-7 - ${mss.arquillian.version} - compile + org.wildfly.arquillian + wildfly-arquillian-container-managed + 2.1.0.Final + test - + - - - - com.cloudhopper @@ -253,7 +236,7 @@ javax.sip jain-sip-api 1.2 - test + compile @@ -285,19 +268,7 @@ test - - org.apache.tomcat - tomcat-coyote - ${tomcat7.version} - test - - - org.apache.tomcat - tomcat-jasper - ${tomcat7.version} - test - org.mockito @@ -321,35 +292,19 @@ standalone - - org.apache.tomcat - tomcat-catalina - ${tomcat7.version} - - org.mobicents.commtesting mgcpUnit ${mgcpunit.version} test - - org.mobicents.arquillian.container - mss-arquillian-mediaserver-api - ${mss.arquillian.version} - compile - + javax.servlet javax.servlet-api provided - - org.mobicents.arquillian.container - mss-arquillian-mediaserver-extension - ${mss.arquillian.version} - compile - + com.icegreen greenmail @@ -387,22 +342,48 @@ test - - org.restcomm - restcomm-connect.monitoring.service - ${project.version} - test - - - - org.restcomm.smpp - smpp-extensions - + + org.restcomm + restcomm-connect.monitoring.service + ${project.version} + test + + + + org.restcomm.smpp + smpp-extensions + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + process-test-classes + + unpack + + + + + org.mobicents.servlet.sip + sip-servlets-wildfly-10 + ${sip.servlets.wildfly.version} + zip + assembly + + + **/** + **/mobicents-dar.properties, **/click2call.**, **/media-jsr309-servlet.**, **/websockets-sip-servlet.** + + + + maven-compiler-plugin @@ -467,10 +448,42 @@ maven-surefire-plugin 2.19.1 - -Xms256m -Xmx2048m -XX:MaxPermSize=1024m ${jacocoArgLine} + -Xms256m -Xmx2048m ${jacocoArgLine} false + + org.jboss.logmanager.LogManager + ${project.basedir}/target/dependency/restcomm-sip-servlets-${sip.servlets.wildfly.version}-wildfly-10.0.0.Final + wildfly10-managed + + false + + org.apache.maven.plugins + maven-resources-plugin + + + copy-dar-file + process-test-classes + + copy-resources + + + ${project.basedir}/target/dependency/restcomm-sip-servlets-${sip.servlets.wildfly.version}-wildfly-10.0.0.Final/standalone/configuration/dars/ + true + + + ${project.basedir}/src/test/resources + + mobicents-dar.properties + + false + + + + + + @@ -537,7 +550,7 @@ every forked JVM/test class--> ${surefire.forkNumber}509 ${surefire.forkNumber}508 - + diff --git a/restcomm/restcomm.testsuite/src/main/java/org/restcomm/connect/testsuite/SipStackTool.java b/restcomm/restcomm.testsuite/src/main/java/org/restcomm/connect/testsuite/SipStackTool.java new file mode 100644 index 0000000000..8c7d21a43a --- /dev/null +++ b/restcomm/restcomm.testsuite/src/main/java/org/restcomm/connect/testsuite/SipStackTool.java @@ -0,0 +1,176 @@ +/* + * TeleStax, Open Source Cloud Communications + * Copyright 2011-2014, Telestax Inc and individual contributors + * by the @authors tag. + * + * This program is free software: you can redistribute it and/or modify + * under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation; either version 3 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * + */ +package org.restcomm.connect.testsuite; + +import java.util.Map; +import java.util.Properties; +import java.util.logging.Logger; + +import org.cafesip.sipunit.SipStack; + +/** + * Utility class to hide the complexity of creating a SipUnit sipStack. + * + * @author George Vagenas + * + */ +public class SipStackTool { + + boolean initialized; + + private String sipStackName; + + private SipStack sipStack; + + private final Logger logger = Logger.getLogger(SipStackTool.class.getName()); + + public SipStackTool(String sipStackName) { + this.setSipStackName(sipStackName); + } + + // Return SipStack + private Properties makeProperties(String myTransport, String myHost, String myPort, String outboundProxy, Boolean myAutoDialog, + String threadPoolSize, String reentrantListener, Map additionalProperties) throws Exception { + + Properties properties = new Properties(); + + if (myHost == null) { + myHost = "127.0.0.1"; + } + if (myTransport == null) { + myTransport = SipStack.PROTOCOL_UDP; + } + + properties.setProperty("javax.sip.IP_ADDRESS", myHost); + properties.setProperty("javax.sip.STACK_NAME", "UAC_" + myTransport + "_" + myPort); + properties.setProperty("javax.sip.AUTOMATIC_DIALOG_SUPPORT", (myAutoDialog ? "on" : "off")); + + properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32"); + properties.setProperty("gov.nist.javax.sip.DEBUG_LOG", "logs/testAgent_debug_" + myPort + "_" + myTransport + ".txt"); + properties.setProperty("gov.nist.javax.sip.SERVER_LOG", "logs/testAgent_serverLog_" + myPort + "_" + myTransport + ".xml"); + properties.setProperty("gov.nist.javax.sip.READ_TIMEOUT", "1000"); + properties.setProperty("gov.nist.javax.sip.CACHE_SERVER_CONNECTIONS", "false"); + properties.setProperty("gov.nist.javax.sip.PASS_INVITE_NON_2XX_ACK_TO_LISTENER", "true"); + + properties.setProperty("sipunit.trace", "true"); + properties.setProperty("sipunit.test.protocol", myTransport); + properties.setProperty("sipunit.test.port", myPort); + properties.setProperty("sipunit.BINDADDR", myHost); + + if (outboundProxy != null) { + properties.setProperty("javax.sip.OUTBOUND_PROXY", outboundProxy + "/" + + myTransport); + + String proxyHost = outboundProxy.split(":")[0]; + String proxyPort = outboundProxy.split(":")[1]; + + properties.setProperty("sipunit.proxy.host", proxyHost); + properties.setProperty("sipunit.proxy.port", proxyPort); + } + + properties.setProperty("gov.nist.javax.sip.THREAD_POOL_SIZE", threadPoolSize == null ? "1" : threadPoolSize); + properties.setProperty("gov.nist.javax.sip.REENTRANT_LISTENER", reentrantListener == null ? "false" : reentrantListener); + + if (additionalProperties != null) { + properties.putAll(additionalProperties); + } + + System.setProperty("org.mobicents.testsuite.testhostaddr", myHost); + + return properties; + } + + // Initialize SipStack for no proxy use + public SipStack initializeSipStack(String myTransport, String myHost, String myPort) throws Exception { + return initializeSipStack(myTransport, myHost, myPort, null, true, null, null, null); + } + + // Initialize SipStack using outbound proxy + public SipStack initializeSipStack(String myPort, String outboundProxy) throws Exception { + return initializeSipStack(null, null, myPort, outboundProxy, true, null, null, null); + } + + // Initialize SipStack using outbound proxy + public SipStack initializeSipStack(String myTransport, String myHost, String myPort, String outboundProxy) throws Exception { + return initializeSipStack(myTransport, myHost, myPort, outboundProxy, true, null, null, null); + } + + public SipStack initializeSipStack(String myTransport, String myHost, String myPort, String outboundProxy, Boolean myAutoDialog, + String threadPoolSize, String reentrantListener, Map additionalProperties) throws Exception { + + /* + * http://code.google.com/p/mobicents/issues/detail?id=3121 + * Reset sipStack when calling initializeSipStack method + */ + tearDown(); + + try { + Properties myProperties = makeProperties(myTransport, myHost, myPort, outboundProxy, myAutoDialog, threadPoolSize, + reentrantListener, additionalProperties); + sipStack = new SipStack(myTransport, Integer.valueOf(myPort), myProperties); + logger.info("SipStack - " + sipStackName + " - created!"); + } catch (Exception ex) { + logger.info("Exception: " + ex.getClass().getName() + ": " + + ex.getMessage()); + throw ex; + } + + initialized = true; + return sipStack; + } + + // Initialize SipStack using provided properties + public SipStack initializeSipStack(String transport, String myPort, Properties myProperties) throws Exception { + + /* + * http://code.google.com/p/mobicents/issues/detail?id=3121 + * Reset sipStack when calling initializeSipStack method + */ + tearDown(); + + try { + sipStack = new SipStack(transport, Integer.valueOf(myPort), myProperties); + logger.info("SipStack - " + sipStackName + " - created!"); + } catch (Exception ex) { + logger.info("Exception: " + ex.getClass().getName() + ": " + + ex.getMessage()); + throw ex; + } + + initialized = true; + return sipStack; + } + + public String getSipStackName() { + return sipStackName; + } + + public void setSipStackName(String sipStackName) { + this.sipStackName = sipStackName; + } + + public void tearDown() { + if (sipStack != null && sipStack.getSipProvider().getListeningPoints().length > 0) { + //SipStack.dispose() will cause previously reserved port to be released + sipStack.dispose(); + sipStack = null; + } + } +} diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdCollectMessageTestLive.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdCollectMessageTestLive.java index dd1a8361e8..10c4a61842 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdCollectMessageTestLive.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdCollectMessageTestLive.java @@ -5,7 +5,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTest.java index 3b5ddab047..8f5e3fded2 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTest.java @@ -45,7 +45,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.spec.WebArchive; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTestEC2.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTestEC2.java index 5e6c5550f4..328b9a65b6 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTestEC2.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/UssdPullTestEC2.java @@ -39,7 +39,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/BlockingExtensionTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/BlockingExtensionTest.java index 41ba3e754f..544cc01d71 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/BlockingExtensionTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/BlockingExtensionTest.java @@ -42,7 +42,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/OutboundBlockingExtensionTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/OutboundBlockingExtensionTest.java index e71321c025..881c3e3f61 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/OutboundBlockingExtensionTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/extensions/OutboundBlockingExtensionTest.java @@ -38,7 +38,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java index 2cdf43281f..408791c203 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/AccountsEndpointTest.java @@ -15,7 +15,7 @@ import org.apache.shiro.crypto.hash.Md5Hash; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/ClientsEndpointTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/ClientsEndpointTest.java index 13f626538f..76e15c0d03 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/ClientsEndpointTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/ClientsEndpointTest.java @@ -16,7 +16,7 @@ import org.apache.http.client.ClientProtocolException; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsTest.java index d44cc9e2eb..ea38bf8837 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsTest.java @@ -23,7 +23,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsWithStatusCallbackTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsWithStatusCallbackTest.java index 385d048c7c..dd91e88c2f 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsWithStatusCallbackTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/CreateCallsWithStatusCallbackTest.java @@ -7,7 +7,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationAnswerDelayTest.java index 6caa3129cd..7f18afba24 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationAnswerDelayTest.java @@ -21,7 +21,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationMuteUnMuteTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationMuteUnMuteTest.java index aca0a824ed..9c6133942d 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationMuteUnMuteTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationMuteUnMuteTest.java @@ -17,7 +17,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationTest.java index 5f8f40ff42..269b15aa5e 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/LiveCallModificationTest.java @@ -22,7 +22,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/OutboudProxyCallsTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/OutboudProxyCallsTest.java index 6be0b6c459..2a316bb33b 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/OutboudProxyCallsTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/OutboudProxyCallsTest.java @@ -9,7 +9,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/UssdPushTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/UssdPushTest.java index 09c6fe7c9c..025000606a 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/UssdPushTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/http/UssdPushTest.java @@ -38,7 +38,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/smpp/SmppTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/smpp/SmppTest.java index 23f882b8c1..b3af741a46 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/smpp/SmppTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/smpp/SmppTest.java @@ -20,7 +20,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsEndpointTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsEndpointTest.java index 673441c6c5..57cb2fb30c 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsEndpointTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsEndpointTest.java @@ -37,7 +37,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsOutTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsOutTest.java index f22ce74034..1a7bb6c3d2 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsOutTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsOutTest.java @@ -35,7 +35,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.spec.WebArchive; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsSessionTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsSessionTest.java index 9a95ba5aa8..e93b839f89 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsSessionTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsSessionTest.java @@ -26,7 +26,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsTest.java index 79e2fdd5c0..828b054df1 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/SmsTest.java @@ -26,7 +26,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/push/SmsPushNotificationServerTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/push/SmsPushNotificationServerTest.java index f9bfbe678c..d6fe3e6db7 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/push/SmsPushNotificationServerTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/sms/push/SmsPushNotificationServerTest.java @@ -46,7 +46,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleAnswerDelayTest.java index fea7d079b2..09e5002a1e 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleAnswerDelayTest.java @@ -50,7 +50,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTest.java index f9a68ae088..952ff079cb 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTest.java @@ -55,7 +55,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTestLive.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTestLive.java index fbd8a0bda5..236b5da8ff 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTestLive.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallLifecycleTestLive.java @@ -7,7 +7,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.test.api.ArquillianResource; import org.junit.After; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexNullSrcOrgTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexNullSrcOrgTest.java index 6ba2e1524d..1b3be053b0 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexNullSrcOrgTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexNullSrcOrgTest.java @@ -26,7 +26,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexSingleTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexSingleTest.java index 6c074b52cf..0a28f97f28 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexSingleTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexSingleTest.java @@ -47,7 +47,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexTest.java index 2a85f38e3b..489c0d66e3 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallRegexTest.java @@ -49,7 +49,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallTest.java index 770b88ee3e..f308f60e6c 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/CallTest.java @@ -30,7 +30,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientMessageTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientMessageTest.java index 8aa5076f9c..c2bbff6024 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientMessageTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientMessageTest.java @@ -34,7 +34,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayRingingErrorTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayRingingErrorTest.java index e3fc17a02c..10f094c0bb 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayRingingErrorTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayRingingErrorTest.java @@ -20,7 +20,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayTest.java index 6fd0c5007a..67761d7811 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialAnswerDelayTest.java @@ -29,7 +29,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialTest.java index 7ba8bda729..6501a80e17 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ClientsDialTest.java @@ -11,7 +11,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionAnswerDelayTest.java index 1c74d0f6a4..fb0ed251ca 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionAnswerDelayTest.java @@ -49,7 +49,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationSBCTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationSBCTest.java index fc1b46a760..6aa86446fd 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationSBCTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationSBCTest.java @@ -33,25 +33,16 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.net.MalformedURLException; import java.net.URL; import java.net.UnknownHostException; import java.text.ParseException; import java.util.Arrays; -import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import java.util.Set; -import java.util.concurrent.ConcurrentLinkedQueue; import javax.sip.Dialog; -import javax.sip.ListeningPoint; -import javax.sip.address.Hop; import javax.sip.address.SipURI; import javax.sip.message.Response; @@ -60,10 +51,6 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mobicents.api.annotations.GetDeployableContainer; -import org.jboss.arquillian.container.mss.extension.ContainerManagerTool; -import org.jboss.arquillian.container.mss.extension.SipStackTool; -import org.jboss.arquillian.container.spi.client.container.DeploymentException; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; @@ -75,37 +62,27 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.FixMethodOrder; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; -import org.mobicents.ext.javax.sip.dns.DNSLookupPerformer; -import org.mobicents.ext.javax.sip.dns.DefaultDNSLookupPerformer; import org.restcomm.connect.commons.Version; +import org.restcomm.connect.commons.annotations.FeatureAltTests; +import org.restcomm.connect.commons.annotations.FeatureExpTests; import org.restcomm.connect.commons.annotations.SequentialClassTests; import org.restcomm.connect.commons.annotations.WithInMinsTests; +import org.restcomm.connect.testsuite.SipStackTool; import org.restcomm.connect.testsuite.http.RestcommCallsTool; import org.restcomm.connect.testsuite.http.RestcommConferenceParticipantsTool; import org.restcomm.connect.testsuite.http.RestcommConferenceTool; import org.restcomm.connect.testsuite.tools.MonitoringServiceTool; -import org.xbill.DNS.DClass; -import org.xbill.DNS.NAPTRRecord; -import org.xbill.DNS.Name; -import org.xbill.DNS.Record; -import org.xbill.DNS.SRVRecord; -import org.xbill.DNS.TextParseException; import com.github.tomakehurst.wiremock.junit.WireMockRule; import com.github.tomakehurst.wiremock.verification.LoggedRequest; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import gov.nist.javax.sip.stack.HopImpl; -import org.restcomm.connect.commons.annotations.FeatureAltTests; -import org.restcomm.connect.commons.annotations.FeatureExpTests; - /** * Test for Dial Action attribute for organization * @@ -133,9 +110,6 @@ public class DialActionOrganizationSBCTest { @ArquillianResource URL deploymentUrl; - @GetDeployableContainer - private ContainerManagerTool containerManager; - @Rule public WireMockRule wireMockRule = new WireMockRule(8090); // No-args constructor defaults to port 8080 @@ -251,116 +225,6 @@ public void before() throws Exception { } - private void mockDNSLookup(String host, String transport) throws TextParseException { - DNSLookupPerformer dnsLookupPerformer = mock(DefaultDNSLookupPerformer.class); - //mocking the DNS Lookups to match our test cases - containerManager.getSipStandardService().getSipApplicationDispatcher().getDNSServerLocator().setDnsLookupPerformer(dnsLookupPerformer); - - Set supportedTransports = new HashSet(); - supportedTransports.add(TRANSPORT.toUpperCase()); - supportedTransports.add(ListeningPoint.TCP.toUpperCase()); - supportedTransports.add(ListeningPoint.TLS.toUpperCase()); - - Queue hops = new ConcurrentLinkedQueue(); - hops = new ConcurrentLinkedQueue(); - //dont use "localhost" or DNS will not work (wouldnt be external) - hops.add(new HopImpl("127.0.0.1", 5080, transport)); - when(dnsLookupPerformer.locateHopsForNonNumericAddressWithPort("localhost", 5080, transport)).thenReturn(hops); - when(dnsLookupPerformer.locateHopsForNonNumericAddressWithPort("localhost", 5082, transport)).thenReturn(null); - when(dnsLookupPerformer.locateHopsForNonNumericAddressWithPort("localhost", 5081, transport)).thenReturn(null); - - List mockedNAPTRRecords = new LinkedList(); - // mocking the name because localhost is not absolute and localhost. cannot be resolved - Name name = mock(Name.class); - when(name.isAbsolute()).thenReturn(true); - when(name.toString()).thenReturn("localhost"); - mockedNAPTRRecords.add(new NAPTRRecord(new Name(host + "."), DClass.IN, 1000, 0, 0, "s", "SIP+D2U", "", new Name("_sip._" + TRANSPORT.toLowerCase() + "." + host + "."))); - when(dnsLookupPerformer.performNAPTRLookup(host, false, supportedTransports)).thenReturn(mockedNAPTRRecords); - List mockedSRVRecords = new LinkedList(); - mockedSRVRecords.add(new SRVRecord(new Name("_sip._" + TRANSPORT.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5080, name)); - mockedSRVRecords.add(new SRVRecord(new Name("_sip._" + TRANSPORT.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 0, 0, 5081, name)); - when(dnsLookupPerformer.performSRVLookup("_sip._" + TRANSPORT.toLowerCase() + "." + host)).thenReturn(mockedSRVRecords); - List mockedSRVTCPRecords = new LinkedList(); - mockedSRVTCPRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5080, name)); - mockedSRVTCPRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 0, 0, 5081, name)); -// mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TLS.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5081, name)); - when(dnsLookupPerformer.performSRVLookup("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host)).thenReturn(mockedSRVTCPRecords); - - List mockedSRVTLSRecords = new LinkedList(); - mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5080, name)); - mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 0, 0, 5081, name)); -// mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TLS.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5081, name)); - when(dnsLookupPerformer.performSRVLookup("_sips._" + ListeningPoint.TLS.toLowerCase() + "." + host)).thenReturn(mockedSRVTLSRecords); - } - - @Ignore - @Test - public void testDialSipNumberSameAndDifferentOrganization() throws ParseException, InterruptedException, DeploymentException, TextParseException{ - stubFor(get(urlPathEqualTo("/1111")) - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withBody(dialSipRcmlOrg2))); - /* - * test case: - * bob@org3 will dial a sip number X@org2 - * X is mapped on an RCML that dials sip like sip:Y@org2.restcomm.com - * - */ - - //Reload Context - //containerManagercontainerManager.reloadContext(); - - mockDNSLookup(HOST_ORG2, TRANSPORT); - - //bob@org3 will dial a sip number X@org3 - SipURI uri = bobSipStackOrg3.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg3.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5092", 3600, 3600)); - Credential c = new Credential("org3.restcomm.com", "bob", clientPassword); - bobPhoneOrg3.addUpdateCredential(c); - - final SipCall bobCallOrg3 = bobPhoneOrg3.createSipCall(); - bobCallOrg3.initiateOutgoingCall(bobContactOrg3, dialRestcommOrg3, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg3); - assertTrue(bobCallOrg3.waitForAuthorisation(3000)); - assertTrue(bobCallOrg3.waitOutgoingCallResponse(5 * 1000)); - int responseBobOrg3 = bobCallOrg3.getLastReceivedResponse().getStatusCode(); - logger.info("responseBobOrg3: "+responseBobOrg3); - assertTrue(responseBobOrg3 == Response.TRYING || responseBobOrg3 == Response.RINGING); - - if (responseBobOrg3 == Response.TRYING) { - assertTrue(bobCallOrg3.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.RINGING, bobCallOrg3.getLastReceivedResponse().getStatusCode()); - } - - assertTrue(bobCallOrg3.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, bobCallOrg3.getLastReceivedResponse().getStatusCode()); - bobCallOrg3.sendInviteOkAck(); - assertTrue(!(bobCallOrg3.getLastReceivedResponse().getStatusCode() >= 400)); - - Thread.sleep(2000); - - int liveCalls = MonitoringServiceTool.getInstance().getStatistics(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - int liveCallsArraySize = MonitoringServiceTool.getInstance().getLiveCallsArraySize(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - logger.info("&&&&& LiveCalls: "+liveCalls); - logger.info("&&&&& LiveCallsArraySize: "+liveCallsArraySize); - assertEquals(2, liveCalls); - assertEquals(2, liveCallsArraySize); - - Thread.sleep(3000); - - bobCallOrg3.disconnect(); - - Thread.sleep(5000); - liveCalls = MonitoringServiceTool.getInstance().getStatistics(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - liveCallsArraySize = MonitoringServiceTool.getInstance().getLiveCallsArraySize(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - logger.info("&&&&& LiveCalls: "+liveCalls); - logger.info("&&&&& LiveCallsArraySize: "+liveCallsArraySize); - assertEquals(0, liveCalls); - assertEquals(0, liveCallsArraySize); - - } - @Test public void testOutboundPstn() throws ParseException, InterruptedException, UnknownHostException, MalformedURLException { diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationTest.java index 00a1e6738e..618a34f5c9 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationTest.java @@ -39,17 +39,10 @@ import java.net.UnknownHostException; import java.text.ParseException; import java.util.Arrays; -import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; -import java.util.Queue; -import java.util.Set; -import java.util.concurrent.ConcurrentLinkedQueue; import javax.sip.Dialog; -import javax.sip.ListeningPoint; -import javax.sip.address.Hop; import javax.sip.address.SipURI; import javax.sip.message.Response; @@ -58,10 +51,6 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mobicents.api.annotations.GetDeployableContainer; -import org.jboss.arquillian.container.mss.extension.ContainerManagerTool; -import org.jboss.arquillian.container.mss.extension.SipStackTool; -import org.jboss.arquillian.container.spi.client.container.DeploymentException; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; @@ -72,39 +61,26 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; +import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; +import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; -import org.mobicents.ext.javax.sip.dns.DNSLookupPerformer; -import org.mobicents.ext.javax.sip.dns.DefaultDNSLookupPerformer; +import org.junit.runners.MethodSorters; import org.restcomm.connect.commons.Version; +import org.restcomm.connect.commons.annotations.SequentialClassTests; +import org.restcomm.connect.commons.annotations.WithInMinsTests; +import org.restcomm.connect.testsuite.SipStackTool; import org.restcomm.connect.testsuite.http.RestcommCallsTool; import org.restcomm.connect.testsuite.http.RestcommConferenceParticipantsTool; import org.restcomm.connect.testsuite.http.RestcommConferenceTool; import org.restcomm.connect.testsuite.tools.MonitoringServiceTool; -import org.xbill.DNS.DClass; -import org.xbill.DNS.NAPTRRecord; -import org.xbill.DNS.Name; -import org.xbill.DNS.Record; -import org.xbill.DNS.SRVRecord; -import org.xbill.DNS.TextParseException; import com.github.tomakehurst.wiremock.junit.WireMockRule; import com.github.tomakehurst.wiremock.verification.LoggedRequest; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import gov.nist.javax.sip.stack.HopImpl; -import org.junit.experimental.categories.Category; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import org.restcomm.connect.commons.annotations.SequentialClassTests; -import org.restcomm.connect.commons.annotations.WithInMinsTests; - /** * Test for Dial Action attribute for organization * @@ -132,9 +108,6 @@ public class DialActionOrganizationTest { @ArquillianResource URL deploymentUrl; - @GetDeployableContainer - private ContainerManagerTool containerManager; - @Rule public WireMockRule wireMockRule = new WireMockRule(8090); // No-args constructor defaults to port 8080 @@ -250,116 +223,6 @@ public void before() throws Exception { } - private void mockDNSLookup(String host, String transport) throws TextParseException { - DNSLookupPerformer dnsLookupPerformer = mock(DefaultDNSLookupPerformer.class); - //mocking the DNS Lookups to match our test cases - containerManager.getSipStandardService().getSipApplicationDispatcher().getDNSServerLocator().setDnsLookupPerformer(dnsLookupPerformer); - - Set supportedTransports = new HashSet(); - supportedTransports.add(TRANSPORT.toUpperCase()); - supportedTransports.add(ListeningPoint.TCP.toUpperCase()); - supportedTransports.add(ListeningPoint.TLS.toUpperCase()); - - Queue hops = new ConcurrentLinkedQueue(); - hops = new ConcurrentLinkedQueue(); - //dont use "localhost" or DNS will not work (wouldnt be external) - hops.add(new HopImpl("127.0.0.1", 5080, transport)); - when(dnsLookupPerformer.locateHopsForNonNumericAddressWithPort("localhost", 5080, transport)).thenReturn(hops); - when(dnsLookupPerformer.locateHopsForNonNumericAddressWithPort("localhost", 5082, transport)).thenReturn(null); - when(dnsLookupPerformer.locateHopsForNonNumericAddressWithPort("localhost", 5081, transport)).thenReturn(null); - - List mockedNAPTRRecords = new LinkedList(); - // mocking the name because localhost is not absolute and localhost. cannot be resolved - Name name = mock(Name.class); - when(name.isAbsolute()).thenReturn(true); - when(name.toString()).thenReturn("localhost"); - mockedNAPTRRecords.add(new NAPTRRecord(new Name(host + "."), DClass.IN, 1000, 0, 0, "s", "SIP+D2U", "", new Name("_sip._" + TRANSPORT.toLowerCase() + "." + host + "."))); - when(dnsLookupPerformer.performNAPTRLookup(host, false, supportedTransports)).thenReturn(mockedNAPTRRecords); - List mockedSRVRecords = new LinkedList(); - mockedSRVRecords.add(new SRVRecord(new Name("_sip._" + TRANSPORT.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5080, name)); - mockedSRVRecords.add(new SRVRecord(new Name("_sip._" + TRANSPORT.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 0, 0, 5081, name)); - when(dnsLookupPerformer.performSRVLookup("_sip._" + TRANSPORT.toLowerCase() + "." + host)).thenReturn(mockedSRVRecords); - List mockedSRVTCPRecords = new LinkedList(); - mockedSRVTCPRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5080, name)); - mockedSRVTCPRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 0, 0, 5081, name)); -// mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TLS.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5081, name)); - when(dnsLookupPerformer.performSRVLookup("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host)).thenReturn(mockedSRVTCPRecords); - - List mockedSRVTLSRecords = new LinkedList(); - mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5080, name)); - mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TCP.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 0, 0, 5081, name)); -// mockedSRVTLSRecords.add(new SRVRecord(new Name("_sips._" + ListeningPoint.TLS.toLowerCase() + "." + host + "."), DClass.IN, 1000L, 1, 0, 5081, name)); - when(dnsLookupPerformer.performSRVLookup("_sips._" + ListeningPoint.TLS.toLowerCase() + "." + host)).thenReturn(mockedSRVTLSRecords); - } - - @Ignore - @Test - public void testDialSipNumberSameAndDifferentOrganization() throws ParseException, InterruptedException, DeploymentException, TextParseException{ - stubFor(get(urlPathEqualTo("/1111")) - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withBody(dialSipRcmlOrg2))); - /* - * test case: - * bob@org3 will dial a sip number X@org2 - * X is mapped on an RCML that dials sip like sip:Y@org2.restcomm.com - * - */ - - //Reload Context - //containerManagercontainerManager.reloadContext(); - - mockDNSLookup(HOST_ORG2, TRANSPORT); - - //bob@org3 will dial a sip number X@org3 - SipURI uri = bobSipStackOrg3.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg3.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5092", 3600, 3600)); - Credential c = new Credential("org3.restcomm.com", "bob", clientPassword); - bobPhoneOrg3.addUpdateCredential(c); - - final SipCall bobCallOrg3 = bobPhoneOrg3.createSipCall(); - bobCallOrg3.initiateOutgoingCall(bobContactOrg3, dialRestcommOrg3, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg3); - assertTrue(bobCallOrg3.waitForAuthorisation(3000)); - assertTrue(bobCallOrg3.waitOutgoingCallResponse(5 * 1000)); - int responseBobOrg3 = bobCallOrg3.getLastReceivedResponse().getStatusCode(); - logger.info("responseBobOrg3: "+responseBobOrg3); - assertTrue(responseBobOrg3 == Response.TRYING || responseBobOrg3 == Response.RINGING); - - if (responseBobOrg3 == Response.TRYING) { - assertTrue(bobCallOrg3.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.RINGING, bobCallOrg3.getLastReceivedResponse().getStatusCode()); - } - - assertTrue(bobCallOrg3.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, bobCallOrg3.getLastReceivedResponse().getStatusCode()); - bobCallOrg3.sendInviteOkAck(); - assertTrue(!(bobCallOrg3.getLastReceivedResponse().getStatusCode() >= 400)); - - Thread.sleep(2000); - - int liveCalls = MonitoringServiceTool.getInstance().getStatistics(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - int liveCallsArraySize = MonitoringServiceTool.getInstance().getLiveCallsArraySize(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - logger.info("&&&&& LiveCalls: "+liveCalls); - logger.info("&&&&& LiveCallsArraySize: "+liveCallsArraySize); - assertEquals(2, liveCalls); - assertEquals(2, liveCallsArraySize); - - Thread.sleep(3000); - - bobCallOrg3.disconnect(); - - Thread.sleep(5000); - liveCalls = MonitoringServiceTool.getInstance().getStatistics(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - liveCallsArraySize = MonitoringServiceTool.getInstance().getLiveCallsArraySize(deploymentUrl.toString(), superAdminAccountSid, adminAuthToken); - logger.info("&&&&& LiveCalls: "+liveCalls); - logger.info("&&&&& LiveCallsArraySize: "+liveCallsArraySize); - assertEquals(0, liveCalls); - assertEquals(0, liveCallsArraySize); - - } - @Test public void testOutboundPstn() throws ParseException, InterruptedException, UnknownHostException, MalformedURLException { diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionTest.java index 71f28b960b..eefbaf584e 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionTest.java @@ -49,7 +49,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceConnectionFailureTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceConnectionFailureTest.java index 1ef5a0ac7c..3ac0c78d70 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceConnectionFailureTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceConnectionFailureTest.java @@ -17,7 +17,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTerminationTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTerminationTest.java index 8586799f33..4d46056891 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTerminationTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTerminationTest.java @@ -18,7 +18,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTest.java index a392853b0b..bad425b7cf 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialConferenceTest.java @@ -18,7 +18,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayCancelTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayCancelTest.java index 22345435bd..7891e6e5c9 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayCancelTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayCancelTest.java @@ -17,7 +17,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayTest.java index 3b10d81b2e..2ecaac65df 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkAnswerDelayTest.java @@ -8,7 +8,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkPlayDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkPlayDelayTest.java index 48cd0dd56a..fd4e72eb2d 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkPlayDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkPlayDelayTest.java @@ -9,10 +9,10 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.verification.LoggedRequest; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; +import static org.cafesip.sipunit.SipAssert.assertLastOperationSuccess; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.net.MalformedURLException; import java.net.URL; import java.text.ParseException; @@ -21,45 +21,40 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.logging.Level; + import javax.sip.address.SipURI; import javax.sip.message.Response; + import org.apache.log4j.Logger; -import static org.cafesip.sipunit.SipAssert.assertLastOperationSuccess; import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.After; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.BeforeClass; import org.junit.FixMethodOrder; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import org.restcomm.connect.commons.annotations.FeatureAltTests; -import org.restcomm.connect.commons.annotations.FeatureExpTests; import org.restcomm.connect.commons.annotations.SequentialClassTests; -import org.restcomm.connect.commons.annotations.UnstableTests; import org.restcomm.connect.testsuite.NetworkPortAssigner; +import org.restcomm.connect.testsuite.SipStackTool; import org.restcomm.connect.testsuite.WebArchiveUtil; import org.restcomm.connect.testsuite.http.RestcommCallsTool; import org.restcomm.connect.testsuite.tools.MonitoringServiceTool; +import com.github.tomakehurst.wiremock.junit.WireMockRule; +import com.github.tomakehurst.wiremock.verification.LoggedRequest; +import com.google.gson.JsonObject; + /** * Tests for the Dial Forking timeout, this test class is being tested with 2 seconds audio file, that can make RC in * PLAYING state for 2 seconds. diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkTest.java index a8a9ffc268..5a04bfa66f 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkTest.java @@ -32,7 +32,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialPureSipNumbersFromPstnTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialPureSipNumbersFromPstnTest.java index 2d443eee44..bd1db26243 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialPureSipNumbersFromPstnTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialPureSipNumbersFromPstnTest.java @@ -22,7 +22,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingAnswerDelayTest.java index 1e4eafe9d9..ce56fb1990 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingAnswerDelayTest.java @@ -6,7 +6,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadAnswerDelayTest.java index 6c57ae207c..8cfd720f67 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadAnswerDelayTest.java @@ -7,7 +7,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadNoneSecurityTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadNoneSecurityTest.java index fcbe87a416..20c976e80a 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadNoneSecurityTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadNoneSecurityTest.java @@ -27,7 +27,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadSecureTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadSecureTest.java index 3b89fea573..c1c92872cc 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadSecureTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingS3UploadSecureTest.java @@ -9,7 +9,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingTest.java index cca1f57ffb..0b6b0c55eb 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialRecordingTest.java @@ -15,7 +15,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialStatusCallbackTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialStatusCallbackTest.java index 85a129f8a5..74801c83d4 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialStatusCallbackTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialStatusCallbackTest.java @@ -52,7 +52,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialTest.java index 930bee0b2e..d19718de99 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialTest.java @@ -38,7 +38,7 @@ import org.cafesip.sipunit.SipResponse; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayCancelTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayCancelTest.java index d5f75b2417..4584e6b4d2 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayCancelTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayCancelTest.java @@ -37,7 +37,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; @@ -48,21 +48,22 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; +import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; +import org.junit.runners.MethodSorters; import org.restcomm.connect.commons.Version; +import org.restcomm.connect.commons.annotations.FeatureAltTests; +import org.restcomm.connect.commons.annotations.SequentialClassTests; +import org.restcomm.connect.commons.annotations.UnstableTests; +import org.restcomm.connect.testsuite.SipStackTool; import org.restcomm.connect.testsuite.http.RestcommCallsTool; import org.restcomm.connect.testsuite.telephony.security.DigestServerAuthenticationMethod; import com.github.tomakehurst.wiremock.junit.WireMockRule; import com.google.gson.JsonObject; -import org.junit.experimental.categories.Category; -import org.restcomm.connect.commons.annotations.FeatureAltTests; -import org.restcomm.connect.commons.annotations.SequentialClassTests; -import org.restcomm.connect.commons.annotations.UnstableTests; /** * Test for clients with or without VoiceURL (Bitbucket issue 115). Clients without VoiceURL can dial anything. diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayTest.java index e71d58fc42..3696364a0a 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialAnswerDelayTest.java @@ -10,6 +10,7 @@ import java.sql.SQLException; import java.text.ParseException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,7 +41,6 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; @@ -49,12 +49,19 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; +import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; +import org.junit.runners.MethodSorters; import org.restcomm.connect.commons.Version; +import org.restcomm.connect.commons.annotations.FeatureAltTests; +import org.restcomm.connect.commons.annotations.ParallelClassTests; +import org.restcomm.connect.commons.annotations.UnstableTests; +import org.restcomm.connect.testsuite.NetworkPortAssigner; +import org.restcomm.connect.testsuite.SipStackTool; +import org.restcomm.connect.testsuite.WebArchiveUtil; import org.restcomm.connect.testsuite.http.RestcommCallsTool; import org.restcomm.connect.testsuite.telephony.security.DigestServerAuthenticationMethod; import org.restcomm.connect.testsuite.tools.MonitoringServiceTool; @@ -67,6 +74,7 @@ import org.restcomm.connect.commons.annotations.ParallelClassTests; import org.restcomm.connect.testsuite.NetworkPortAssigner; import org.restcomm.connect.commons.annotations.UnstableTests; +import org.restcomm.connect.testsuite.SipStackTool; import org.restcomm.connect.testsuite.WebArchiveUtil; /** diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialTest.java index ccf7be54ec..e4d0712692 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ImsClientsDialTest.java @@ -1,7 +1,45 @@ package org.restcomm.connect.testsuite.telephony; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.google.gson.JsonObject; +import static org.cafesip.sipunit.SipAssert.assertLastOperationSuccess; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.net.URL; +import java.sql.SQLException; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import javax.sip.Dialog; +import javax.sip.InvalidArgumentException; +import javax.sip.RequestEvent; +import javax.sip.SipException; +import javax.sip.address.Address; +import javax.sip.address.SipURI; +import javax.sip.address.URI; +import javax.sip.header.CSeqHeader; +import javax.sip.header.CallIdHeader; +import javax.sip.header.ContactHeader; +import javax.sip.header.FromHeader; +import javax.sip.header.Header; +import javax.sip.header.MaxForwardsHeader; +import javax.sip.header.ProxyAuthenticateHeader; +import javax.sip.header.RouteHeader; +import javax.sip.header.ToHeader; +import javax.sip.header.UserAgentHeader; +import javax.sip.header.ViaHeader; +import javax.sip.header.WWWAuthenticateHeader; +import javax.sip.message.Request; +import javax.sip.message.Response; + import org.apache.log4j.Logger; import org.cafesip.sipunit.Credential; import org.cafesip.sipunit.SipCall; @@ -9,7 +47,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; @@ -18,60 +56,25 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; +import org.junit.runners.MethodSorters; import org.restcomm.connect.commons.Version; import org.restcomm.connect.commons.annotations.FeatureAltTests; import org.restcomm.connect.commons.annotations.ParallelClassTests; import org.restcomm.connect.commons.annotations.UnstableTests; import org.restcomm.connect.testsuite.NetworkPortAssigner; +import org.restcomm.connect.testsuite.SipStackTool; import org.restcomm.connect.testsuite.WebArchiveUtil; import org.restcomm.connect.testsuite.http.RestcommCallsTool; import org.restcomm.connect.testsuite.telephony.security.DigestServerAuthenticationMethod; import org.restcomm.connect.testsuite.tools.MonitoringServiceTool; -import javax.sip.Dialog; -import javax.sip.InvalidArgumentException; -import javax.sip.RequestEvent; -import javax.sip.SipException; -import javax.sip.address.Address; -import javax.sip.address.SipURI; -import javax.sip.address.URI; -import javax.sip.header.CSeqHeader; -import javax.sip.header.CallIdHeader; -import javax.sip.header.ContactHeader; -import javax.sip.header.FromHeader; -import javax.sip.header.Header; -import javax.sip.header.MaxForwardsHeader; -import javax.sip.header.ProxyAuthenticateHeader; -import javax.sip.header.RouteHeader; -import javax.sip.header.ToHeader; -import javax.sip.header.UserAgentHeader; -import javax.sip.header.ViaHeader; -import javax.sip.header.WWWAuthenticateHeader; -import javax.sip.message.Request; -import javax.sip.message.Response; -import java.net.URL; -import java.sql.SQLException; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import static org.cafesip.sipunit.SipAssert.assertLastOperationSuccess; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import com.github.tomakehurst.wiremock.junit.WireMockRule; +import com.google.gson.JsonObject; /** * Test for clients with or without VoiceURL (Bitbucket issue 115). Clients without VoiceURL can dial anything. diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/NoAuthRegisterClientTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/NoAuthRegisterClientTest.java index 37775fef83..6fa9bb953c 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/NoAuthRegisterClientTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/NoAuthRegisterClientTest.java @@ -35,7 +35,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/PlayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/PlayTest.java index e1a9442974..9866665d29 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/PlayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/PlayTest.java @@ -30,7 +30,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ReferTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ReferTest.java index 1b4855040b..808238e591 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ReferTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ReferTest.java @@ -29,7 +29,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RegisterClientTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RegisterClientTest.java index 3f4febb248..c73ce89814 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RegisterClientTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RegisterClientTest.java @@ -38,7 +38,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyAnswerDelayTest.java index 016bae6456..326f01b335 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyAnswerDelayTest.java @@ -5,7 +5,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyTest.java index 9f9f534cb3..64d42d7ebf 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/RestcommActingAsProxyTest.java @@ -5,7 +5,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingAnswerDelayTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingAnswerDelayTest.java index 3e027ec766..510183e0eb 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingAnswerDelayTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingAnswerDelayTest.java @@ -6,7 +6,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingTest.java index 573af67be6..3103869e07 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/SequentialDialingTest.java @@ -7,7 +7,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOne.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOne.java index ac9da3d859..d2c06411b3 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOne.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOne.java @@ -9,7 +9,7 @@ import org.cafesip.sipunit.SipResponse; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOneAnswerDelay.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOneAnswerDelay.java index 9a8ddae0f7..8df1d3b06e 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOneAnswerDelay.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartOneAnswerDelay.java @@ -7,7 +7,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThree.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThree.java index 03fab6e887..ec371c4d7c 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThree.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThree.java @@ -6,7 +6,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThreeAnswerDelay.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThreeAnswerDelay.java index c4790e8d0f..5299e54eff 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThreeAnswerDelay.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartThreeAnswerDelay.java @@ -6,7 +6,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwo.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwo.java index 034a877d79..2c0fc62690 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwo.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwo.java @@ -11,7 +11,7 @@ import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwoAnswerDelay.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwoAnswerDelay.java index f282b218e0..bc9a3a2587 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwoAnswerDelay.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestDialVerbPartTwoAnswerDelay.java @@ -9,7 +9,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestGatherVerb.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestGatherVerb.java index 665ce2c51a..b6cb455b5b 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestGatherVerb.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestGatherVerb.java @@ -8,7 +8,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; import org.cafesip.sipunit.SipTransaction; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMgcpOperations.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMgcpOperations.java index 49d70daa73..45cb983690 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMgcpOperations.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMgcpOperations.java @@ -7,7 +7,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMultipartContent.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMultipartContent.java index 972f9263db..1beb5151b4 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMultipartContent.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/TestMultipartContent.java @@ -33,7 +33,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/proxy/ProxyManagerTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/proxy/ProxyManagerTest.java index 194f84493d..a72ccfd13b 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/proxy/ProxyManagerTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/proxy/ProxyManagerTest.java @@ -14,7 +14,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/push/CallPushNotificationServerTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/push/CallPushNotificationServerTest.java index 57450ee022..bf63046dcc 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/push/CallPushNotificationServerTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/push/CallPushNotificationServerTest.java @@ -27,7 +27,7 @@ import org.cafesip.sipunit.SipCall; import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerTest.java index 7442ae046b..a7728232c8 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerTest.java @@ -23,7 +23,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerWithSBCTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerWithSBCTest.java index 7e55f379b0..5590d00846 100644 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerWithSBCTest.java +++ b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/ua/UserAgentManagerWithSBCTest.java @@ -38,7 +38,7 @@ import org.cafesip.sipunit.SipPhone; import org.cafesip.sipunit.SipRequest; import org.cafesip.sipunit.SipStack; -import org.jboss.arquillian.container.mss.extension.SipStackTool; +import org.restcomm.connect.testsuite.SipStackTool; import org.jboss.arquillian.container.test.api.Deployer; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; diff --git a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml index f05b229236..0a3dc810cd 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -1,28 +1,28 @@ + xmlns="http://jboss.org/schema/arquillian" + xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> + + + target/deployments + + + + false + true + standalone-sip.xml + + + + + + localhost + 9990 + true + standalone-sip.xml + -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y -Dorg.jboss.server.bootstrap.maxThreads=1 + + + - - - target/mss-tomcat-embedded-7 - work - 8080 - true - :5080,:5080/TCP - 127.0.0.1 - org.mobicents.servlet.sip.router.DefaultApplicationRouterProvider - - - - - target/${arquillian_sip_port}-mss-tomcat-embedded-7 - work - ${arquillian_http_port} - true - :${arquillian_sip_port},:${arquillian_sip_port}/TCP - 127.0.0.1 - org.mobicents.servlet.sip.router.DefaultApplicationRouterProvider - - diff --git a/restcomm/restcomm.testsuite/src/test/resources/mobicents-dar.properties b/restcomm/restcomm.testsuite/src/test/resources/mobicents-dar.properties new file mode 100644 index 0000000000..4027360c94 --- /dev/null +++ b/restcomm/restcomm.testsuite/src/test/resources/mobicents-dar.properties @@ -0,0 +1,2 @@ +#Application Router Configuration +ALL=("RestComm","DAR\:From","ORIGINATING","","NO_ROUTE","0") diff --git a/restcomm/restcomm.tts.acapela/pom.xml b/restcomm/restcomm.tts.acapela/pom.xml index 9af8212c89..60210cdeb8 100644 --- a/restcomm/restcomm.tts.acapela/pom.xml +++ b/restcomm/restcomm.tts.acapela/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.acapela diff --git a/restcomm/restcomm.tts.api/pom.xml b/restcomm/restcomm.tts.api/pom.xml index db05a3e94e..f4e80d3e92 100644 --- a/restcomm/restcomm.tts.api/pom.xml +++ b/restcomm/restcomm.tts.api/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.api diff --git a/restcomm/restcomm.tts.att/pom.xml b/restcomm/restcomm.tts.att/pom.xml index 9cd62ab5b6..20181a4640 100644 --- a/restcomm/restcomm.tts.att/pom.xml +++ b/restcomm/restcomm.tts.att/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.att diff --git a/restcomm/restcomm.tts.awspolly/pom.xml b/restcomm/restcomm.tts.awspolly/pom.xml index 3389cf5f6d..d17d107c17 100644 --- a/restcomm/restcomm.tts.awspolly/pom.xml +++ b/restcomm/restcomm.tts.awspolly/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.awspolly restcomm-connect.tts.awspolly @@ -34,4 +34,4 @@ ${aws.sdk.version} - \ No newline at end of file + diff --git a/restcomm/restcomm.tts.voicerss/pom.xml b/restcomm/restcomm.tts.voicerss/pom.xml index 43db716b47..b4d906bff8 100644 --- a/restcomm/restcomm.tts.voicerss/pom.xml +++ b/restcomm/restcomm.tts.voicerss/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.voicerss diff --git a/restcomm/restcomm.ui/pom.xml b/restcomm/restcomm.ui/pom.xml index 1d3291a2de..01d6d6f16d 100644 --- a/restcomm/restcomm.ui/pom.xml +++ b/restcomm/restcomm.ui/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm diff --git a/restcomm/restcomm.ussd/pom.xml b/restcomm/restcomm.ussd/pom.xml index f0d242be77..57d77abc08 100644 --- a/restcomm/restcomm.ussd/pom.xml +++ b/restcomm/restcomm.ussd/pom.xml @@ -6,7 +6,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.ussd @@ -99,7 +99,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided