From acd39e8122f8e29c735823cecb7ee5a5bceb09ff Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Wed, 7 Mar 2018 09:00:39 -0500 Subject: [PATCH 01/44] using assembly to build binary --- pom.xml | 12 +++ release/pom.xml | 107 +++++++++++++++++++ release/src/main/resources/common.xml | 120 ++++++++++++++++++++++ release/src/main/resources/descriptor.xml | 31 ++++++ 4 files changed, 270 insertions(+) create mode 100644 pom.xml create mode 100644 release/pom.xml create mode 100644 release/src/main/resources/common.xml create mode 100644 release/src/main/resources/descriptor.xml diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000..ab6ee74f5b --- /dev/null +++ b/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + org.restcomm + restcomm-connect-root + 8.3.0-SNAPSHOT + pom + + restcomm + release + + diff --git a/release/pom.xml b/release/pom.xml new file mode 100644 index 0000000000..7d4dfbba6a --- /dev/null +++ b/release/pom.xml @@ -0,0 +1,107 @@ + + + 4.0.0 + org.restcomm + restcomm-connect-release + 8.3.0-SNAPSHOT + pom + + UTF-8 + 3.2.0-89 + + + + org.restcomm + restcomm-connect-rvd + [1.2,1.2.999) + war + + + org.mobicents.webrtc + webrtc-ui + [1.1,1.1.999) + war + + + org.mobicents.servlet.sip + sip-servlets-wildfly-10 + ${sipservletapi.version} + assembly + zip + + + org.mobicents.media + media-server-standalone + 6.0.23 + assembly + zip + + + + + + 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 + 6.0.23 + 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/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 + + + + + + From 6852f4b1c288f8fba9e99cc105376847ec6496db Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 06:38:04 -0500 Subject: [PATCH 02/44] wildfly10 assembly --- release/restcomm-assembly-wildfly10/pom.xml | 100 ++++++++++++++++++ .../dars/mobicents-dar.properties | 2 + .../configuration/mss-sip-stack.properties | 41 +++++++ .../deployments/olympus.war.dodeploy | 1 + .../restcomm-management.war.dodeploy | 1 + .../deployments/restcomm-rvd.war.dodeploy | 1 + .../deployments/restcomm.war.dodeploy | 1 + .../src/main/resources/descriptor.xml | 78 ++++++++++++++ 8 files changed, 225 insertions(+) create mode 100644 release/restcomm-assembly-wildfly10/pom.xml create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml new file mode 100644 index 0000000000..983371c292 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + org.restcomm + assembly-parent + 8.3.0-SNAPSHOT + + org.restcomm + assembly-wildfly10 + pom + + UTF-8 + 3.2.0-89 + + + + org.restcomm + restcomm-connect-rvd + war + + + org.restcomm + restcomm-connect.application + 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 + 6.0.23 + 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-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..d677a45474 --- /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 MAJOR_VERSION_NUMBER.BUILD_NUMBER +org.mobicents.servlet.sip.SERVER_HEADER=Restcomm MAJOR_VERSION_NUMBER.BUILD_NUMBER +#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/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml new file mode 100644 index 0000000000..c62fa43cb0 --- /dev/null +++ b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml @@ -0,0 +1,78 @@ + + assembly + + zip + + ${project.build.finalName} + + + ${project.build.directory}/dependency/restcomm-sip-servlets-${sipservletapi.version}-wildfly-10.0.0.Final + / + + + + ${project.build.directory}/dependency/restcomm-media-server + /mediaserver + + **/*.sh + + + + ${project.build.directory}/dependency/restcomm-media-server + /mediaserver + + **/*.sh + + + 555 + + + ${project.basedir}/src/main/resources/assembly-resources + / + + **/*.sh + + + 555 + + + + + /standalone/deployments + false + restcomm-rvd.war + + org.restcomm:restcomm-connect-rvd + + + + /standalone/deployments + false + olympus.war + + org.mobicents.webrtc:webrtc-ui + + + + + /standalone/deployments + true + restcomm.war + + org.restcomm:restcomm-connect.application + + + + /standalone/deployments/restcomm.war + true + + + org.restcomm:restcomm-connect.configuration + + + + + + From cc4b9fe019b956998ccfd668eefa35da2a1a1ecb Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 06:38:12 -0500 Subject: [PATCH 03/44] assembly parent --- release/pom.xml | 151 +++++++++++++++++------------------------------- 1 file changed, 54 insertions(+), 97 deletions(-) diff --git a/release/pom.xml b/release/pom.xml index 7d4dfbba6a..ab6871a990 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -1,107 +1,64 @@ 4.0.0 + + org.restcomm + restcomm-connect-root + 8.3.0-SNAPSHOT + org.restcomm - restcomm-connect-release - 8.3.0-SNAPSHOT + assembly-parent pom UTF-8 3.2.0-89 - - - org.restcomm - restcomm-connect-rvd - [1.2,1.2.999) - war - - - org.mobicents.webrtc - webrtc-ui - [1.1,1.1.999) - war - - - org.mobicents.servlet.sip - sip-servlets-wildfly-10 - ${sipservletapi.version} - assembly - zip - - - org.mobicents.media - media-server-standalone - 6.0.23 - assembly - zip - - - - - - 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 - 6.0.23 - 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 - - - - - - + + + + org.restcomm + restcomm-connect-rvd + [1.2,1.2.999) + war + + + org.mobicents.webrtc + webrtc-ui + [1.1,1.1.999) + war + + + org.mobicents.servlet.sip + sip-servlets-wildfly-10 + ${sipservletapi.version} + zip + assembly + + + org.mobicents.media + media-server-standalone + 6.0.23 + zip + assembly + + + org.restcomm + restcomm-connect.application + ${project.version} + war + + + org.restcomm + restcomm-connect.configuration + ${project.version} + + + + + + restcomm-assembly-wildfly10 + From 5f2e1e2d0cf42ccb4832647e8ef5bb2b65653e2c Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 06:39:45 -0500 Subject: [PATCH 04/44] added scm and common properties --- pom.xml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pom.xml b/pom.xml index ab6ee74f5b..76a1093c23 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,10 @@ + + org.restcomm + restcomm-parent + 4.0.1 + 4.0.0 org.restcomm restcomm-connect-root @@ -9,4 +14,29 @@ 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 + From f3a722cf5751acd29ecbdf8311bd81ce846ecc26 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 16:36:35 -0500 Subject: [PATCH 05/44] refactoring pom files --- pom.xml | 70 ++++++++++++++++++++- release/pom.xml | 18 +++--- release/restcomm-assembly-wildfly10/pom.xml | 17 +++-- 3 files changed, 86 insertions(+), 19 deletions(-) diff --git a/pom.xml b/pom.xml index 76a1093c23..6a4d84908d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.1 4.0.0 - org.restcomm + org.restcomm.connect restcomm-connect-root 8.3.0-SNAPSHOT pom @@ -38,5 +38,71 @@ 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 + + + + + + + + + + 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 index ab6871a990..dac7eda750 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -2,17 +2,12 @@ 4.0.0 - org.restcomm + org.restcomm.connect restcomm-connect-root 8.3.0-SNAPSHOT - - org.restcomm + assembly-parent pom - - UTF-8 - 3.2.0-89 - @@ -37,7 +32,7 @@ org.mobicents.media media-server-standalone - 6.0.23 + ${mobicents.mgcp.impl.version} zip assembly @@ -49,9 +44,10 @@ org.restcomm - restcomm-connect.configuration - ${project.version} - + restcomm-connect-management + ${project.version} + war + diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml index 983371c292..aa239794b2 100644 --- a/release/restcomm-assembly-wildfly10/pom.xml +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -2,11 +2,10 @@ 4.0.0 - org.restcomm + org.restcomm.connect assembly-parent 8.3.0-SNAPSHOT - org.restcomm assembly-wildfly10 pom @@ -23,7 +22,15 @@ org.restcomm restcomm-connect.application war - + + + + org.restcomm + restcomm-connect-management + war + + + org.mobicents.webrtc webrtc-ui @@ -48,7 +55,6 @@ org.mobicents.servlet.sip sip-servlets-wildfly-10 - ${sipservletapi.version} zip assembly @@ -66,7 +72,6 @@ org.mobicents.media media-server-standalone - 6.0.23 zip assembly @@ -83,7 +88,7 @@ src/main/resources/descriptor.xml - Restcomm-JBoss-AS7-${project.version} + Restcomm-JBoss-Wildfly10-${project.version} false From ec3fcdf61a8b613e3276ca7a15c75bee8de16c4f Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 16:36:52 -0500 Subject: [PATCH 06/44] adapted to latest root --- restcomm/pom.xml | 89 +++++++----------------------------------------- 1 file changed, 12 insertions(+), 77 deletions(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 349af0843c..3cb53de9c7 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -2,15 +2,13 @@ 4.0.0 - - org.restcomm - restcomm-parent - 4.0.1 - + + org.restcomm.connect + restcomm-connect-root + 8.3.0-SNAPSHOT + - org.restcomm restcomm-connect - 8.3.0-SNAPSHOT pom RestComm-Connect A unified communications platform for web developers. @@ -140,8 +138,7 @@ Therefore we set this empty property here--> - - + restcomm.application restcomm.commons restcomm.dao @@ -165,7 +162,6 @@ restcomm.telephony restcomm.tts.api restcomm.tts.voicerss - restcomm.testsuite restcomm.ui restcomm.tts.att restcomm.ussd @@ -792,6 +788,12 @@ restcomm.docs + + testsuite + + restcomm.testsuite + + set-git-hash @@ -877,71 +879,4 @@ - - - - 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 - - - - - - - - - - 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 - - - - From 58dbfa4f8641f1c8849a179824916af4ae3872cc Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 16:37:13 -0500 Subject: [PATCH 07/44] all elements in place, testing missing --- .../src/main/resources/descriptor.xml | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml index c62fa43cb0..b714b119ab 100644 --- a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml +++ b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml @@ -5,17 +5,24 @@ zip - ${project.build.finalName} + 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 + ${project.build.directory}/dependency/restcomm-media-server /mediaserver + **/*.sh @@ -23,19 +30,16 @@ ${project.build.directory}/dependency/restcomm-media-server /mediaserver + **/*.sh 555 + ${project.basedir}/src/main/resources/assembly-resources / - - **/*.sh - - - 555 @@ -57,21 +61,20 @@ - /standalone/deployments + /standalone/deployments/restcomm.war true - restcomm.war org.restcomm:restcomm-connect.application - + - /standalone/deployments/restcomm.war - true - + false + /standalone/deployments + restcomm-management.war - org.restcomm:restcomm-connect.configuration + org.restcomm:restcomm-connect-management - + From ecccc12362d2989dc602e503fe9470dc2c5855b6 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 19:13:15 -0500 Subject: [PATCH 08/44] changed file mode to be exec:wq --- .../bin/restcomm/autoconfigure.sh | 35 +++ .../bin/restcomm/collect_jmap.sh | 96 ++++++++ .../bin/restcomm/gsed_macos.sh | 6 + .../assembly-resources/bin/restcomm/jvmtop.sh | 24 ++ .../bin/restcomm/logs_collect.sh | 206 ++++++++++++++++++ .../bin/restcomm/restart-restcomm.sh | 83 +++++++ .../bin/restcomm/set-log-level.sh | 114 ++++++++++ .../bin/restcomm/start-mediaserver.sh | 19 ++ .../bin/restcomm/start-restcomm.sh | 165 ++++++++++++++ .../bin/restcomm/stop-mediaserver.sh | 11 + .../bin/restcomm/stop-restcomm.sh | 26 +++ .../bin/restcomm/verify-dependencies.sh | 56 +++++ 12 files changed, 841 insertions(+) create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh 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/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/verify-dependencies.sh b/release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh new file mode 100755 index 0000000000..dbf06b3195 --- /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 "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 From 98febeab64d9f0e93743d38e0f05f5de9ef41032 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 19:14:04 -0500 Subject: [PATCH 09/44] media scripts are already exec --- .../src/main/resources/descriptor.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml index b714b119ab..9441f9295d 100644 --- a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml +++ b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml @@ -21,21 +21,7 @@ ${project.build.directory}/dependency/restcomm-media-server /mediaserver - - - **/*.sh - - - ${project.build.directory}/dependency/restcomm-media-server - /mediaserver - - - **/*.sh - - - 555 - ${project.basedir}/src/main/resources/assembly-resources From bfe3efe11012bb7e752e570f941925f33e441686 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 19:28:53 -0500 Subject: [PATCH 10/44] bash scripts file mode --- .../restcomm/autoconfig.d/config-SecureSSL.sh | 205 ++++ .../restcomm/autoconfig.d/config-dashboard.sh | 30 + .../autoconfig.d/config-dialogic-xms.sh | 57 ++ .../restcomm/autoconfig.d/config-jboss-as.sh | 18 + .../autoconfig.d/config-load-balancer.sh | 47 + .../bin/restcomm/autoconfig.d/config-logs.sh | 81 ++ .../bin/restcomm/autoconfig.d/config-mysql.sh | 249 +++++ .../restcomm/autoconfig.d/config-olympus.sh | 46 + .../restcomm/autoconfig.d/config-restcomm.sh | 893 ++++++++++++++++++ .../autoconfig.d/config-rvd-logging.sh | 190 ++++ .../bin/restcomm/autoconfig.d/config-rvd.sh | 92 ++ .../autoconfig.d/config-sip-connectors.sh | 160 ++++ .../restcomm/autoconfig.d/config-utensil.sh | 155 +++ .../restcomm/monitoring/Graylog_Monitoring.sh | 61 ++ .../bin/restcomm/utils/read-network-props.sh | 48 + 15 files changed, 2332 insertions(+) create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd-logging.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-sip-connectors.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-utensil.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh create mode 100755 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/bin/restcomm/utils/read-network-props.sh 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/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/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) From c9dd478af9856d68232c70fd9ffcbbb5f8229ceb Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 19:30:59 -0500 Subject: [PATCH 11/44] verify java 8 --- .../bin/restcomm/verify-dependencies.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 index dbf06b3195..95565c6cf3 100755 --- 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 @@ -4,17 +4,17 @@ 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." + 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.7.0-openjdk-devel.x86_64" + 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-7-jdk" + echo " apt-get install openjdk-8-jdk" echo "macOS: brew cask install java7" exit 1 fi From a954efd58526bf89829c8f54d648c40b4f01398c Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 19:49:00 -0500 Subject: [PATCH 12/44] added readme file for docs --- .../src/main/resources/assembly-resources/docs/restcomm/README | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 release/restcomm-assembly-wildfly10/src/main/resources/assembly-resources/docs/restcomm/README 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 From 5dd014aa18b2b93ebc7ee4e3b12c40806695ba6e Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 19:50:47 -0500 Subject: [PATCH 13/44] prevent failing click2call app --- .../src/main/resources/descriptor.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml index 9441f9295d..c88e5751bb 100644 --- a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml +++ b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml @@ -14,7 +14,9 @@ standalone/configuration/dars/mobicents-dar.properties - standalone/configuration/mss-sip-stack.properties + standalone/configuration/mss-sip-stack.properties + + standalone/deployments/click2call.war @@ -60,7 +62,7 @@ org.restcomm:restcomm-connect-management - + From 7d0f02f120dfa5f2faf9632ba8abdff883623e64 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Thu, 8 Mar 2018 20:32:59 -0500 Subject: [PATCH 14/44] switched to 9.0.0 --- pom.xml | 4 ++-- release/pom.xml | 4 ++-- release/restcomm-assembly-wildfly10/pom.xml | 4 ++-- restcomm/pom.xml | 5 ++--- restcomm/restcomm.application/pom.xml | 2 +- restcomm/restcomm.asr/pom.xml | 2 +- restcomm/restcomm.commons/pom.xml | 2 +- restcomm/restcomm.dao/pom.xml | 2 +- restcomm/restcomm.dns.api/pom.xml | 2 +- restcomm/restcomm.docs/pom.xml | 2 +- restcomm/restcomm.docs/sources-asciidoc/pom.xml | 2 +- restcomm/restcomm.email.api/pom.xml | 2 +- restcomm/restcomm.email/pom.xml | 2 +- restcomm/restcomm.extension.api/pom.xml | 2 +- restcomm/restcomm.extension.controller/pom.xml | 2 +- restcomm/restcomm.fax/pom.xml | 2 +- restcomm/restcomm.http/pom.xml | 2 +- restcomm/restcomm.identity/pom.xml | 2 +- restcomm/restcomm.interpreter/pom.xml | 2 +- restcomm/restcomm.mgcp/pom.xml | 2 +- restcomm/restcomm.monitoring.service/pom.xml | 2 +- restcomm/restcomm.mrb.api/pom.xml | 2 +- restcomm/restcomm.mrb/pom.xml | 2 +- restcomm/restcomm.mscontrol.api/pom.xml | 2 +- restcomm/restcomm.mscontrol.jsr309/pom.xml | 2 +- restcomm/restcomm.mscontrol.mms/pom.xml | 2 +- restcomm/restcomm.provisioning.number.api/pom.xml | 2 +- restcomm/restcomm.provisioning.number.bandwidth/pom.xml | 2 +- restcomm/restcomm.provisioning.number.nexmo/pom.xml | 2 +- restcomm/restcomm.provisioning.number.vi/pom.xml | 2 +- restcomm/restcomm.provisioning.number.voxbone/pom.xml | 2 +- restcomm/restcomm.routing/pom.xml | 3 +-- restcomm/restcomm.sdr.api/pom.xml | 2 +- restcomm/restcomm.sms.api/pom.xml | 2 +- restcomm/restcomm.sms/pom.xml | 2 +- restcomm/restcomm.telephony.api/pom.xml | 2 +- restcomm/restcomm.telephony/pom.xml | 2 +- restcomm/restcomm.testsuite/pom.xml | 2 +- restcomm/restcomm.tts.acapela/pom.xml | 2 +- restcomm/restcomm.tts.api/pom.xml | 2 +- restcomm/restcomm.tts.att/pom.xml | 2 +- restcomm/restcomm.tts.awspolly/pom.xml | 2 +- restcomm/restcomm.tts.voicerss/pom.xml | 2 +- restcomm/restcomm.ui/pom.xml | 2 +- restcomm/restcomm.ussd/pom.xml | 2 +- 45 files changed, 49 insertions(+), 51 deletions(-) diff --git a/pom.xml b/pom.xml index 6a4d84908d..05f9a44a0e 100644 --- a/pom.xml +++ b/pom.xml @@ -6,9 +6,9 @@ 4.0.1 4.0.0 - org.restcomm.connect + org.restcomm restcomm-connect-root - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT pom restcomm diff --git a/release/pom.xml b/release/pom.xml index dac7eda750..20beba8365 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - org.restcomm.connect + org.restcomm restcomm-connect-root - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT assembly-parent pom diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml index aa239794b2..9a1930a639 100644 --- a/release/restcomm-assembly-wildfly10/pom.xml +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - org.restcomm.connect + org.restcomm assembly-parent - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT assembly-wildfly10 pom diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 3cb53de9c7..277d7ca7fb 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -3,11 +3,10 @@ 4.0.0 - org.restcomm.connect + org.restcomm restcomm-connect-root - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT - restcomm-connect pom RestComm-Connect diff --git a/restcomm/restcomm.application/pom.xml b/restcomm/restcomm.application/pom.xml index c3596cd052..967df71f67 100644 --- a/restcomm/restcomm.application/pom.xml +++ b/restcomm/restcomm.application/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.application diff --git a/restcomm/restcomm.asr/pom.xml b/restcomm/restcomm.asr/pom.xml index cb1b576eab..61029460da 100644 --- a/restcomm/restcomm.asr/pom.xml +++ b/restcomm/restcomm.asr/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.asr diff --git a/restcomm/restcomm.commons/pom.xml b/restcomm/restcomm.commons/pom.xml index 7d1b8ee04c..0b23384b8b 100644 --- a/restcomm/restcomm.commons/pom.xml +++ b/restcomm/restcomm.commons/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.commons diff --git a/restcomm/restcomm.dao/pom.xml b/restcomm/restcomm.dao/pom.xml index e47408da08..f95d46890e 100644 --- a/restcomm/restcomm.dao/pom.xml +++ b/restcomm/restcomm.dao/pom.xml @@ -6,7 +6,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.dao diff --git a/restcomm/restcomm.dns.api/pom.xml b/restcomm/restcomm.dns.api/pom.xml index 79061674ef..2b3cb34eae 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.dns.api diff --git a/restcomm/restcomm.docs/pom.xml b/restcomm/restcomm.docs/pom.xml index 55f98ac5db..0ad66575a4 100644 --- a/restcomm/restcomm.docs/pom.xml +++ b/restcomm/restcomm.docs/pom.xml @@ -5,7 +5,7 @@ org.restcomm restcomm-connect - 8.3.0-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 5f775d6d01..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.0-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 e5ee1e3a70..f8aa6d6368 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.email.api diff --git a/restcomm/restcomm.email/pom.xml b/restcomm/restcomm.email/pom.xml index e4bda2542b..2119cfa809 100644 --- a/restcomm/restcomm.email/pom.xml +++ b/restcomm/restcomm.email/pom.xml @@ -5,7 +5,7 @@ restcomm-connect org.restcomm - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.email diff --git a/restcomm/restcomm.extension.api/pom.xml b/restcomm/restcomm.extension.api/pom.xml index 049c7861c6..9a934c1da8 100644 --- a/restcomm/restcomm.extension.api/pom.xml +++ b/restcomm/restcomm.extension.api/pom.xml @@ -7,7 +7,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm diff --git a/restcomm/restcomm.extension.controller/pom.xml b/restcomm/restcomm.extension.controller/pom.xml index 65a74002f4..ba7c6a2711 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.0-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm diff --git a/restcomm/restcomm.fax/pom.xml b/restcomm/restcomm.fax/pom.xml index 5adb5d3f4a..060bd4a10f 100644 --- a/restcomm/restcomm.fax/pom.xml +++ b/restcomm/restcomm.fax/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.fax diff --git a/restcomm/restcomm.http/pom.xml b/restcomm/restcomm.http/pom.xml index 3c9fcbc22c..67cb090aa3 100644 --- a/restcomm/restcomm.http/pom.xml +++ b/restcomm/restcomm.http/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.http diff --git a/restcomm/restcomm.identity/pom.xml b/restcomm/restcomm.identity/pom.xml index 93bf5463d8..bf0453a481 100644 --- a/restcomm/restcomm.identity/pom.xml +++ b/restcomm/restcomm.identity/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.identity diff --git a/restcomm/restcomm.interpreter/pom.xml b/restcomm/restcomm.interpreter/pom.xml index 181f97a1bf..455301c83e 100644 --- a/restcomm/restcomm.interpreter/pom.xml +++ b/restcomm/restcomm.interpreter/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.interpreter diff --git a/restcomm/restcomm.mgcp/pom.xml b/restcomm/restcomm.mgcp/pom.xml index 4f92100d5e..7bf64527b2 100644 --- a/restcomm/restcomm.mgcp/pom.xml +++ b/restcomm/restcomm.mgcp/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.0-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 902375706d..b1b60ce8b9 100644 --- a/restcomm/restcomm.monitoring.service/pom.xml +++ b/restcomm/restcomm.monitoring.service/pom.xml @@ -7,7 +7,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.monitoring.service diff --git a/restcomm/restcomm.mrb.api/pom.xml b/restcomm/restcomm.mrb.api/pom.xml index 339ca21aaf..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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.mrb.api diff --git a/restcomm/restcomm.mrb/pom.xml b/restcomm/restcomm.mrb/pom.xml index 29ff842f24..752f011565 100644 --- a/restcomm/restcomm.mrb/pom.xml +++ b/restcomm/restcomm.mrb/pom.xml @@ -3,7 +3,7 @@ org.restcomm restcomm-connect - 8.3.0-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 308f6e9c8e..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.0-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 444f88ef78..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.0-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 6e1def759a..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.0-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 20767c12af..baa38505e4 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.api diff --git a/restcomm/restcomm.provisioning.number.bandwidth/pom.xml b/restcomm/restcomm.provisioning.number.bandwidth/pom.xml index ec142cecb4..149dc64207 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.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/restcomm/restcomm.provisioning.number.nexmo/pom.xml b/restcomm/restcomm.provisioning.number.nexmo/pom.xml index d11fbae630..47d0c598fc 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.nexmo diff --git a/restcomm/restcomm.provisioning.number.vi/pom.xml b/restcomm/restcomm.provisioning.number.vi/pom.xml index 64480b5f2f..7144f66e69 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.vi diff --git a/restcomm/restcomm.provisioning.number.voxbone/pom.xml b/restcomm/restcomm.provisioning.number.voxbone/pom.xml index 43b8559b9c..c11dd58ee3 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.provisioning.number.voxbone diff --git a/restcomm/restcomm.routing/pom.xml b/restcomm/restcomm.routing/pom.xml index 4a04398e92..ef27fa48d1 100644 --- a/restcomm/restcomm.routing/pom.xml +++ b/restcomm/restcomm.routing/pom.xml @@ -5,11 +5,10 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm restcomm-connect.routing - 8.3.0-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 502c47883e..4baa7cf574 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.sdr.api diff --git a/restcomm/restcomm.sms.api/pom.xml b/restcomm/restcomm.sms.api/pom.xml index 2f2b76de72..5258fb7b54 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.sms.api diff --git a/restcomm/restcomm.sms/pom.xml b/restcomm/restcomm.sms/pom.xml index c259dd5b90..8d684381d9 100644 --- a/restcomm/restcomm.sms/pom.xml +++ b/restcomm/restcomm.sms/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.sms diff --git a/restcomm/restcomm.telephony.api/pom.xml b/restcomm/restcomm.telephony.api/pom.xml index 2a4bc85416..24059bee29 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.telephony.api restcomm-connect.telephony.api diff --git a/restcomm/restcomm.telephony/pom.xml b/restcomm/restcomm.telephony/pom.xml index 4126b9e4e1..3c5be66caa 100644 --- a/restcomm/restcomm.telephony/pom.xml +++ b/restcomm/restcomm.telephony/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.telephony diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index a148ac0bef..221bba480b 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -4,7 +4,7 @@ restcomm-connect org.restcomm - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/restcomm/restcomm.tts.acapela/pom.xml b/restcomm/restcomm.tts.acapela/pom.xml index da7f21bfc9..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.0-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 a8439269b0..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.0-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 f90bc7390a..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.0-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 d74e4e5f62..824e28d9bb 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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.awspolly restcomm-connect.tts.awspolly diff --git a/restcomm/restcomm.tts.voicerss/pom.xml b/restcomm/restcomm.tts.voicerss/pom.xml index 4527c44ada..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.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.tts.voicerss diff --git a/restcomm/restcomm.ui/pom.xml b/restcomm/restcomm.ui/pom.xml index b43e962946..01d6d6f16d 100644 --- a/restcomm/restcomm.ui/pom.xml +++ b/restcomm/restcomm.ui/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT org.restcomm diff --git a/restcomm/restcomm.ussd/pom.xml b/restcomm/restcomm.ussd/pom.xml index ca1702e6df..18fd3e6afa 100644 --- a/restcomm/restcomm.ussd/pom.xml +++ b/restcomm/restcomm.ussd/pom.xml @@ -6,7 +6,7 @@ org.restcomm restcomm-connect - 8.3.0-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.ussd From 6785c1839b5a7bf11633a218c23022e610622859 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Fri, 9 Mar 2018 05:49:09 -0500 Subject: [PATCH 15/44] maven module for AS7 --- release/restcomm-assembly-as7/pom.xml | 107 +++ .../restcomm/autoconfig.d/config-SecureSSL.sh | 205 ++++ .../restcomm/autoconfig.d/config-dashboard.sh | 30 + .../autoconfig.d/config-dialogic-xms.sh | 57 ++ .../restcomm/autoconfig.d/config-jboss-as.sh | 18 + .../autoconfig.d/config-load-balancer.sh | 47 + .../bin/restcomm/autoconfig.d/config-logs.sh | 81 ++ .../bin/restcomm/autoconfig.d/config-mysql.sh | 249 +++++ .../restcomm/autoconfig.d/config-olympus.sh | 46 + .../restcomm/autoconfig.d/config-restcomm.sh | 893 ++++++++++++++++++ .../autoconfig.d/config-rvd-logging.sh | 190 ++++ .../bin/restcomm/autoconfig.d/config-rvd.sh | 92 ++ .../autoconfig.d/config-sip-connectors.sh | 160 ++++ .../restcomm/autoconfig.d/config-utensil.sh | 155 +++ .../bin/restcomm/autoconfigure.sh | 35 + .../bin/restcomm/collect_jmap.sh | 96 ++ .../bin/restcomm/gsed_macos.sh | 6 + .../assembly-resources/bin/restcomm/jvmtop.sh | 24 + .../bin/restcomm/logs_collect.sh | 206 ++++ .../restcomm/monitoring/Graylog_Monitoring.sh | 61 ++ .../bin/restcomm/restart-restcomm.sh | 83 ++ .../bin/restcomm/set-log-level.sh | 114 +++ .../bin/restcomm/start-mediaserver.sh | 19 + .../bin/restcomm/start-restcomm.sh | 165 ++++ .../bin/restcomm/stop-mediaserver.sh | 11 + .../bin/restcomm/stop-restcomm.sh | 26 + .../bin/restcomm/utils/read-network-props.sh | 48 + .../bin/restcomm/verify-dependencies.sh | 56 ++ .../assembly-resources/docs/restcomm/README | 2 + .../dars/mobicents-dar.properties | 2 + .../configuration/mss-sip-stack.properties | 41 + .../deployments/olympus.war.dodeploy | 1 + .../restcomm-management.war.dodeploy | 1 + .../deployments/restcomm-rvd.war.dodeploy | 1 + .../deployments/restcomm.war.dodeploy | 1 + .../src/main/resources/descriptor.xml | 67 ++ 36 files changed, 3396 insertions(+) create mode 100644 release/restcomm-assembly-as7/pom.xml create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-SecureSSL.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dashboard.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-dialogic-xms.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-jboss-as.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-load-balancer.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-logs.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-mysql.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-olympus.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-restcomm.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd-logging.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-rvd.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-sip-connectors.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfig.d/config-utensil.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/autoconfigure.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/collect_jmap.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/gsed_macos.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/jvmtop.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/logs_collect.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/monitoring/Graylog_Monitoring.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/restart-restcomm.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/set-log-level.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-mediaserver.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/start-restcomm.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-mediaserver.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/stop-restcomm.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/utils/read-network-props.sh create mode 100755 release/restcomm-assembly-as7/src/main/resources/assembly-resources/bin/restcomm/verify-dependencies.sh create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/docs/restcomm/README create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/dars/mobicents-dar.properties create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/configuration/mss-sip-stack.properties create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/olympus.war.dodeploy create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-management.war.dodeploy create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm-rvd.war.dodeploy create mode 100644 release/restcomm-assembly-as7/src/main/resources/assembly-resources/standalone/deployments/restcomm.war.dodeploy create mode 100644 release/restcomm-assembly-as7/src/main/resources/descriptor.xml 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 + + + + + + From 50915fa9ab1e2179e74e87183a46dde129e664e9 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Fri, 9 Mar 2018 05:49:55 -0500 Subject: [PATCH 16/44] replace version using maven filtering --- .../standalone/configuration/mss-sip-stack.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 index d677a45474..a1309d2c75 100644 --- 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 @@ -20,8 +20,8 @@ gov.nist.javax.sip.MAX_FORK_TIME_SECONDS=0 # 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 MAJOR_VERSION_NUMBER.BUILD_NUMBER -org.mobicents.servlet.sip.SERVER_HEADER=Restcomm MAJOR_VERSION_NUMBER.BUILD_NUMBER +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= From 168fd77cdd7d96a7a020a2808523f2e4535ed786 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Fri, 9 Mar 2018 05:50:10 -0500 Subject: [PATCH 17/44] removed wild10 from parent depends --- release/pom.xml | 10 ++-------- release/restcomm-assembly-wildfly10/pom.xml | 1 + 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/release/pom.xml b/release/pom.xml index 20beba8365..bebdc9bf30 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -22,13 +22,6 @@ [1.1,1.1.999) war - - org.mobicents.servlet.sip - sip-servlets-wildfly-10 - ${sipservletapi.version} - zip - assembly - org.mobicents.media media-server-standalone @@ -52,9 +45,10 @@ + restcomm-assembly-as7 restcomm-assembly-wildfly10 diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml index 9a1930a639..0de8d9e86d 100644 --- a/release/restcomm-assembly-wildfly10/pom.xml +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -55,6 +55,7 @@ org.mobicents.servlet.sip sip-servlets-wildfly-10 + ${sipservletapi.version} zip assembly From fbcdd5402edb0f8ede7b5805853a6a20afea211c Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 19 Mar 2018 19:39:42 -0400 Subject: [PATCH 18/44] filterign resources vefore including --- release/restcomm-assembly-wildfly10/pom.xml | 8 +++++++- .../src/main/resources/descriptor.xml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml index 0de8d9e86d..f2a3d095ef 100644 --- a/release/restcomm-assembly-wildfly10/pom.xml +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -7,7 +7,7 @@ 9.0.0-SNAPSHOT assembly-wildfly10 - pom + jar UTF-8 3.2.0-89 @@ -38,6 +38,12 @@ + + + src/main/resources + true + + org.apache.maven.plugins diff --git a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml index c88e5751bb..6f01e03ec6 100644 --- a/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml +++ b/release/restcomm-assembly-wildfly10/src/main/resources/descriptor.xml @@ -26,7 +26,7 @@ - ${project.basedir}/src/main/resources/assembly-resources + ${project.build.directory}/classes/assembly-resources / From 7e0af3776d39b50161beff4ecd9823259cd404a2 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 20 Mar 2018 08:05:20 -0400 Subject: [PATCH 19/44] using assembly filterign instead --- release/restcomm-assembly-wildfly10/pom.xml | 10 ++-------- .../src/assembly/descriptor.xml | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml index f2a3d095ef..e168cac4d8 100644 --- a/release/restcomm-assembly-wildfly10/pom.xml +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -37,13 +37,7 @@ war - - - - src/main/resources - true - - + org.apache.maven.plugins @@ -93,7 +87,7 @@ 3.1.0 - src/main/resources/descriptor.xml + src/assembly/descriptor.xml Restcomm-JBoss-Wildfly10-${project.version} false diff --git a/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml b/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml index 6f01e03ec6..c5b9172bb6 100644 --- a/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml +++ b/release/restcomm-assembly-wildfly10/src/assembly/descriptor.xml @@ -27,8 +27,23 @@ ${project.build.directory}/classes/assembly-resources + + **/*.sh + + / + true + + 0777 + + + + ${project.build.directory}/classes/assembly-resources + + **/*.sh + / - + true + From 46e27f123c9a292b478e92459c7bc8d589617498 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 20 Mar 2018 08:05:33 -0400 Subject: [PATCH 20/44] fixes after merge --- restcomm/pom.xml | 1 + restcomm/restcomm-connect.core/pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index e38ed5d8e0..2a0a3662f1 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -176,6 +176,7 @@ restcomm.monitoring.service restcomm.tts.awspolly restcomm.sdr.api + restcomm-connect.core diff --git a/restcomm/restcomm-connect.core/pom.xml b/restcomm/restcomm-connect.core/pom.xml index b350060fc6..bcc864919b 100644 --- a/restcomm/restcomm-connect.core/pom.xml +++ b/restcomm/restcomm-connect.core/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-connect - 8.3.2-SNAPSHOT + 9.0.0-SNAPSHOT restcomm-connect.core restcomm-connect.core From 4b5fc6c75cec5d4d5e9132a8407e09239d3ce6dc Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 05:03:58 -0400 Subject: [PATCH 21/44] removed any unnecesary tomcat dependencies --- restcomm/pom.xml | 61 ++++--------- restcomm/restcomm-connect.core/pom.xml | 7 +- restcomm/restcomm.application/pom.xml | 7 +- restcomm/restcomm.dao/pom.xml | 12 +-- restcomm/restcomm.dns.api/pom.xml | 7 +- restcomm/restcomm.extension.api/pom.xml | 12 +-- .../restcomm.extension.controller/pom.xml | 7 +- restcomm/restcomm.http/pom.xml | 21 ----- restcomm/restcomm.monitoring.service/pom.xml | 7 +- .../restcomm.provisioning.number.api/pom.xml | 13 ++- restcomm/restcomm.telephony.api/pom.xml | 6 +- restcomm/restcomm.telephony/pom.xml | 12 +-- restcomm/restcomm.testsuite/pom.xml | 87 +++++++++---------- 13 files changed, 79 insertions(+), 180 deletions(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 2a0a3662f1..27571157d6 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -115,7 +115,7 @@ 1.0.3.Final 1.0.3 1.0.2 - 2.0.0-alpha-4 + 2.2.6 2.0.4 7.0.64 @@ -188,11 +188,6 @@ restcomm-connect.sms.api ${project.version} - - junit - junit - ${junit.version} - com.cloudhopper @@ -314,6 +309,12 @@ ${sipservletapi.version} provided + + org.mobicents.servlet.sip + sip-servlets-client + ${sipservletapi.version} + provided + @@ -432,19 +433,6 @@ test - - org.apache.tomcat - tomcat-coyote - ${tomcat7.version} - provided - - - - org.apache.tomcat - tomcat-jasper - ${tomcat7.version} - provided - javax.sip @@ -453,13 +441,6 @@ test - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - ${sipservletapi.version} - provided - - org.mobicents.servlet.sip sip-servlets-application-router @@ -579,20 +560,6 @@ test - - org.apache.tomcat - tomcat-coyote - ${tomcat7.version} - test - - - - org.apache.tomcat - tomcat-jasper - ${tomcat7.version} - test - - javax.sip jain-sip-ri @@ -600,12 +567,6 @@ test - - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - ${sipservletapi.version} - test - org.mobicents.servlet.sip @@ -613,6 +574,14 @@ ${sipservletapi.version} test + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + org.hsqldb diff --git a/restcomm/restcomm-connect.core/pom.xml b/restcomm/restcomm-connect.core/pom.xml index bcc864919b..831bb362f1 100644 --- a/restcomm/restcomm-connect.core/pom.xml +++ b/restcomm/restcomm-connect.core/pom.xml @@ -30,7 +30,12 @@ com.googlecode.libphonenumber libphonenumber - + + + log4j + log4j + provided + \ No newline at end of file diff --git a/restcomm/restcomm.application/pom.xml b/restcomm/restcomm.application/pom.xml index fefb6c34ea..a688a6a628 100644 --- a/restcomm/restcomm.application/pom.xml +++ b/restcomm/restcomm.application/pom.xml @@ -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.dao/pom.xml b/restcomm/restcomm.dao/pom.xml index f95d46890e..1f8f3e46f4 100644 --- a/restcomm/restcomm.dao/pom.xml +++ b/restcomm/restcomm.dao/pom.xml @@ -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 2b3cb34eae..410d0fbd63 100644 --- a/restcomm/restcomm.dns.api/pom.xml +++ b/restcomm/restcomm.dns.api/pom.xml @@ -19,11 +19,6 @@ ${project.version} - - org.apache.tomcat - tomcat-coyote - provided - - + diff --git a/restcomm/restcomm.extension.api/pom.xml b/restcomm/restcomm.extension.api/pom.xml index 9a934c1da8..a893c01b12 100644 --- a/restcomm/restcomm.extension.api/pom.xml +++ b/restcomm/restcomm.extension.api/pom.xml @@ -39,16 +39,6 @@ - - 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 ba7c6a2711..4373e2f580 100644 --- a/restcomm/restcomm.extension.controller/pom.xml +++ b/restcomm/restcomm.extension.controller/pom.xml @@ -47,12 +47,7 @@ provided - - org.apache.tomcat - tomcat-coyote - provided - - + org.restcomm restcomm-connect.dao diff --git a/restcomm/restcomm.http/pom.xml b/restcomm/restcomm.http/pom.xml index 5b74e9fa6d..3a3ace0b05 100644 --- a/restcomm/restcomm.http/pom.xml +++ b/restcomm/restcomm.http/pom.xml @@ -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 diff --git a/restcomm/restcomm.monitoring.service/pom.xml b/restcomm/restcomm.monitoring.service/pom.xml index b1b60ce8b9..5bb555c5a9 100644 --- a/restcomm/restcomm.monitoring.service/pom.xml +++ b/restcomm/restcomm.monitoring.service/pom.xml @@ -74,12 +74,7 @@ provided - - org.apache.tomcat - tomcat-coyote - provided - - + javax.sip jain-sip-api diff --git a/restcomm/restcomm.provisioning.number.api/pom.xml b/restcomm/restcomm.provisioning.number.api/pom.xml index baa38505e4..9bddffebdf 100644 --- a/restcomm/restcomm.provisioning.number.api/pom.xml +++ b/restcomm/restcomm.provisioning.number.api/pom.xml @@ -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.telephony.api/pom.xml b/restcomm/restcomm.telephony.api/pom.xml index d30c4153f4..3d5c0a0145 100644 --- a/restcomm/restcomm.telephony.api/pom.xml +++ b/restcomm/restcomm.telephony.api/pom.xml @@ -23,10 +23,10 @@ provided - + - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 + org.mobicents.servlet.sip + sip-servlets-client provided diff --git a/restcomm/restcomm.telephony/pom.xml b/restcomm/restcomm.telephony/pom.xml index 5d695a60b9..a83b1e3cd9 100644 --- a/restcomm/restcomm.telephony/pom.xml +++ b/restcomm/restcomm.telephony/pom.xml @@ -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/pom.xml b/restcomm/restcomm.testsuite/pom.xml index f1c119ed41..b6bb407654 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -167,36 +167,20 @@ - org.mobicents.servlet.sip.containers - sip-servlets-catalina-7 - ${sipservletapi.version} - compile - - - org.mobicents.servlet.sip.containers - sip-servlets-tomcat-7 - ${sipservletapi.version} - compile - + org.mobicents.sipunit + sipunit + 2.0.3 + compile + - org.mobicents.arquillian.container - mss-tomcat-embedded-7 - ${mss.arquillian.version} - compile - + org.wildfly.arquillian + wildfly-arquillian-container-embedded + 2.1.0.Final + test + - - - - com.cloudhopper @@ -253,7 +237,7 @@ javax.sip jain-sip-api 1.2 - test + compile @@ -285,19 +269,7 @@ test - - org.apache.tomcat - tomcat-coyote - ${tomcat7.version} - test - - - org.apache.tomcat - tomcat-jasper - ${tomcat7.version} - test - org.mockito @@ -321,12 +293,6 @@ standalone - - org.apache.tomcat - tomcat-catalina - ${tomcat7.version} - - org.mobicents.commtesting mgcpUnit @@ -403,6 +369,31 @@ + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + process-test-classes + + unpack + + + + + org.wildfly + wildfly-dist + 10.0.0.Final + zip + false + target + + + + + + maven-compiler-plugin @@ -469,6 +460,12 @@ -Xms256m -Xmx2048m -XX:MaxPermSize=1024m ${jacocoArgLine} false + + org.jboss.logmanager.LogManager + ${project.basedir}/target/wildfly-10.0.0.Final + ${project.basedir}/target/wildfly-10.0.0.Final/modules + wildfly10 + From 454a3ba1479b4ae28463ab1bc8c15707c0b0ef62 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 05:04:28 -0400 Subject: [PATCH 22/44] moved from original embedded project --- .../connect/testsuite/SipStackTool.java | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 restcomm/restcomm.testsuite/src/main/java/org/restcomm/connect/testsuite/SipStackTool.java 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; + } + } +} From ec897433facc84c8253ebce38d7f6f3f804798e7 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 05:32:37 -0400 Subject: [PATCH 23/44] migrated to new sipstacktool --- .../restcomm/connect/testsuite/UssdCollectMessageTestLive.java | 2 +- .../test/java/org/restcomm/connect/testsuite/UssdPullTest.java | 2 +- .../java/org/restcomm/connect/testsuite/UssdPullTestEC2.java | 2 +- .../connect/testsuite/extensions/BlockingExtensionTest.java | 2 +- .../testsuite/extensions/OutboundBlockingExtensionTest.java | 2 +- .../restcomm/connect/testsuite/http/AccountsEndpointTest.java | 2 +- .../restcomm/connect/testsuite/http/ClientsEndpointTest.java | 2 +- .../org/restcomm/connect/testsuite/http/CreateCallsTest.java | 2 +- .../testsuite/http/CreateCallsWithStatusCallbackTest.java | 2 +- .../testsuite/http/LiveCallModificationAnswerDelayTest.java | 2 +- .../testsuite/http/LiveCallModificationMuteUnMuteTest.java | 2 +- .../connect/testsuite/http/LiveCallModificationTest.java | 2 +- .../restcomm/connect/testsuite/http/OutboudProxyCallsTest.java | 2 +- .../java/org/restcomm/connect/testsuite/http/UssdPushTest.java | 2 +- .../test/java/org/restcomm/connect/testsuite/smpp/SmppTest.java | 2 +- .../org/restcomm/connect/testsuite/sms/SmsEndpointTest.java | 2 +- .../java/org/restcomm/connect/testsuite/sms/SmsOutTest.java | 2 +- .../java/org/restcomm/connect/testsuite/sms/SmsSessionTest.java | 2 +- .../test/java/org/restcomm/connect/testsuite/sms/SmsTest.java | 2 +- .../testsuite/sms/push/SmsPushNotificationServerTest.java | 2 +- .../testsuite/telephony/CallLifecycleAnswerDelayTest.java | 2 +- .../restcomm/connect/testsuite/telephony/CallLifecycleTest.java | 2 +- .../connect/testsuite/telephony/CallLifecycleTestLive.java | 2 +- .../connect/testsuite/telephony/CallRegexNullSrcOrgTest.java | 2 +- .../connect/testsuite/telephony/CallRegexSingleTest.java | 2 +- .../org/restcomm/connect/testsuite/telephony/CallRegexTest.java | 2 +- .../java/org/restcomm/connect/testsuite/telephony/CallTest.java | 2 +- .../restcomm/connect/testsuite/telephony/ClientMessageTest.java | 2 +- .../telephony/ClientsDialAnswerDelayRingingErrorTest.java | 2 +- .../connect/testsuite/telephony/ClientsDialAnswerDelayTest.java | 2 +- .../restcomm/connect/testsuite/telephony/ClientsDialTest.java | 2 +- .../connect/testsuite/telephony/DialActionAnswerDelayTest.java | 2 +- .../restcomm/connect/testsuite/telephony/DialActionTest.java | 2 +- .../telephony/DialConferenceConnectionFailureTest.java | 2 +- .../testsuite/telephony/DialConferenceTerminationTest.java | 2 +- .../connect/testsuite/telephony/DialConferenceTest.java | 2 +- .../testsuite/telephony/DialForkAnswerDelayCancelTest.java | 2 +- .../connect/testsuite/telephony/DialForkAnswerDelayTest.java | 2 +- .../org/restcomm/connect/testsuite/telephony/DialForkTest.java | 2 +- .../testsuite/telephony/DialPureSipNumbersFromPstnTest.java | 2 +- .../testsuite/telephony/DialRecordingAnswerDelayTest.java | 2 +- .../telephony/DialRecordingS3UploadAnswerDelayTest.java | 2 +- .../telephony/DialRecordingS3UploadNoneSecurityTest.java | 2 +- .../testsuite/telephony/DialRecordingS3UploadSecureTest.java | 2 +- .../restcomm/connect/testsuite/telephony/DialRecordingTest.java | 2 +- .../connect/testsuite/telephony/DialStatusCallbackTest.java | 2 +- .../java/org/restcomm/connect/testsuite/telephony/DialTest.java | 2 +- .../connect/testsuite/telephony/NoAuthRegisterClientTest.java | 2 +- .../java/org/restcomm/connect/testsuite/telephony/PlayTest.java | 2 +- .../org/restcomm/connect/testsuite/telephony/ReferTest.java | 2 +- .../connect/testsuite/telephony/RegisterClientTest.java | 2 +- .../telephony/RestcommActingAsProxyAnswerDelayTest.java | 2 +- .../connect/testsuite/telephony/RestcommActingAsProxyTest.java | 2 +- .../testsuite/telephony/SequentialDialingAnswerDelayTest.java | 2 +- .../connect/testsuite/telephony/SequentialDialingTest.java | 2 +- .../connect/testsuite/telephony/TestDialVerbPartOne.java | 2 +- .../testsuite/telephony/TestDialVerbPartOneAnswerDelay.java | 2 +- .../connect/testsuite/telephony/TestDialVerbPartThree.java | 2 +- .../testsuite/telephony/TestDialVerbPartThreeAnswerDelay.java | 2 +- .../connect/testsuite/telephony/TestDialVerbPartTwo.java | 2 +- .../testsuite/telephony/TestDialVerbPartTwoAnswerDelay.java | 2 +- .../restcomm/connect/testsuite/telephony/TestGatherVerb.java | 2 +- .../connect/testsuite/telephony/TestMgcpOperations.java | 2 +- .../connect/testsuite/telephony/TestMultipartContent.java | 2 +- .../connect/testsuite/telephony/proxy/ProxyManagerTest.java | 2 +- .../telephony/push/CallPushNotificationServerTest.java | 2 +- .../connect/testsuite/telephony/ua/UserAgentManagerTest.java | 2 +- 67 files changed, 67 insertions(+), 67 deletions(-) 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 a0b486e4c7..483c37ecb1 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 41946fbcc3..df4db6d8e6 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 @@ -14,7 +14,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 22971a2da9..06b932780f 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 @@ -19,7 +19,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 110e570c77..4c530e90e0 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 @@ -25,7 +25,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 db25b142a1..20af678cfd 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 6a084cbaa2..cef9747f88 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 c558bde242..c901ba801f 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/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/DialForkTest.java b/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialForkTest.java index 469bb966ea..5d5b240375 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/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 025e77d3c9..4e099f4dc7 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; From 57a101afaa344289dd86a6889ea31191b8996313 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 05:43:01 -0400 Subject: [PATCH 24/44] using sipservlets binary for wildfly home --- restcomm/restcomm.testsuite/pom.xml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index b6bb407654..1ad609a77b 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -382,13 +382,12 @@ - org.wildfly - wildfly-dist - 10.0.0.Final + org.mobicents.servlet.sip + sip-servlets-wildfly-10 + 3.2.0-89 zip - false - target - + assembly + @@ -462,8 +461,8 @@ false org.jboss.logmanager.LogManager - ${project.basedir}/target/wildfly-10.0.0.Final - ${project.basedir}/target/wildfly-10.0.0.Final/modules + ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final + ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/modules wildfly10 From 98b5484d71751058dd8d8e2443639d2eb9ba05ce Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 05:43:22 -0400 Subject: [PATCH 25/44] using wildfly conf --- .../src/test/resources/arquillian.xml | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml index f05b229236..c6964ff48b 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -1,28 +1,10 @@ + xmlns="http://jboss.org/schema/arquillian" + xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> - - - 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 - - + + + + From 71a1d46b4b911c833e4b25b4bc84cfa9718dfa55 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 07:13:57 -0400 Subject: [PATCH 26/44] sipservlets proper standalone config file used --- restcomm/pom.xml | 42 ++---- restcomm/restcomm-connect.core/pom.xml | 77 +++++----- restcomm/restcomm.dns.api/pom.xml | 6 + restcomm/restcomm.email.api/pom.xml | 36 +---- restcomm/restcomm.extension.api/pom.xml | 6 +- .../restcomm.extension.controller/pom.xml | 5 + restcomm/restcomm.http/pom.xml | 24 ---- restcomm/restcomm.monitoring.service/pom.xml | 131 +++++++++--------- .../pom.xml | 1 - restcomm/restcomm.testsuite/pom.xml | 25 ++-- .../src/test/resources/arquillian.xml | 6 + 11 files changed, 152 insertions(+), 207 deletions(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 27571157d6..be1040d9e6 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -112,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 @@ -297,12 +295,6 @@ ${javamail.version} - - javax.servlet - javax.servlet-api - 3.0.1 - provided - org.mobicents.servlet.sip sip-servlets-spec @@ -454,23 +446,6 @@ ${hsqldb.version} - - org.mobicents.arquillian.container - mss-tomcat-embedded-7 - ${mss.arquillian.version} - test - - - com.telscale.licensing - lce-core - - - org.mobicents.sipunit - * - - - - org.jboss.arquillian.junit arquillian-junit-container @@ -528,6 +503,13 @@ ${smpp-extensions.version} + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + org.mockito mockito-core @@ -575,14 +557,6 @@ test - - javax.servlet - javax.servlet-api - 3.1.0 - provided - - - org.hsqldb hsqldb diff --git a/restcomm/restcomm-connect.core/pom.xml b/restcomm/restcomm-connect.core/pom.xml index 831bb362f1..4536ab1d0a 100644 --- a/restcomm/restcomm-connect.core/pom.xml +++ b/restcomm/restcomm-connect.core/pom.xml @@ -1,41 +1,46 @@ - 4.0.0 - - org.restcomm - restcomm-connect - 9.0.0-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 - - - log4j - log4j - provided - - + + + 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.dns.api/pom.xml b/restcomm/restcomm.dns.api/pom.xml index 410d0fbd63..066826d400 100644 --- a/restcomm/restcomm.dns.api/pom.xml +++ b/restcomm/restcomm.dns.api/pom.xml @@ -19,6 +19,12 @@ ${project.version} + + javax.servlet + javax.servlet-api + provided + + diff --git a/restcomm/restcomm.email.api/pom.xml b/restcomm/restcomm.email.api/pom.xml index eb2d7e5024..407ef44979 100644 --- a/restcomm/restcomm.email.api/pom.xml +++ b/restcomm/restcomm.email.api/pom.xml @@ -21,37 +21,11 @@ ${project.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + javax.servlet + javax.servlet-api + provided + diff --git a/restcomm/restcomm.extension.api/pom.xml b/restcomm/restcomm.extension.api/pom.xml index a893c01b12..301a32718d 100644 --- a/restcomm/restcomm.extension.api/pom.xml +++ b/restcomm/restcomm.extension.api/pom.xml @@ -38,7 +38,11 @@ provided - + + javax.servlet + javax.servlet-api + provided + diff --git a/restcomm/restcomm.extension.controller/pom.xml b/restcomm/restcomm.extension.controller/pom.xml index 4373e2f580..ba02d4413d 100644 --- a/restcomm/restcomm.extension.controller/pom.xml +++ b/restcomm/restcomm.extension.controller/pom.xml @@ -62,6 +62,11 @@ org.apache.maven maven-artifact + + javax.servlet + javax.servlet-api + provided + diff --git a/restcomm/restcomm.http/pom.xml b/restcomm/restcomm.http/pom.xml index 3a3ace0b05..ca737f9079 100644 --- a/restcomm/restcomm.http/pom.xml +++ b/restcomm/restcomm.http/pom.xml @@ -212,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.monitoring.service/pom.xml b/restcomm/restcomm.monitoring.service/pom.xml index 5bb555c5a9..21dfe455df 100644 --- a/restcomm/restcomm.monitoring.service/pom.xml +++ b/restcomm/restcomm.monitoring.service/pom.xml @@ -1,91 +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 - 9.0.0-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 + 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.provisioning.number.bandwidth/pom.xml b/restcomm/restcomm.provisioning.number.bandwidth/pom.xml index 5c0870b6c7..91703dbc8c 100644 --- a/restcomm/restcomm.provisioning.number.bandwidth/pom.xml +++ b/restcomm/restcomm.provisioning.number.bandwidth/pom.xml @@ -55,7 +55,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 1ad609a77b..8c20f6b734 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -149,7 +149,7 @@ shrinkwrap-resolver-api-maven ${shrinkwrap.resolver.version} compile - + org.jboss.shrinkwrap.resolver @@ -165,11 +165,10 @@ compile - + org.mobicents.sipunit sipunit - 2.0.3 compile @@ -179,7 +178,7 @@ test - + @@ -299,23 +298,13 @@ ${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 @@ -463,8 +452,10 @@ org.jboss.logmanager.LogManager ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/modules + standalone-sip.xml wildfly10 - + + false diff --git a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml index c6964ff48b..b4674e4997 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -5,6 +5,12 @@ + + true + standalone-sip.xml + -Dserver-config=${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/standalone/configuration/standalone-sip.xml + + From 7c995ca7e8f244eefea7d53f270b35e689a060dd Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 09:48:32 -0400 Subject: [PATCH 27/44] added deployments dir to check war --- restcomm/restcomm.testsuite/src/test/resources/arquillian.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml index b4674e4997..e92fe0b978 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -3,7 +3,9 @@ xmlns="http://jboss.org/schema/arquillian" xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> - + + target/deployments + true From d669925ebfeb324680820354202d194eb582105b Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 10:02:32 -0400 Subject: [PATCH 28/44] removed no used prop --- restcomm/restcomm.testsuite/pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 8c20f6b734..279631b607 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -452,7 +452,6 @@ org.jboss.logmanager.LogManager ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/modules - standalone-sip.xml wildfly10 false From a416765293188c49813f95f9de17166b44976fe6 Mon Sep 17 00:00:00 2001 From: Maria Farooq Date: Mon, 9 Apr 2018 19:51:05 +0500 Subject: [PATCH 29/44] fixed proper imports --- .../telephony/DialActionOrganizationTest.java | 45 +++------- .../ImsClientsDialAnswerDelayCancelTest.java | 14 +-- .../ImsClientsDialAnswerDelayTest.java | 20 ++--- .../telephony/ImsClientsDialTest.java | 88 ++++++++++--------- 4 files changed, 72 insertions(+), 95 deletions(-) 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 80c0eae227..56e3ee687e 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,9 +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; @@ -72,39 +62,27 @@ import org.junit.After; 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.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 +110,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,7 +225,7 @@ public void before() throws Exception { } - private void mockDNSLookup(String host, String transport) throws TextParseException { + /*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); @@ -290,11 +265,11 @@ private void mockDNSLookup(String host, String transport) throws TextParseExcept 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{ + public void testDialSipNumberSameAndDifferentOrganization() throws ParseException, InterruptedException, DeploymentException { stubFor(get(urlPathEqualTo("/1111")) .willReturn(aResponse() .withStatus(200) @@ -310,7 +285,7 @@ public void testDialSipNumberSameAndDifferentOrganization() throws ParseExceptio //Reload Context //containerManagercontainerManager.reloadContext(); - mockDNSLookup(HOST_ORG2, TRANSPORT); + //mockDNSLookup(HOST_ORG2, TRANSPORT); //bob@org3 will dial a sip number X@org3 SipURI uri = bobSipStackOrg3.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); 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..0d4cf1f522 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,6 @@ 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; @@ -48,21 +47,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..d115fe8bbc 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,25 +49,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 com.github.tomakehurst.wiremock.junit.WireMockRule; import com.google.gson.JsonObject; -import java.util.Arrays; -import org.junit.experimental.categories.Category; -import org.restcomm.connect.commons.annotations.FeatureAltTests; -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.WebArchiveUtil; /** * Test for clients with or without VoiceURL (Bitbucket issue 115). Clients 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..e94be881d0 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,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; @@ -18,60 +55,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. From a0e51766d4c3cbbcf96a60a4a515e53134e89377 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 18:21:23 -0400 Subject: [PATCH 30/44] some fixes in maven poms --- restcomm/pom.xml | 6 ++ restcomm/restcomm.extension.api/pom.xml | 71 ++++++++++--------- .../restcomm.extension.controller/pom.xml | 6 ++ restcomm/restcomm.identity/pom.xml | 16 ----- restcomm/restcomm.interpreter/pom.xml | 1 - .../pom.xml | 1 - .../restcomm.provisioning.number.vi/pom.xml | 1 - .../pom.xml | 1 - restcomm/restcomm.sms/pom.xml | 1 - restcomm/restcomm.telephony.api/pom.xml | 1 - restcomm/restcomm.testsuite/pom.xml | 9 +-- restcomm/restcomm.ussd/pom.xml | 1 - 12 files changed, 50 insertions(+), 65 deletions(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index be1040d9e6..8b36d15d37 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -322,6 +322,12 @@ shiro-web ${shiroweb.version} + + + javax.ws.rs + javax.ws.rs + 1.0 + com.sun.jersey diff --git a/restcomm/restcomm.extension.api/pom.xml b/restcomm/restcomm.extension.api/pom.xml index 301a32718d..dc0a2ca31a 100644 --- a/restcomm/restcomm.extension.api/pom.xml +++ b/restcomm/restcomm.extension.api/pom.xml @@ -1,48 +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 - 9.0.0-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 + - + + - com.sun.jersey - jersey-core - ${jersey.version} - + javax.ws.rs + javax.ws.rs + provided + - - joda-time - joda-time - ${jodatime.version} - + + joda-time + joda-time + ${jodatime.version} + - - org.restcomm - restcomm-connect.commons - ${project.version} - provided - + + org.restcomm + restcomm-connect.commons + ${project.version} + provided + - - javax.servlet - javax.servlet-api - provided - + + javax.servlet + javax.servlet-api + provided + - + diff --git a/restcomm/restcomm.extension.controller/pom.xml b/restcomm/restcomm.extension.controller/pom.xml index ba02d4413d..2292f7b996 100644 --- a/restcomm/restcomm.extension.controller/pom.xml +++ b/restcomm/restcomm.extension.controller/pom.xml @@ -67,6 +67,12 @@ javax.servlet-api provided + + + javax.ws.rs + javax.ws.rs + test + diff --git a/restcomm/restcomm.identity/pom.xml b/restcomm/restcomm.identity/pom.xml index bf0453a481..5b6a76b3db 100644 --- a/restcomm/restcomm.identity/pom.xml +++ b/restcomm/restcomm.identity/pom.xml @@ -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 ba420235a3..0b857d1768 100644 --- a/restcomm/restcomm.interpreter/pom.xml +++ b/restcomm/restcomm.interpreter/pom.xml @@ -144,7 +144,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.provisioning.number.nexmo/pom.xml b/restcomm/restcomm.provisioning.number.nexmo/pom.xml index 47d0c598fc..841b40e72d 100644 --- a/restcomm/restcomm.provisioning.number.nexmo/pom.xml +++ b/restcomm/restcomm.provisioning.number.nexmo/pom.xml @@ -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 7144f66e69..547a9d6a24 100644 --- a/restcomm/restcomm.provisioning.number.vi/pom.xml +++ b/restcomm/restcomm.provisioning.number.vi/pom.xml @@ -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 c11dd58ee3..ff26d307cd 100644 --- a/restcomm/restcomm.provisioning.number.voxbone/pom.xml +++ b/restcomm/restcomm.provisioning.number.voxbone/pom.xml @@ -56,7 +56,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.sms/pom.xml b/restcomm/restcomm.sms/pom.xml index 94476d3fc2..4c6155cb40 100644 --- a/restcomm/restcomm.sms/pom.xml +++ b/restcomm/restcomm.sms/pom.xml @@ -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 3d5c0a0145..4a8cf63f04 100644 --- a/restcomm/restcomm.telephony.api/pom.xml +++ b/restcomm/restcomm.telephony.api/pom.xml @@ -19,7 +19,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 279631b607..91eea1bb97 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -93,10 +93,6 @@ shiro-web - - com.sun.jersey - jersey-server - com.sun.jersey @@ -144,7 +140,7 @@ compile - + org.jboss.shrinkwrap.resolver shrinkwrap-resolver-api-maven ${shrinkwrap.resolver.version} @@ -173,7 +169,7 @@ org.wildfly.arquillian - wildfly-arquillian-container-embedded + wildfly-arquillian-container-managed 2.1.0.Final test @@ -451,7 +447,6 @@ org.jboss.logmanager.LogManager ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final - ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/modules wildfly10 false diff --git a/restcomm/restcomm.ussd/pom.xml b/restcomm/restcomm.ussd/pom.xml index d4ffb907fe..57d77abc08 100644 --- a/restcomm/restcomm.ussd/pom.xml +++ b/restcomm/restcomm.ussd/pom.xml @@ -99,7 +99,6 @@ org.mobicents.servlet.sip sip-servlets-spec - ${sipservletapi.version} provided From 5060db65dbda4c8df3beca877055b7ac3c547969 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 18:46:29 -0400 Subject: [PATCH 31/44] setting msc threads to 1 --- restcomm/restcomm.testsuite/src/test/resources/arquillian.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml index e92fe0b978..53c4758f9f 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -8,9 +8,10 @@ + 9990 true standalone-sip.xml - -Dserver-config=${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/standalone/configuration/standalone-sip.xml + -Dorg.jboss.server.bootstrap.maxThreads=1 -Dserver-config=${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/standalone/configuration/standalone-sip.xml From c96d1cfa64be1e94ebd3461010865d10eef0fdaa Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Mon, 9 Apr 2018 18:47:11 -0400 Subject: [PATCH 32/44] using embedded --- restcomm/restcomm.testsuite/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 91eea1bb97..bbde2b9025 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -169,7 +169,7 @@ org.wildfly.arquillian - wildfly-arquillian-container-managed + wildfly-arquillian-container-embedded 2.1.0.Final test From 356719407e9af7f442e4c496b4bf1411eac047fd Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 10 Apr 2018 08:07:12 -0400 Subject: [PATCH 33/44] using local sipstacktool --- .../testsuite/telephony/DialActionOrganizationTest.java | 4 ++-- .../testsuite/telephony/ImsClientsDialAnswerDelayTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 80c0eae227..ba355c0367 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 @@ -60,7 +60,6 @@ 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; @@ -104,6 +103,7 @@ import static org.mockito.Mockito.when; import org.restcomm.connect.commons.annotations.SequentialClassTests; import org.restcomm.connect.commons.annotations.WithInMinsTests; +import org.restcomm.connect.testsuite.SipStackTool; /** * Test for Dial Action attribute for organization @@ -761,7 +761,7 @@ public void testClientsCallEachOtherSameOrganization() throws ParseException, In logger.info("&&&&& LiveCallsArraySize: "+liveCallsArraySize); assertEquals(0, liveCalls); assertEquals(0,liveCallsArraySize); - + } 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..ac5f1c6e22 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 @@ -40,7 +40,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; @@ -67,6 +66,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; /** From 9a9ba90f427f1f6cd9bddc8fcccbff9567bd20a1 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 10 Apr 2018 08:14:49 -0400 Subject: [PATCH 34/44] using local sipstacktool --- .../telephony/ImsClientsDialAnswerDelayCancelTest.java | 2 +- .../connect/testsuite/telephony/ImsClientsDialTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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..c2863df3b4 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; 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..b297252884 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 @@ -9,7 +9,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; From ca0bb6381e897c82b1f3fe3a7d8646bb7084adcc Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 10 Apr 2018 09:02:57 -0400 Subject: [PATCH 35/44] removed no longer used test class --- .../telephony/DialActionOrganizationTest.java | 1080 ----------------- 1 file changed, 1080 deletions(-) delete mode 100644 restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationTest.java 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 deleted file mode 100644 index ba355c0367..0000000000 --- a/restcomm/restcomm.testsuite/src/test/java/org/restcomm/connect/testsuite/telephony/DialActionOrganizationTest.java +++ /dev/null @@ -1,1080 +0,0 @@ -/* - * 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.telephony; - -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.findAll; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.post; -import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching; -import static org.cafesip.sipunit.SipAssert.assertLastOperationSuccess; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -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; - -import org.apache.log4j.Logger; -import org.cafesip.sipunit.Credential; -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.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; -import org.jboss.arquillian.test.api.ArquillianResource; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.jboss.shrinkwrap.resolver.api.maven.Maven; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; -import org.junit.runner.RunWith; -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.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; -import org.restcomm.connect.testsuite.SipStackTool; - -/** - * Test for Dial Action attribute for organization - * - * @author maria - * - */ -@RunWith(Arquillian.class) -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -@Category(value={WithInMinsTests.class, SequentialClassTests.class}) -public class DialActionOrganizationTest { - - private final static Logger logger = Logger.getLogger(DialActionOrganizationTest.class.getName()); - private static final String TRANSPORT = "udp"; - - private static final String version = Version.getVersion(); - private static final byte[] bytes = new byte[] { 118, 61, 48, 13, 10, 111, 61, 117, 115, 101, 114, 49, 32, 53, 51, 54, 53, - 53, 55, 54, 53, 32, 50, 51, 53, 51, 54, 56, 55, 54, 51, 55, 32, 73, 78, 32, 73, 80, 52, 32, 49, 50, 55, 46, 48, 46, - 48, 46, 49, 13, 10, 115, 61, 45, 13, 10, 99, 61, 73, 78, 32, 73, 80, 52, 32, 49, 50, 55, 46, 48, 46, 48, 46, 49, - 13, 10, 116, 61, 48, 32, 48, 13, 10, 109, 61, 97, 117, 100, 105, 111, 32, 54, 48, 48, 48, 32, 82, 84, 80, 47, 65, - 86, 80, 32, 48, 13, 10, 97, 61, 114, 116, 112, 109, 97, 112, 58, 48, 32, 80, 67, 77, 85, 47, 56, 48, 48, 48, 13, 10 }; - private static final String body = new String(bytes); - - @ArquillianResource - private Deployer deployer; - @ArquillianResource - URL deploymentUrl; - - @GetDeployableContainer - private ContainerManagerTool containerManager; - - @Rule - public WireMockRule wireMockRule = new WireMockRule(8090); // No-args constructor defaults to port 8080 - - private static SipStackTool tool1; - private static SipStackTool tool2; - private static SipStackTool tool3; - private static SipStackTool tool4; - private static SipStackTool tool5; - private static SipStackTool tool6; - private static SipStackTool tool7; - private static SipStackTool tool8; - - private SipStack bobSipStackOrg2; - private SipPhone bobPhoneOrg2; - private String bobContactOrg2 = "sip:bob@org2.restcomm.com"; - - private SipStack bobSipStackOrg3; - private SipPhone bobPhoneOrg3; - private String bobContactOrg3 = "sip:bob@org3.restcomm.com"; - - private SipStack bobSipStackDefaultOrg; - private SipPhone bobPhoneDefaultOrg; - private String bobContactDefaultOrg = "sip:bob@127.0.0.1:5096"; - - // Alice is a Restcomm Client with VoiceURL. This Restcomm Client can register with Restcomm and whatever will dial the RCML - // of the VoiceURL will be executed. Alice belong to organization org2.restcomm.com - private SipStack aliceSipStackOrg2; - private SipPhone alicePhoneOrg2; - private String aliceContactOrg2 = "sip:alice@org2.restcomm.com"; - - // Maria is a Restcomm Client **without** VoiceURL. This Restcomm Client can dial anything. - private SipStack mariaSipStackOrg2; - private SipPhone mariaPhoneOrg2; - private String mariaContactOrg2 = "sip:maria@org2.restcomm.com"; - - // Shoaibs is a Restcomm Client **without** VoiceURL. This Restcomm Client can dial anything. - private SipStack shoaibSipStackOrg2; - private SipPhone shoaibPhoneOrg2; - private String shoaibContactOrg2 = "sip:shoaib@org2.restcomm.com"; - - // pstn is a simple SIP Client. Will not register with Restcomm - private SipStack pstnSipStack; - private SipPhone pstnPhone; - private String pstnContact = "sip:+131313@127.0.0.1:5070"; - - private String clientPassword = "qwerty1234RT"; - - // Alice is a Restcomm Client with VoiceURL. This Restcomm Client can register with Restcomm and whatever will dial the RCML - // of the VoiceURL will be executed. Alice belong to organization: org3.restcomm.com - private SipStack aliceSipStackOrg3; - private SipPhone alicePhoneOrg3; - private String aliceContactOrg3 = "sip:alice@org3.restcomm.com"; - - private String providerNumberOrg2 = "sip:+12223334467@org2.restcomm.com"; // Application: dial-number-entry_wActionUrl.xml - private String pureSipNumberOrg3 = "sip:+12223334467@org3.restcomm.com"; // Application: dial-client-entry_wActionUrl.xml - private String numberWithDefaultDomain = "sip:+12223334467@127.0.0.1:5080"; // Application: dial-client-entry_wActionUrl.xml - private String dialClientWithActionUrlOrg2 = "sip:+12223334455@org2.restcomm.com"; // Application: dial-client-entry_wActionUrl.xml - private String dialClientWithActionUrlOrg3 = "sip:+12223334455@org3.restcomm.com"; // Application: dial-client-entry_wActionUrl.xml of organization: org3.restcomm.com - - private String dialRestcommOrg2 = "sip:1111@org2.restcomm.com"; - private String dialRestcommOrg3 = "sip:1111@org3.restcomm.com"; - private final String confRoom2 = "confRoom2"; - - private String dialConfernceRcml = ""+confRoom2+""; - private String dialNumberRcml = "+131313"; - private String dialSipRcmlOrg2 = "sip:1111@org2.restcomm.com"; - - private String superAdminAccountSid = "ACae6e420f425248d6a26948c17a9e2acf"; - private String adminAccountSidOrg2 = "ACae6e420f425248d6a26948c17a9e2acg"; - private String adminAccountSidOrg3 = "ACae6e420f425248d6a26948c17a9e2ach"; - private String adminAuthToken = "77f8c12cc7b8f8423e5c38b035249166"; - - private static final String HOST_ORG2 = "org2.restcomm.com"; - private static final String HOST_ORG3 = "org3.restcomm.com"; - - @BeforeClass - public static void beforeClass() throws Exception { - tool1 = new SipStackTool("DialActionTest1"); - tool2 = new SipStackTool("DialActionTest2"); - tool3 = new SipStackTool("DialActionTest3"); - tool4 = new SipStackTool("DialActionTest4"); - tool5 = new SipStackTool("DialActionTest5"); - tool6 = new SipStackTool("DialActionTest6"); - tool7 = new SipStackTool("DialActionTest7"); - tool8 = new SipStackTool("DialActionTest8"); - } - - @Before - public void before() throws Exception { - bobSipStackOrg2 = tool1.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5090", "127.0.0.1:5080"); - bobPhoneOrg2 = bobSipStackOrg2.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, bobContactOrg2); - - aliceSipStackOrg2 = tool2.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5091", "127.0.0.1:5080"); - alicePhoneOrg2 = aliceSipStackOrg2.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, aliceContactOrg2); - - bobSipStackOrg3 = tool3.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5092", "127.0.0.1:5080"); - bobPhoneOrg3 = bobSipStackOrg3.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, bobContactOrg3); - - mariaSipStackOrg2 = tool5.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5093", "127.0.0.1:5080"); - mariaPhoneOrg2 = mariaSipStackOrg2.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, mariaContactOrg2); - - shoaibSipStackOrg2 = tool6.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5094", "127.0.0.1:5080"); - shoaibPhoneOrg2 = shoaibSipStackOrg2.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, shoaibContactOrg2); - - aliceSipStackOrg3 = tool7.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5095", "127.0.0.1:5080"); - alicePhoneOrg3 = aliceSipStackOrg3.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, aliceContactOrg3); - - bobSipStackDefaultOrg = tool4.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5096", "127.0.0.1:5080"); - bobPhoneDefaultOrg = bobSipStackDefaultOrg.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, bobContactDefaultOrg); - - pstnSipStack = tool8.initializeSipStack(SipStack.PROTOCOL_UDP, "127.0.0.1", "5070", "127.0.0.1:5080"); - pstnPhone = pstnSipStack.createSipPhone("127.0.0.1", SipStack.PROTOCOL_UDP, 5080, pstnContact); - - } - - 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 { - - stubFor(get(urlPathEqualTo("/1111")) - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withBody(dialNumberRcml))); - - SipURI uri = bobSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg2.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5090", 3600, 3600)); - Credential c = new Credential("org2.restcomm.com", "bob", clientPassword); - bobPhoneOrg2.addUpdateCredential(c); - - //prepare pstn phone to receive call - SipCall pstnCall = pstnPhone.createSipCall(); - pstnCall.listenForIncomingCall(); - - // Create outgoing call with first phone - final SipCall bobCallOrg2 = bobPhoneOrg2.createSipCall(); - bobCallOrg2.initiateOutgoingCall(bobContactOrg2, dialRestcommOrg2, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg2); - assertTrue(bobCallOrg2.waitForAuthorisation(3000)); - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - final int response = bobCallOrg2.getLastReceivedResponse().getStatusCode(); - assertTrue(response == Response.TRYING || response == Response.RINGING); - - if (response == Response.TRYING) { - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.RINGING, bobCallOrg2.getLastReceivedResponse().getStatusCode()); - } - - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, bobCallOrg2.getLastReceivedResponse().getStatusCode()); - assertTrue(bobCallOrg2.sendInviteOkAck()); - - assertTrue(pstnCall.waitForIncomingCall(5000)); - assertTrue(pstnCall.sendIncomingCallResponse(Response.TRYING, "George-Trying", 3600)); - assertTrue(pstnCall.sendIncomingCallResponse(Response.RINGING, "George-Ringing", 3600)); - String receivedBody = new String(pstnCall.getLastReceivedRequest().getRawContent()); - assertTrue(pstnCall.sendIncomingCallResponse(Response.OK, "George-OK", 3600, receivedBody, "application", "sdp", - null, null)); - assertTrue(pstnCall.waitForAck(5000)); - - assertTrue(MonitoringServiceTool.getInstance().getStatistics(deploymentUrl.toString(),adminAccountSidOrg2, adminAuthToken)==2); - assertTrue(MonitoringServiceTool.getInstance().getLiveIncomingCallStatistics(deploymentUrl.toString(),adminAccountSidOrg2, adminAuthToken)==1); - assertTrue(MonitoringServiceTool.getInstance().getLiveOutgoingCallStatistics(deploymentUrl.toString(),adminAccountSidOrg2, adminAuthToken)==1); - assertTrue(MonitoringServiceTool.getInstance().getLiveCallsArraySize(deploymentUrl.toString(),adminAccountSidOrg2, adminAuthToken)==2); - - Thread.sleep(3000); - bobCallOrg2.listenForDisconnect(); - - assertTrue(pstnCall.disconnect()); - Thread.sleep(500); - assertTrue(bobCallOrg2.waitForDisconnect(5000)); - assertTrue(bobCallOrg2.respondToDisconnect()); - - Thread.sleep(10000); - - logger.info("About to check the Requests"); - List requests = findAll(getRequestedFor(urlPathMatching("/1111"))); - assertEquals(1, requests.size()); - // requests.get(0).g; - String requestBody = new URL(requests.get(0).getAbsoluteUrl()).getQuery();// .getQuery();// .getBodyAsString(); - List params = Arrays.asList(requestBody.split("&")); - String callSid = ""; - for (String param : params) { - if (param.contains("CallSid")) { - callSid = param.split("=")[1]; - } - } - JsonObject cdr = RestcommCallsTool.getInstance().getCall(deploymentUrl.toString(), adminAccountSidOrg2, adminAuthToken, callSid); - JsonObject jsonObj = cdr.getAsJsonObject(); - assertTrue(jsonObj.get("status").getAsString().equalsIgnoreCase("completed")); - assertEquals(0, MonitoringServiceTool.getInstance().getStatistics(deploymentUrl.toString(),adminAccountSidOrg2, adminAuthToken)); - assertEquals(0, MonitoringServiceTool.getInstance().getLiveCallsArraySize(deploymentUrl.toString(),adminAccountSidOrg2, adminAuthToken)); - } - - /** - * testDialNumberExistingInMultipleOrganization: - * - * given we have 5 clients: - * 1. alice @ org2. - * 2. alice @ org3. - * 3. bob @ org2. - * 4. bob @ org3. - * 5. alice @ defaultOrg. - * - * we have 2 number: - * +12223334467@org2.restcomm.com is provider number and mapped on dial action to call alice@org2. - * +12223334467@org3.restcomm.com is pure sip number and mapped on dial action to call alice@org3. - * - * test case 1: bob@org2 created INVITE - sip:+12223334467@org3.restcomm.com -> call should NOT go to alice@org3 (bcz 12223334467@org3.restcomm.com is pure sip) - instead call should FAIL - * test case 2: bob@org2 created INVITE - sip:+12223334467@default.restcomm.com -> call should NOT go to alice@org2 (bcz number does not exist in default.restcomm.com) - so call should FAIL - * test case 3: bob@org3 created INVITE - sip:+12223334467@org2.restcomm.com(a conference in org2) -> able to join conference (bcz 12223334467@org2.restcomm.com is provider number) - * @throws ParseException - * @throws InterruptedException - * @throws UnknownHostException - */ - @Test - public void testDialNumberExistingInMultipleOrganizationCase1() throws ParseException, InterruptedException, UnknownHostException { - stubFor(post(urlPathMatching("/DialAction.*")) - .willReturn(aResponse() - .withStatus(200))); - /* - * test case 1 - bob@org2 created INVITE - sip:+12223334467@org3.restcomm.com -> call should NOT go to alice@org3 (bcz 12223334467@org3.restcomm.com is pure sip) - instead call should FAIL - */ - - SipURI uri = bobSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg2.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5090", 3600, 3600)); - Credential c = new Credential("org3.restcomm.com", "bob", clientPassword); - bobPhoneOrg2.addUpdateCredential(c); - - //register as alice@org2.restcomm.com - uri = aliceSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(alicePhoneOrg2.register(uri, "alice", "1234", "sip:alice@127.0.0.1:5091", 3600, 3600)); - SipCall aliceCallOrg2 = alicePhoneOrg2.createSipCall(); - aliceCallOrg2.listenForIncomingCall(); - - // bob@org2.restcomm.com - dials a pure sip number in org3. - final SipCall bobCallOrg2 = bobPhoneOrg2.createSipCall(); - bobCallOrg2.initiateOutgoingCall(bobContactOrg2, pureSipNumberOrg3, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg2); - assertTrue(bobCallOrg2.waitForAuthorisation(3000)); - - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - final int response = bobCallOrg2.getLastReceivedResponse().getStatusCode(); - logger.info("bobCallOrg2 response: "+response); - assertEquals(Response.NOT_FOUND, response); - } - - /** - * testDialNumberExistingInMultipleOrganization: - * - * given we have 5 clients: - * 1. alice @ org2. - * 2. alice @ org3. - * 3. bob @ org2. - * 4. bob @ org3. - * 5. alice @ defaultOrg. - * - * we have 2 number: - * +12223334467@org2.restcomm.com is provider number and mapped on dial action to call alice@org2. - * +12223334467@org3.restcomm.com is pure sip number and mapped on dial action to call alice@org3. - * - * test case 1: bob@org2 created INVITE - sip:+12223334467@org3.restcomm.com -> call should NOT go to alice@org3 (bcz 12223334467@org3.restcomm.com is pure sip) - instead call should FAIL - * test case 2: bob@org2 created INVITE - sip:+12223334467@default.restcomm.com -> call should FAIL (bcz defaulOrg does not have that number) - * test case 3: bob@org3 created INVITE - sip:+12223334467@org2.restcomm.com(a conference in org2) -> able to join conference (bcz 12223334467@org2.restcomm.com is provider number) - * @throws ParseException - * @throws InterruptedException - * @throws UnknownHostException - */ - @Test - public void testDialNumberExistingInMultipleOrganizationCase2() throws ParseException, InterruptedException, UnknownHostException { - stubFor(post(urlPathMatching("/DialAction.*")) - .willReturn(aResponse() - .withStatus(200))); - /* - * test case 2: bob@org2 created INVITE - sip:+12223334467@default.restcomm.com -> call should FAIL (bcz defaulOrg does not have that number) - */ - - SipURI uri = bobSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg2.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5090", 3600, 3600)); - Credential c = new Credential("127.0.0.1", "bob", clientPassword); - bobPhoneOrg2.addUpdateCredential(c); - - //register as alice@org2.restcomm.com - uri = aliceSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(alicePhoneOrg2.register(uri, "alice", "1234", "sip:alice@127.0.0.1:5091", 3600, 3600)); - SipCall aliceCallOrg2 = alicePhoneOrg2.createSipCall(); - aliceCallOrg2.listenForIncomingCall(); - - // bob@org2.restcomm.com - dials a pure sip number in org3. - final SipCall bobCallOrg2 = bobPhoneOrg2.createSipCall(); - bobCallOrg2.initiateOutgoingCall(bobContactOrg2, numberWithDefaultDomain, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg2); - assertTrue(bobCallOrg2.waitForAuthorisation(3000)); - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - final int response = bobCallOrg2.getLastReceivedResponse().getStatusCode(); - logger.info("bobCallOrg2 response: "+response); - assertEquals(Response.NOT_FOUND, response); - } - - /** - * testDialNumberExistingInMultipleOrganization: - * - * given we have 5 clients: - * 1. alice @ org2. - * 2. alice @ org3. - * 3. bob @ org2. - * 4. bob @ org3. - * 5. alice @ defaultOrg. - * - * we have 2 number: - * +12223334467@org2.restcomm.com is provider number and mapped on dial action to call alice@org2. - * +12223334467@org3.restcomm.com is pure sip number and mapped on dial action to call alice@org3. - * - * test case 1: bob@org2 created INVITE - sip:+12223334467@org3.restcomm.com -> call should NOT go to alice@org3 (bcz 12223334467@org3.restcomm.com is pure sip) - instead call should FAIL - * test case 2: bob@org2 created INVITE - sip:+12223334467@default.restcomm.com -> call should FAIL (bcz defaulOrg does not have that number) - * test case 3: bob@org3 created INVITE - sip:+12223334467@org2.restcomm.com(a conference in org2) -> able to join conference (bcz 12223334467@org2.restcomm.com is provider number) - * @throws ParseException - * @throws InterruptedException - * @throws UnknownHostException - */ - @Test - public void testDialNumberExistingInMultipleOrganizationJoinConferenceOfDifferentOrgCase3() throws ParseException, InterruptedException, UnknownHostException { - stubFor(get(urlPathEqualTo("/1111")) - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withBody(dialConfernceRcml))); - /* - * test case 3: bob@org3 created INVITE - sip:+12223334467@org2.restcomm.com(a conference in org2) -> able to join conference (bcz 12223334467@org2.restcomm.com is provider number) - */ - - //bob@org3 joins conference via sip:+12223334467@org2.restcomm.com - - 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("org2.restcomm.com", "bob", clientPassword); - bobPhoneOrg3.addUpdateCredential(c); - - final SipCall bobCallOrg3 = bobPhoneOrg3.createSipCall(); - bobCallOrg3.initiateOutgoingCall(bobContactOrg3, dialRestcommOrg2, 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)); - - //bob@org2 joins conference via sip:+12223334467@org2.restcomm.com - - uri = bobSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg2.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5090", 3600, 3600)); - c = new Credential("org2.restcomm.com", "bob", clientPassword); - bobPhoneOrg2.addUpdateCredential(c); - - final SipCall bobCallOrg2 = bobPhoneOrg2.createSipCall(); - bobCallOrg2.initiateOutgoingCall(bobContactOrg2, dialRestcommOrg2, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg2); - assertTrue(bobCallOrg2.waitForAuthorisation(3000)); - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - int responseBobOrg2 = bobCallOrg2.getLastReceivedResponse().getStatusCode(); - assertTrue(responseBobOrg2 == Response.TRYING || responseBobOrg2 == Response.RINGING); - - if (responseBobOrg2 == Response.TRYING) { - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.RINGING, bobCallOrg2.getLastReceivedResponse().getStatusCode()); - } - - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, bobCallOrg2.getLastReceivedResponse().getStatusCode()); - bobCallOrg2.sendInviteOkAck(); - assertTrue(!(bobCallOrg2.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); - assertTrue(getConferencesSize(adminAccountSidOrg2)>=1); - int numOfParticipants = getParticipantsSize(confRoom2, adminAccountSidOrg2); - logger.info("Number of participants: "+numOfParticipants); - assertTrue(numOfParticipants==2); - - Thread.sleep(3000); - - bobCallOrg3.disconnect(); - bobCallOrg2.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); - assertTrue(getConferencesSize(adminAccountSidOrg2)>=1); - int confRoom2Participants = getParticipantsSize(confRoom2, adminAccountSidOrg2); - logger.info("&&&&& ConfRoom2Participants: "+confRoom2Participants); - assertEquals(0, confRoom2Participants); - } - - private int getConferencesSize(String accountSid) { - JsonObject conferences = RestcommConferenceTool.getInstance().getConferences(deploymentUrl.toString(),accountSid, adminAuthToken); - JsonArray conferenceArray = conferences.getAsJsonArray("conferences"); - return conferenceArray.size(); - } - - private int getParticipantsSize(final String name, String accountSid) { - JsonObject conferences = RestcommConferenceTool.getInstance().getConferences(deploymentUrl.toString(),accountSid, adminAuthToken); - JsonArray conferenceArray = conferences.getAsJsonArray("conferences"); - String confSid = null; - for(int i = 0; i < conferenceArray.size(); i++) { - JsonObject confObj = conferenceArray.get(i).getAsJsonObject(); - String confName = confObj.get("friendly_name").getAsString(); - if (confName.equalsIgnoreCase(name)) { - confSid = confObj.get("sid").getAsString(); - break; - } - } - JsonObject participants = RestcommConferenceParticipantsTool.getInstance().getParticipants(deploymentUrl.toString(), accountSid, adminAuthToken, confSid); - JsonArray participantsArray = participants.getAsJsonArray("calls"); - return participantsArray.size(); - } - - /** - * testClientsCallEachOtherSameOrganization - * given clients: - * - * maria belongs to org: org2.restcomm.com - * shoaib belong to org: org2.restcomm.com - * - * test case: maria calls shoaib. - * - * result: call goes through - * - * @throws ParseException - * @throws InterruptedException - */ - @Test - public void testClientsCallEachOtherSameOrganization() throws ParseException, InterruptedException { - - SipURI uri = mariaSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(mariaPhoneOrg2.register(uri, "maria", clientPassword, "sip:maria@127.0.0.1:5093", 3600, 3600)); - assertTrue(shoaibPhoneOrg2.register(uri, "shoaib", clientPassword, "sip:shoaib@127.0.0.1:5094", 3600, 3600)); - - Credential c = new Credential("org2.restcomm.com", "maria", clientPassword); - mariaPhoneOrg2.addUpdateCredential(c); - - final SipCall shoaibCall = shoaibPhoneOrg2.createSipCall(); - shoaibCall.listenForIncomingCall(); - - Thread.sleep(1000); - - // Maria initiates a call to Shoaib - final SipCall mariaCall = mariaPhoneOrg2.createSipCall(); - mariaCall.initiateOutgoingCall(mariaContactOrg2, shoaibContactOrg2, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(mariaCall); - assertTrue(mariaCall.waitForAuthorisation(3000)); - - assertTrue(shoaibCall.waitForIncomingCall(5000)); - assertTrue(shoaibCall.sendIncomingCallResponse(100, "Trying-Shoaib", 1800)); - assertTrue(shoaibCall.sendIncomingCallResponse(180, "Ringing-Shoaib", 1800)); - String receivedBody = new String(shoaibCall.getLastReceivedRequest().getRawContent()); - assertTrue(shoaibCall.sendIncomingCallResponse(Response.OK, "OK-Shoaib", 3600, receivedBody, "application", "sdp", null, - null)); - - assertTrue(mariaCall.waitOutgoingCallResponse(5 * 1000)); - int responseMaria = mariaCall.getLastReceivedResponse().getStatusCode(); - assertTrue(responseMaria == Response.TRYING || responseMaria == Response.RINGING); - - Dialog mariaDialog = null; - - if (responseMaria == Response.TRYING) { - assertTrue(mariaCall.waitOutgoingCallResponse(5 * 4000)); - assertEquals(Response.RINGING, mariaCall.getLastReceivedResponse().getStatusCode()); - mariaDialog = mariaCall.getDialog(); - } - - assertTrue(mariaCall.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, mariaCall.getLastReceivedResponse().getStatusCode()); - assertTrue(mariaCall.getDialog().equals(mariaDialog)); - mariaCall.sendInviteOkAck(); - assertTrue(mariaCall.getDialog().equals(mariaDialog)); - - assertTrue(!(mariaCall.getLastReceivedResponse().getStatusCode() >= 400)); - - assertTrue(shoaibCall.waitForAck(3000)); - - //Talk time ~ 3sec - Thread.sleep(3000); - shoaibCall.listenForDisconnect(); - assertTrue(mariaCall.disconnect()); - - assertTrue(shoaibCall.waitForDisconnect(5 * 1000)); - assertTrue(shoaibCall.respondToDisconnect()); - - Thread.sleep(5000); - - //Check live calls - 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(0, liveCalls); - assertEquals(0,liveCallsArraySize); - - - } - - /** - * testClientsCallEachOtherDifferentOrganization - * given clients: - * - * maria belongs to org: org2.restcomm.com - * alice belong to org: org3.restcomm.com - * - * test case: maria calls alice. - * - * result: call do not go through - * - * @throws ParseException - * @throws InterruptedException - */ - @Test - public void testClientsCallEachOtherDifferentOrganization() throws ParseException, InterruptedException { - - SipURI uri = mariaSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(mariaPhoneOrg2.register(uri, "maria", clientPassword, "sip:maria@127.0.0.1:5093", 3600, 3600)); - assertTrue(alicePhoneOrg3.register(uri, "alice", "1234", "sip:alice@127.0.0.1:5095", 3600, 3600)); - //following realm is a cheat/hack to get through authorization and test organization related p2p logic. - Credential c = new Credential("org3.restcomm.com", "maria", clientPassword); - mariaPhoneOrg2.addUpdateCredential(c); - - final SipCall aliceCallOrg3 = alicePhoneOrg3.createSipCall(); - aliceCallOrg3.listenForIncomingCall(); - - Thread.sleep(1000); - - // Maria initiates a call to Alice - long startTime = System.currentTimeMillis(); - final SipCall mariaCall = mariaPhoneOrg2.createSipCall(); - mariaCall.initiateOutgoingCall(mariaContactOrg2, aliceContactOrg3, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(mariaCall); - assertTrue(mariaCall.waitForAuthorisation(3000)); - - //alice should not get the call - assertTrue(!aliceCallOrg3.waitForIncomingCall(5000)); - } - - /** - * testDialActionAliceAnswers: - * given: - * clients: - * bob@org2, alice@org2. - * - * given numbers: - * 12223334455@org2 - * 12223334455@org3 - * - * test case: bob@org2 INVITE 12223334455@org2 - * result: call goes to alice@org2. - * - * @throws ParseException - * @throws InterruptedException - * @throws UnknownHostException - */ - @Test - public void testDialActionDialClient() throws ParseException, InterruptedException, UnknownHostException { - - stubFor(post(urlPathMatching("/DialAction.*")) - .willReturn(aResponse() - .withStatus(200))); - - SipURI uri = bobSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg2.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5090", 3600, 3600)); - Credential c = new Credential("org2.restcomm.com", "bob", clientPassword); - bobPhoneOrg2.addUpdateCredential(c); - - //register as alice@org2 - uri = aliceSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(alicePhoneOrg2.register(uri, "alice", "1234", "sip:alice@127.0.0.1:5091", 3600, 3600)); - // Prepare alice's phone to receive call - SipCall aliceCall = alicePhoneOrg2.createSipCall(); - aliceCall.listenForIncomingCall(); - - // Create outgoing call with bob@org - final SipCall bobCall = bobPhoneOrg2.createSipCall(); - bobCall.initiateOutgoingCall(bobContactOrg2, dialClientWithActionUrlOrg2, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCall); - assertTrue(bobCall.waitForAuthorisation(3000)); - assertTrue(bobCall.waitOutgoingCallResponse(5 * 1000)); - final int response = bobCall.getLastReceivedResponse().getStatusCode(); - assertTrue(response == Response.TRYING || response == Response.RINGING); - - if (response == Response.TRYING) { - assertTrue(bobCall.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.RINGING, bobCall.getLastReceivedResponse().getStatusCode()); - } - - assertTrue(bobCall.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, bobCall.getLastReceivedResponse().getStatusCode()); - - bobCall.sendInviteOkAck(); - assertTrue(!(bobCall.getLastReceivedResponse().getStatusCode() >= 400)); - - assertTrue(aliceCall.waitForIncomingCall(30 * 1000)); - assertTrue(aliceCall.sendIncomingCallResponse(Response.RINGING, "Ringing-Alice", 3600)); - String receivedBody = new String(aliceCall.getLastReceivedRequest().getRawContent()); - assertTrue(aliceCall.sendIncomingCallResponse(Response.OK, "OK-Alice", 3600, receivedBody, "application", "sdp", null, - null)); - assertTrue(aliceCall.waitForAck(50 * 1000)); - - Thread.sleep(3000); - - // hangup. - aliceCall.disconnect(); - - bobCall.listenForDisconnect(); - assertTrue(bobCall.waitForDisconnect(30 * 1000)); - assertTrue(bobCall.respondToDisconnect()); - try { - Thread.sleep(50 * 1000); - } catch (final InterruptedException exception) { - exception.printStackTrace(); - } - - Thread.sleep(3000); - - logger.info("About to check the DialAction Requests"); - List requests = findAll(postRequestedFor(urlPathMatching("/DialAction.*"))); - assertEquals(1, requests.size()); - String requestBody = requests.get(0).getBodyAsString(); - String[] params = requestBody.split("&"); - assertTrue(requestBody.contains("DialCallStatus=completed")); - assertTrue(requestBody.contains("To=%2B12223334455")); - assertTrue(requestBody.contains("From=bob")); - assertTrue(requestBody.contains("DialCallDuration=3")); - Iterator iter = Arrays.asList(params).iterator(); - String dialCallSid = null; - while (iter.hasNext()) { - String param = (String) iter.next(); - if (param.startsWith("DialCallSid")) { - dialCallSid = param.split("=")[1]; - break; - } - } - assertNotNull(dialCallSid); - JsonObject cdr = RestcommCallsTool.getInstance().getCall(deploymentUrl.toString(), adminAccountSidOrg2, adminAuthToken, dialCallSid); - assertNotNull(cdr); - } - - - /** - * testDialActionHangupWithLCM: - * given: - * clients: - * bob@org2, alice@org2. - * - * given numbers: - * 12223334455@org2 - * 12223334455@org3 - * - * test case1: bob@org2 INVITE 12223334455@org2 - * result: call goes to alice@org2. - * - * test case2: hangup using LCM - * result: call completes - * - * @throws ParseException - * @throws InterruptedException - * @throws UnknownHostException - */ - @Test - public void testDialActionHangupWithLCM() throws Exception { - - stubFor(post(urlPathMatching("/DialAction.*")) - .willReturn(aResponse() - .withStatus(200))); - - SipURI uri = bobSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(bobPhoneOrg2.register(uri, "bob", clientPassword, "sip:bob@127.0.0.1:5090", 3600, 3600)); - Credential c = new Credential("org2.restcomm.com", "bob", clientPassword); - bobPhoneOrg2.addUpdateCredential(c); - - // Phone2 register as alice - uri = aliceSipStackOrg2.getAddressFactory().createSipURI(null, "127.0.0.1:5080"); - assertTrue(alicePhoneOrg2.register(uri, "alice", "1234", "sip:alice@127.0.0.1:5091", 3600, 3600)); - - // Prepare second phone to receive call - SipCall aliceCallOrg2 = alicePhoneOrg2.createSipCall(); - aliceCallOrg2.listenForIncomingCall(); - - // Create outgoing call with first phone - final SipCall bobCallOrg2 = bobPhoneOrg2.createSipCall(); - bobCallOrg2.initiateOutgoingCall(bobContactOrg2, dialClientWithActionUrlOrg2, null, body, "application", "sdp", null, null); - assertLastOperationSuccess(bobCallOrg2); - assertTrue(bobCallOrg2.waitForAuthorisation(3000)); - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - final int response = bobCallOrg2.getLastReceivedResponse().getStatusCode(); - assertTrue(response == Response.TRYING || response == Response.RINGING); - - if (response == Response.TRYING) { - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.RINGING, bobCallOrg2.getLastReceivedResponse().getStatusCode()); - } - - assertTrue(bobCallOrg2.waitOutgoingCallResponse(5 * 1000)); - assertEquals(Response.OK, bobCallOrg2.getLastReceivedResponse().getStatusCode()); - - String callSid = bobCallOrg2.getLastReceivedResponse().getMessage().getHeader("X-RestComm-CallSid").toString().split(":")[1].trim(); - - bobCallOrg2.sendInviteOkAck(); - assertTrue(!(bobCallOrg2.getLastReceivedResponse().getStatusCode() >= 400)); - bobCallOrg2.listenForDisconnect(); - - assertTrue(aliceCallOrg2.waitForIncomingCall(30 * 1000)); - aliceCallOrg2.listenForCancel(); - - logger.info("About to execute LCM to hangup the call"); - RestcommCallsTool.getInstance().modifyCall(deploymentUrl.toString(),adminAccountSidOrg2,adminAuthToken,callSid,"completed", null); - - assertTrue(bobCallOrg2.waitForDisconnect(50 * 1000)); - assertTrue(bobCallOrg2.respondToDisconnect()); - - Thread.sleep(10 * 1000); - - logger.info("About to check the DialAction Requests"); - List requests = findAll(postRequestedFor(urlPathMatching("/DialAction.*"))); - assertEquals(1, requests.size()); - String requestBody = requests.get(0).getBodyAsString(); - logger.info("DialAction requestBody: "+requestBody); - String[] params = requestBody.split("&"); - assertTrue(requestBody.contains("DialCallStatus=completed")); - assertTrue(requestBody.contains("To=%2B12223334455")); - assertTrue(requestBody.contains("From=bob")); - assertTrue(requestBody.contains("DialCallDuration=0")); - assertTrue(requestBody.contains("CallStatus=completed")); - Iterator iter = Arrays.asList(params).iterator(); - } - - @After - public void after() throws Exception { - if (bobPhoneOrg2 != null) { - bobPhoneOrg2.dispose(); - } - if (bobSipStackOrg2 != null) { - bobSipStackOrg2.dispose(); - } - if (bobPhoneOrg3 != null) { - bobPhoneOrg3.dispose(); - } - if (bobSipStackOrg3 != null) { - bobSipStackOrg3.dispose(); - } - if (bobPhoneDefaultOrg != null) { - bobPhoneDefaultOrg.dispose(); - } - if (bobSipStackDefaultOrg != null) { - bobSipStackDefaultOrg.dispose(); - } - if (mariaPhoneOrg2 != null) { - mariaPhoneOrg2.dispose(); - } - if (mariaSipStackOrg2 != null) { - mariaSipStackOrg2.dispose(); - } - - if (aliceSipStackOrg2 != null) { - aliceSipStackOrg2.dispose(); - } - if (alicePhoneOrg2 != null) { - alicePhoneOrg2.dispose(); - } - - if (aliceSipStackOrg3 != null) { - aliceSipStackOrg3.dispose(); - } - if (alicePhoneOrg3 != null) { - alicePhoneOrg3.dispose(); - } - - if (shoaibSipStackOrg2 != null) { - shoaibSipStackOrg2.dispose(); - } - if (shoaibPhoneOrg2 != null) { - shoaibPhoneOrg2.dispose(); - } - - if (pstnSipStack != null) { - pstnSipStack.dispose(); - } - if (pstnPhone != null) { - pstnPhone.dispose(); - } - - Thread.sleep(1000); - wireMockRule.resetRequests(); - Thread.sleep(4000); - } - - @Deployment(name = "DialAction", managed = true, testable = false) - public static WebArchive createWebArchiveNoGw() { - logger.info("Packaging Test App"); - WebArchive archive = ShrinkWrap.create(WebArchive.class, "restcomm.war"); - final WebArchive restcommArchive = Maven.resolver() - .resolve("org.restcomm:restcomm-connect.application:war:" + version).withoutTransitivity() - .asSingle(WebArchive.class); - archive = archive.merge(restcommArchive); - archive.delete("/WEB-INF/sip.xml"); -archive.delete("/WEB-INF/web.xml"); - archive.delete("/WEB-INF/conf/restcomm.xml"); - archive.delete("/WEB-INF/data/hsql/restcomm.script"); - archive.addAsWebInfResource("sip.xml"); - archive.addAsWebInfResource("web.xml"); - archive.addAsWebInfResource("restcomm.xml", "conf/restcomm.xml"); - archive.addAsWebInfResource("restcomm.script_dialActionTest", "data/hsql/restcomm.script"); - archive.addAsWebResource("dial-client-entry_wActionUrl.xml"); - logger.info("Packaged Test App"); - return archive; - } - -} From 86a492c82a0ab164de0f82e99a370130aad1e5a5 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 10 Apr 2018 09:03:29 -0400 Subject: [PATCH 36/44] created managed profile, working locally --- .../src/test/resources/arquillian.xml | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml index 53c4758f9f..78053dad40 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -3,17 +3,26 @@ xmlns="http://jboss.org/schema/arquillian" xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> - - target/deployments - - + + target/deployments + + + false + true + standalone-sip.xml + + + + + + localhost 9990 true standalone-sip.xml - -Dorg.jboss.server.bootstrap.maxThreads=1 -Dserver-config=${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/standalone/configuration/standalone-sip.xml + -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y -Dorg.jboss.server.bootstrap.maxThreads=1 - + From e4ab0aae7b587fe3bc6ae785945a6020601d3db1 Mon Sep 17 00:00:00 2001 From: Jaime Casero Date: Tue, 10 Apr 2018 09:10:00 -0400 Subject: [PATCH 37/44] working with managed arq cont --- restcomm/restcomm.testsuite/pom.xml | 80 ++++++++++++++--------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index bbde2b9025..2584771eda 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -127,49 +127,49 @@ - 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 + ${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-archive + ${shrinkwrap.resolver.version} + compile - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven-archive - ${shrinkwrap.resolver.version} - compile + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-impl-maven-archive + ${shrinkwrap.resolver.version} + compile - org.mobicents.sipunit - sipunit - compile + org.mobicents.sipunit + sipunit + compile org.wildfly.arquillian - wildfly-arquillian-container-embedded + wildfly-arquillian-container-managed 2.1.0.Final test @@ -338,17 +338,17 @@ test - - org.restcomm - restcomm-connect.monitoring.service - ${project.version} - test - + + org.restcomm + restcomm-connect.monitoring.service + ${project.version} + test + - - org.restcomm.smpp - smpp-extensions - + + org.restcomm.smpp + smpp-extensions + @@ -377,7 +377,7 @@ - + maven-compiler-plugin @@ -442,12 +442,12 @@ 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-3.2.0-89-wildfly-10.0.0.Final - wildfly10 + org.jboss.logmanager.LogManager + ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final + wildfly10-managed false From eb57ad1f47d73d473d98f3e242d66ec6224066fa Mon Sep 17 00:00:00 2001 From: George Vagenas Date: Thu, 12 Apr 2018 17:26:43 +0300 Subject: [PATCH 38/44] Fix for javax.ws.rs dependency --- restcomm/pom.xml | 20 +++++++++---------- restcomm/restcomm.extension.api/pom.xml | 12 +++++------ .../restcomm.extension.controller/pom.xml | 12 +++++------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 8b36d15d37..7f6763087e 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -135,7 +135,7 @@ Therefore we set this empty property here--> - + restcomm.application restcomm.commons restcomm.dao @@ -174,7 +174,7 @@ restcomm.monitoring.service restcomm.tts.awspolly restcomm.sdr.api - restcomm-connect.core + restcomm-connect.core @@ -304,9 +304,9 @@ org.mobicents.servlet.sip sip-servlets-client - ${sipservletapi.version} + ${sipservletapi.version} provided - + @@ -322,12 +322,12 @@ shiro-web ${shiroweb.version} - + javax.ws.rs - javax.ws.rs + jsr311-api 1.0 - + com.sun.jersey @@ -562,7 +562,7 @@ ${sipservletapi.version} test - + org.hsqldb hsqldb @@ -772,7 +772,7 @@ org.apache.maven.plugins maven-checkstyle-plugin ${checkstyle.plugin.version} - + @@ -789,7 +789,7 @@ restcomm.testsuite - + set-git-hash diff --git a/restcomm/restcomm.extension.api/pom.xml b/restcomm/restcomm.extension.api/pom.xml index dc0a2ca31a..c805c09c24 100644 --- a/restcomm/restcomm.extension.api/pom.xml +++ b/restcomm/restcomm.extension.api/pom.xml @@ -19,12 +19,12 @@ - + javax.ws.rs - javax.ws.rs + jsr311-api provided - + joda-time @@ -38,12 +38,12 @@ ${project.version} provided - + javax.servlet javax.servlet-api provided - - + + diff --git a/restcomm/restcomm.extension.controller/pom.xml b/restcomm/restcomm.extension.controller/pom.xml index 2292f7b996..014ea363ea 100644 --- a/restcomm/restcomm.extension.controller/pom.xml +++ b/restcomm/restcomm.extension.controller/pom.xml @@ -46,8 +46,8 @@ ${sipservletapi.version} provided - - + + org.restcomm restcomm-connect.dao @@ -66,13 +66,13 @@ javax.servlet javax.servlet-api provided - - + + javax.ws.rs - javax.ws.rs + jsr311-api test - + From 9ae681b8436fcbb028a3f4a4d414fadcf9a066b9 Mon Sep 17 00:00:00 2001 From: Maria Farooq Date: Thu, 12 Apr 2018 20:53:29 +0500 Subject: [PATCH 39/44] corrected module name --- restcomm/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restcomm/pom.xml b/restcomm/pom.xml index 7f6763087e..e6ab61117b 100644 --- a/restcomm/pom.xml +++ b/restcomm/pom.xml @@ -174,7 +174,7 @@ restcomm.monitoring.service restcomm.tts.awspolly restcomm.sdr.api - restcomm-connect.core + restcomm.core From 5004ef1ea1c852249801ae6fcec79e18ad3e81d5 Mon Sep 17 00:00:00 2001 From: George Vagenas Date: Fri, 13 Apr 2018 12:21:12 +0300 Subject: [PATCH 40/44] Added repository Fixes for restcomm-assembly-wildfly10 --- pom.xml | 13 +++++++--- release/restcomm-assembly-wildfly10/pom.xml | 28 ++++++++++----------- restcomm/restcomm.testsuite/pom.xml | 24 +++++++++--------- 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index 05f9a44a0e..334c864988 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.restcomm restcomm-parent 4.0.1 - + 4.0.0 org.restcomm restcomm-connect-root @@ -38,8 +38,8 @@ UTF-8 6.0.23 2.5 - - + + mobicents-public-repository-group @@ -69,6 +69,11 @@ never + + cxsnexus-releases + http://cxsnexus.restcomm.com/nexus/content/repositories/releases/ + default + org.mobicents.sipunit sipunit compile - + org.wildfly.arquillian wildfly-arquillian-container-managed 2.1.0.Final test - + @@ -344,7 +344,7 @@ ${project.version} test - + org.restcomm.smpp smpp-extensions @@ -372,12 +372,12 @@ 3.2.0-89 zip assembly - + - + maven-compiler-plugin @@ -448,8 +448,8 @@ org.jboss.logmanager.LogManager ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final wildfly10-managed - - false + + false @@ -518,7 +518,7 @@ every forked JVM/test class--> ${surefire.forkNumber}509 ${surefire.forkNumber}508 - + From 009b88a3579d8f418996980d3543cc58ee5439f3 Mon Sep 17 00:00:00 2001 From: George Vagenas Date: Mon, 16 Apr 2018 11:19:11 +0300 Subject: [PATCH 41/44] Fixes for wildfly-10 sipservlet arquillian managed container --- restcomm-connect-root.iml | 12 ++++++++ restcomm/restcomm.testsuite/pom.xml | 28 +++++++++++++++++++ .../ua/UserAgentManagerWithSBCTest.java | 2 +- .../src/test/resources/arquillian.xml | 12 ++++---- .../test/resources/mobicents-dar.properties | 2 ++ 5 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 restcomm-connect-root.iml create mode 100644 restcomm/restcomm.testsuite/src/test/resources/mobicents-dar.properties 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/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 734908854d..805ce5823a 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -374,6 +374,8 @@ assembly + **/** + **/mobicents-dar.properties, **/click2call.**, **/media-jsr309-servlet.**, **/websockets-sip-servlet.** @@ -452,6 +454,32 @@ false + + org.apache.maven.plugins + maven-resources-plugin + + + copy-dar-file + process-test-classes + + copy-resources + + + ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/standalone/configuration/dars/ + true + + + ${project.basedir}/src/test/resources + + mobicents-dar.properties + + false + + + + + + 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 78053dad40..0a3dc810cd 100644 --- a/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml +++ b/restcomm/restcomm.testsuite/src/test/resources/arquillian.xml @@ -10,19 +10,19 @@ false true - standalone-sip.xml + standalone-sip.xml - + - localhost + localhost 9990 true standalone-sip.xml -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y -Dorg.jboss.server.bootstrap.maxThreads=1 - + - - + + 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") From b359c4dd87d7ae22f2d86d3264d862745b1d1f3e Mon Sep 17 00:00:00 2001 From: George Vagenas Date: Mon, 16 Apr 2018 12:57:45 +0300 Subject: [PATCH 42/44] Upgrade to sip-servlets-wildfly-10 build 103 --- release/pom.xml | 14 +++++++------- release/restcomm-assembly-wildfly10/pom.xml | 2 +- restcomm/restcomm.testsuite/pom.xml | 10 +++++++--- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/release/pom.xml b/release/pom.xml index bebdc9bf30..44874f1074 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -21,34 +21,34 @@ webrtc-ui [1.1,1.1.999) war - + org.mobicents.media media-server-standalone ${mobicents.mgcp.impl.version} zip - assembly + assembly org.restcomm restcomm-connect.application ${project.version} war - + org.restcomm restcomm-connect-management - ${project.version} + ${project.version} war - - + + - restcomm-assembly-as7 + restcomm-assembly-as7 restcomm-assembly-wildfly10 diff --git a/release/restcomm-assembly-wildfly10/pom.xml b/release/restcomm-assembly-wildfly10/pom.xml index 10632081ba..a0c096cf14 100644 --- a/release/restcomm-assembly-wildfly10/pom.xml +++ b/release/restcomm-assembly-wildfly10/pom.xml @@ -10,7 +10,7 @@ pom UTF-8 - 3.2.0-89 + 3.2.0-103 diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index 805ce5823a..f75b27cab5 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -10,6 +10,10 @@ restcomm-connect.testsuite + + 3.2.0-103 + + @@ -369,7 +373,7 @@ org.mobicents.servlet.sip sip-servlets-wildfly-10 - 3.2.0-89 + ${sip.servlets.wildfly.version} zip assembly @@ -448,7 +452,7 @@ false org.jboss.logmanager.LogManager - ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final + ${project.basedir}/target/dependency/restcomm-sip-servlets-${sip.servlets.wildfly.version}-wildfly-10.0.0.Final wildfly10-managed false @@ -465,7 +469,7 @@ copy-resources - ${project.basedir}/target/dependency/restcomm-sip-servlets-3.2.0-89-wildfly-10.0.0.Final/standalone/configuration/dars/ + ${project.basedir}/target/dependency/restcomm-sip-servlets-${sip.servlets.wildfly.version}-wildfly-10.0.0.Final/standalone/configuration/dars/ true From f548d958068fe5fb85fcbd5203e9f952dc834bc4 Mon Sep 17 00:00:00 2001 From: George Vagenas Date: Tue, 17 Apr 2018 10:19:20 +0300 Subject: [PATCH 43/44] Added comments for how to debug arquillian managed container --- ...ugTestsuiteUsingArquillianManagedServer.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 restcomm/restcomm.testsuite/HowToDebugTestsuiteUsingArquillianManagedServer.md 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 From 5c65cb1951e84edf39accf71d6dd48f07b72a397 Mon Sep 17 00:00:00 2001 From: George Vagenas Date: Tue, 17 Apr 2018 14:43:43 +0300 Subject: [PATCH 44/44] Upgrade to sip-servlets-wildfly-10 build 105 --- restcomm/restcomm.testsuite/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restcomm/restcomm.testsuite/pom.xml b/restcomm/restcomm.testsuite/pom.xml index f75b27cab5..528f1d97c8 100644 --- a/restcomm/restcomm.testsuite/pom.xml +++ b/restcomm/restcomm.testsuite/pom.xml @@ -11,7 +11,7 @@ restcomm-connect.testsuite - 3.2.0-103 + 3.2.0-105