diff --git a/.gitignore b/.gitignore
index 2f6a7af067..b92a79e654 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,8 @@ bin/
*.class
logs
bin
+.DS_Store
+**/*~
+csv
+.metadata
+.idea
diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
new file mode 100644
index 0000000000..7fb8ed00de
--- /dev/null
+++ b/.idea/codeStyleSettings.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..d6012441ae
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,36 @@
+language: java
+jdk:
+ - oraclejdk8
+branches:
+ only:
+ - master
+ - /^deploy-.*$/
+email:
+ recipients:
+ - gvagenas@telestax.com
+ - jean.deruelle@telestax.com
+ on_success: never # default: change
+ on_failure: always # default: always
+cache:
+ directories:
+ - $HOME/.m2
+addons:
+ sonarqube:
+ organization: "restcomm-connect" # the key of the org you chose at step #3
+script:
+ - ./build.sh
+after_success:
+ - cd restcomm
+ - mvn com.blackducksoftware.integration:hub-maven-plugin:2.0.2:build-bom -Dhub.output.directory=. -Dhub.deploy.bdio=false
+ - bash <(curl -s https://copilot.blackducksoftware.com/bash/travis) ./*_bdio.jsonld
+# Problem to run testsuite https://github.com/travis-ci/travis-ci/issues/1382
+# - echo "About to run sonar-scanner"
+# - cd restcomm
+# - pwd
+# - sed -i 's/\/\/g' ./restcomm.testsuite/src/test/resources/log4j.xml
+# - sed -i 's/DEBUG/OFF/g' ./restcomm.testsuite/src/test/resources/akka_application.conf
+# - sed -i 's/INFO/OFF/g' ./restcomm.application/src/main/resources/application.conf
+# - mvn -q clean org.jacoco:jacoco-maven-plugin:prepare-agent surefire-report:report sonar:sonar > ./surefire-report-output.txt
+# - curl -T restcomm.testsuite/target/site/surefire-report.html -ugvagenas:$BINTRAY_API_KEY -H "X-Bintray-Package:binaries" -H "X-Bintray-Version:8.2.0" https://api.bintray.com/content/gvagenas/Restcomm-Connect/bin/surefire-report-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER.html
+# - curl -T ./surefire-report-output.txt -ugvagenas:$BINTRAY_API_KEY -H "X-Bintray-Package:binaries" -H "X-Bintray-Version:8.2.0" https://api.bintray.com/content/gvagenas/Restcomm-Connect/bin/surefire-report-output-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER.txt
diff --git a/CHANGELOG_8.2.1.md b/CHANGELOG_8.2.1.md
new file mode 100644
index 0000000000..de5a0a441c
--- /dev/null
+++ b/CHANGELOG_8.2.1.md
@@ -0,0 +1,1223 @@
+# Change Log
+
+## [Unreleased](https://github.com/RestComm/Restcomm-Connect/tree/HEAD)
+
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-67...HEAD)
+
+**Closed issues:**
+
+- 'SmsStatus' is not added as parameter for statusCallBack [\#2577](https://github.com/RestComm/Restcomm-Connect/issues/2577)
+
+## [8.2.1-67](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-67) (2017-10-13)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-66...8.2.1-67)
+
+## [8.2.1-66](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-66) (2017-10-13)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-65...8.2.1-66)
+
+**Closed issues:**
+
+- Fix url to RVD in Dashboard [\#2576](https://github.com/RestComm/Restcomm-Connect/issues/2576)
+
+## [8.2.1-65](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-65) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-64...8.2.1-65)
+
+## [8.2.1-64](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-64) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-63...8.2.1-64)
+
+## [8.2.1-63](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-63) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-62...8.2.1-63)
+
+## [8.2.1-62](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-62) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-61...8.2.1-62)
+
+## [8.2.1-61](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-61) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-60...8.2.1-61)
+
+## [8.2.1-60](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-60) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1322...8.2.1-60)
+
+## [8.2.0.1322](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1322) (2017-10-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-59...8.2.0.1322)
+
+## [8.2.1-59](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-59) (2017-10-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-56...8.2.1-59)
+
+**Merged pull requests:**
+
+- Issue2568 [\#2575](https://github.com/RestComm/Restcomm-Connect/pull/2575) ([jaimecasero](https://github.com/jaimecasero))
+
+## [8.2.1-56](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-56) (2017-10-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-55...8.2.1-56)
+
+## [8.2.1-55](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-55) (2017-10-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-53...8.2.1-55)
+
+**Closed issues:**
+
+- Create the flow for applications and templates [\#2570](https://github.com/RestComm/Restcomm-Connect/issues/2570)
+
+## [8.2.1-53](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-53) (2017-10-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-52...8.2.1-53)
+
+**Closed issues:**
+
+- Optimize application retrival API wrt Numbers [\#2517](https://github.com/RestComm/Restcomm-Connect/issues/2517)
+- Modify MockMediaGateway to properly create recording file [\#2480](https://github.com/RestComm/Restcomm-Connect/issues/2480)
+- Restcomm exception prevents 200 OK response to MESSAGE to be sent to message sender [\#1023](https://github.com/RestComm/Restcomm-Connect/issues/1023)
+
+**Merged pull requests:**
+
+- Issue2480 Record refactoring [\#2569](https://github.com/RestComm/Restcomm-Connect/pull/2569) ([gvagenas](https://github.com/gvagenas))
+- Restcomm1147 rms resources leak on conf [\#2564](https://github.com/RestComm/Restcomm-Connect/pull/2564) ([gvagenas](https://github.com/gvagenas))
+- Issue2517 application api with numbers [\#2550](https://github.com/RestComm/Restcomm-Connect/pull/2550) ([otsakir](https://github.com/otsakir))
+
+## [8.2.1-52](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-52) (2017-10-10)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-51...8.2.1-52)
+
+**Merged pull requests:**
+
+- Issue 2521: Move DownloaderResponse access after succeeded\(\) check [\#2549](https://github.com/RestComm/Restcomm-Connect/pull/2549) ([abdulazizali77](https://github.com/abdulazizali77))
+
+## [8.2.1-51](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-51) (2017-10-09)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-50...8.2.1-51)
+
+**Closed issues:**
+
+- RestComm-Connect USSD PUSH API \>\>\> HTTP Status 500 - Internal Server Error [\#2551](https://github.com/RestComm/Restcomm-Connect/issues/2551)
+- Implement/Enhance Restcomm Console Analytics page for Mobile [\#2538](https://github.com/RestComm/Restcomm-Connect/issues/2538)
+- Implement/Enhance Restcomm Console Analytics page for Desktop [\#2537](https://github.com/RestComm/Restcomm-Connect/issues/2537)
+- Implement/Enhance Restcomm Console Accounts page for Mobile [\#2536](https://github.com/RestComm/Restcomm-Connect/issues/2536)
+- Implement/Enhance Restcomm Console Accounts page for Desktop [\#2535](https://github.com/RestComm/Restcomm-Connect/issues/2535)
+
+**Merged pull requests:**
+
+- Push notification server support for text messages [\#2548](https://github.com/RestComm/Restcomm-Connect/pull/2548) ([agafox](https://github.com/agafox))
+- Fixed 'IsPushEnabled' handling in update RC client API call [\#2542](https://github.com/RestComm/Restcomm-Connect/pull/2542) ([agafox](https://github.com/agafox))
+
+## [8.2.1-50](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-50) (2017-10-09)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-49...8.2.1-50)
+
+**Closed issues:**
+
+- Create design document for Application api optimization [\#2523](https://github.com/RestComm/Restcomm-Connect/issues/2523)
+
+## [8.2.1-49](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-49) (2017-10-08)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-48...8.2.1-49)
+
+## [8.2.1-48](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-48) (2017-10-07)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-47...8.2.1-48)
+
+## [8.2.1-47](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-47) (2017-10-06)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-46...8.2.1-47)
+
+## [8.2.1-46](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-46) (2017-10-06)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-45...8.2.1-46)
+
+**Closed issues:**
+
+- Spike - Provide feedback during the Implementation of User's dropdown, Accounts, Sub accounts, analytics [\#2533](https://github.com/RestComm/Restcomm-Connect/issues/2533)
+- Update Account api for organization [\#2525](https://github.com/RestComm/Restcomm-Connect/issues/2525)
+
+## [8.2.1-45](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-45) (2017-10-05)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-44...8.2.1-45)
+
+## [8.2.1-44](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-44) (2017-10-05)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1320...8.2.1-44)
+
+## [8.2.0.1320](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1320) (2017-10-04)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-43...8.2.0.1320)
+
+**Merged pull requests:**
+
+- Tweaked configuration scripts to work with RVD\_UNDEPLOY env variable [\#2506](https://github.com/RestComm/Restcomm-Connect/pull/2506) ([otsakir](https://github.com/otsakir))
+
+## [8.2.1-43](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-43) (2017-10-04)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1319...8.2.1-43)
+
+**Merged pull requests:**
+
+- Issue2271 customer work [\#2543](https://github.com/RestComm/Restcomm-Connect/pull/2543) ([jaimecasero](https://github.com/jaimecasero))
+- Issue 2525 [\#2534](https://github.com/RestComm/Restcomm-Connect/pull/2534) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1319](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1319) (2017-10-03)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1318...8.2.0.1319)
+
+## [8.2.0.1318](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1318) (2017-10-03)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-42...8.2.0.1318)
+
+## [8.2.1-42](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-42) (2017-10-02)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-41...8.2.1-42)
+
+## [8.2.1-41](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-41) (2017-10-01)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1317...8.2.1-41)
+
+## [8.2.0.1317](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1317) (2017-09-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-40...8.2.0.1317)
+
+## [8.2.1-40](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-40) (2017-09-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1316...8.2.1-40)
+
+## [8.2.0.1316](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1316) (2017-09-29)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-39...8.2.0.1316)
+
+## [8.2.1-39](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-39) (2017-09-29)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1315...8.2.1-39)
+
+## [8.2.0.1315](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1315) (2017-09-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1314...8.2.0.1315)
+
+**Merged pull requests:**
+
+- Enh pooling [\#2528](https://github.com/RestComm/Restcomm-Connect/pull/2528) ([jaimecasero](https://github.com/jaimecasero))
+- Enh parallel4 - testsuite refactored to allow parallel exec [\#2527](https://github.com/RestComm/Restcomm-Connect/pull/2527) ([jaimecasero](https://github.com/jaimecasero))
+
+## [8.2.0.1314](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1314) (2017-09-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-38...8.2.0.1314)
+
+## [8.2.1-38](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-38) (2017-09-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1313...8.2.1-38)
+
+## [8.2.0.1313](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1313) (2017-09-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1312...8.2.0.1313)
+
+**Closed issues:**
+
+- Implement/Enhance Restcomm Console Home page for Mobile [\#2489](https://github.com/RestComm/Restcomm-Connect/issues/2489)
+- Implement/Enhance Restcomm Console Home page for Desktop [\#2488](https://github.com/RestComm/Restcomm-Connect/issues/2488)
+- Implement/Enhance Restcomm Console Sign-In page for Mobile [\#2487](https://github.com/RestComm/Restcomm-Connect/issues/2487)
+- Implement/Enhance Restcomm Console Sign-In page for Desktop [\#2486](https://github.com/RestComm/Restcomm-Connect/issues/2486)
+
+**Merged pull requests:**
+
+- Issue 2493 [\#2522](https://github.com/RestComm/Restcomm-Connect/pull/2522) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1312](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1312) (2017-09-27)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-37...8.2.0.1312)
+
+## [8.2.1-37](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-37) (2017-09-27)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-36...8.2.1-37)
+
+**Closed issues:**
+
+- Discuss application retrieval API optimization [\#2520](https://github.com/RestComm/Restcomm-Connect/issues/2520)
+- Check issues at TADHack environment reported by some participants [\#2498](https://github.com/RestComm/Restcomm-Connect/issues/2498)
+
+## [8.2.1-36](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-36) (2017-09-26)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1311...8.2.1-36)
+
+## [8.2.0.1311](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1311) (2017-09-25)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-35...8.2.0.1311)
+
+**Closed issues:**
+
+- Rework the Ui of the Console and create mock-ups for Visual Designer templates [\#2499](https://github.com/RestComm/Restcomm-Connect/issues/2499)
+
+## [8.2.1-35](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-35) (2017-09-25)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-34...8.2.1-35)
+
+## [8.2.1-34](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-34) (2017-09-24)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-33...8.2.1-34)
+
+## [8.2.1-33](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-33) (2017-09-23)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-32...8.2.1-33)
+
+## [8.2.1-32](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-32) (2017-09-22)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1310...8.2.1-32)
+
+## [8.2.0.1310](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1310) (2017-09-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-31...8.2.0.1310)
+
+**Closed issues:**
+
+- Create connection pooling to RVD [\#2502](https://github.com/RestComm/Restcomm-Connect/issues/2502)
+
+**Merged pull requests:**
+
+- use instance ip as fallback domain name [\#2513](https://github.com/RestComm/Restcomm-Connect/pull/2513) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.1-31](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-31) (2017-09-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1309...8.2.1-31)
+
+## [8.2.0.1309](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1309) (2017-09-20)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-30...8.2.0.1309)
+
+**Closed issues:**
+
+- html-css mock-ups for the parts of the main page of the dashboard [\#2484](https://github.com/RestComm/Restcomm-Connect/issues/2484)
+
+**Merged pull requests:**
+
+- IVR test fix [\#2511](https://github.com/RestComm/Restcomm-Connect/pull/2511) ([YevgenL](https://github.com/YevgenL))
+- Asr [\#2500](https://github.com/RestComm/Restcomm-Connect/pull/2500) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.1-30](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-30) (2017-09-20)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1308...8.2.1-30)
+
+**Merged pull requests:**
+
+- Recording issue fix [\#2507](https://github.com/RestComm/Restcomm-Connect/pull/2507) ([YevgenL](https://github.com/YevgenL))
+
+## [8.2.0.1308](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1308) (2017-09-19)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-29...8.2.0.1308)
+
+**Closed issues:**
+
+- UserAgentManager IndexOutOfBoundsException [\#2504](https://github.com/RestComm/Restcomm-Connect/issues/2504)
+
+## [8.2.1-29](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-29) (2017-09-19)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.1-27...8.2.1-29)
+
+## [8.2.1-27](https://github.com/RestComm/Restcomm-Connect/tree/8.2.1-27) (2017-09-18)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1307...8.2.1-27)
+
+**Closed issues:**
+
+- Spike - Make the Console responsive [\#2479](https://github.com/RestComm/Restcomm-Connect/issues/2479)
+
+## [8.2.0.1307](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1307) (2017-09-15)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1306...8.2.0.1307)
+
+**Closed issues:**
+
+- Downloader fails and as a result call is not cleaned up [\#2501](https://github.com/RestComm/Restcomm-Connect/issues/2501)
+
+## [8.2.0.1306](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1306) (2017-09-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1305...8.2.0.1306)
+
+**Closed issues:**
+
+- Spike - Finalise the content of the main page [\#2475](https://github.com/RestComm/Restcomm-Connect/issues/2475)
+
+## [8.2.0.1305](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1305) (2017-09-13)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1304...8.2.0.1305)
+
+## [8.2.0.1304](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1304) (2017-09-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1303...8.2.0.1304)
+
+**Closed issues:**
+
+- html - css mock-ups for the sign in page of the console [\#2483](https://github.com/RestComm/Restcomm-Connect/issues/2483)
+
+**Merged pull requests:**
+
+- Hints limitation [\#2471](https://github.com/RestComm/Restcomm-Connect/pull/2471) ([YevgenL](https://github.com/YevgenL))
+
+## [8.2.0.1303](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1303) (2017-09-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1302...8.2.0.1303)
+
+**Closed issues:**
+
+- Wrong port in 'docker run' command in docs quick start [\#2494](https://github.com/RestComm/Restcomm-Connect/issues/2494)
+
+## [8.2.0.1302](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1302) (2017-09-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1301...8.2.0.1302)
+
+**Closed issues:**
+
+- Create a convention that will build RVD origin from current/available organization in Dashboard [\#2255](https://github.com/RestComm/Restcomm-Connect/issues/2255)
+- Adapt CORS filter to multiple domains \(organizations\) [\#2254](https://github.com/RestComm/Restcomm-Connect/issues/2254)
+
+## [8.2.0.1301](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1301) (2017-09-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1300...8.2.0.1301)
+
+**Closed issues:**
+
+- support dial sip to number/client of a differnt organization [\#2109](https://github.com/RestComm/Restcomm-Connect/issues/2109)
+- Make SIP Number and SIP Client tied to an account and Unique per Organization [\#2106](https://github.com/RestComm/Restcomm-Connect/issues/2106)
+- Create a separate Domain Table tied 1:N to an account [\#2073](https://github.com/RestComm/Restcomm-Connect/issues/2073)
+
+## [8.2.0.1300](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1300) (2017-09-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1299...8.2.0.1300)
+
+## [8.2.0.1299](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1299) (2017-09-10)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1298...8.2.0.1299)
+
+**Closed issues:**
+
+- Add DateTime at MonitoringService response [\#2491](https://github.com/RestComm/Restcomm-Connect/issues/2491)
+- Create html-css mock-ups of the main page of the Console [\#2442](https://github.com/RestComm/Restcomm-Connect/issues/2442)
+- Create unit tests for dial-forking patches at VoiceInterpreter [\#2436](https://github.com/RestComm/Restcomm-Connect/issues/2436)
+
+## [8.2.0.1298](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1298) (2017-09-05)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1297...8.2.0.1298)
+
+**Closed issues:**
+
+- Account creation for Restcomm cloud with Salesforce.com approval automation [\#2478](https://github.com/RestComm/Restcomm-Connect/issues/2478)
+
+**Merged pull requests:**
+
+- Fix broken link to contributors guide on README.md [\#2465](https://github.com/RestComm/Restcomm-Connect/pull/2465) ([gsaslis](https://github.com/gsaslis))
+
+## [8.2.0.1297](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1297) (2017-09-05)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1296...8.2.0.1297)
+
+**Closed issues:**
+
+- Pass the new Main page of the console to inVision and create the flow [\#2441](https://github.com/RestComm/Restcomm-Connect/issues/2441)
+
+**Merged pull requests:**
+
+- Push Notification Server configuration [\#2476](https://github.com/RestComm/Restcomm-Connect/pull/2476) ([agafox](https://github.com/agafox))
+
+## [8.2.0.1296](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1296) (2017-09-04)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1295...8.2.0.1296)
+
+**Closed issues:**
+
+- SIP BYE not answered when sent from USSD Gw after dialogtimeout occurs [\#2411](https://github.com/RestComm/Restcomm-Connect/issues/2411)
+
+**Merged pull requests:**
+
+- HttpClient lazy initialization [\#2472](https://github.com/RestComm/Restcomm-Connect/pull/2472) ([agafox](https://github.com/agafox))
+
+## [8.2.0.1295](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1295) (2017-08-31)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1294...8.2.0.1295)
+
+**Closed issues:**
+
+- Update iOS quick start guide asciidoc to be in sync with latest release [\#2467](https://github.com/RestComm/Restcomm-Connect/issues/2467)
+- Helping with the UI of Restcomm WebRTC Demo [\#2466](https://github.com/RestComm/Restcomm-Connect/issues/2466)
+- Create the first mock-ups for the mobile version of the Console [\#2459](https://github.com/RestComm/Restcomm-Connect/issues/2459)
+- Spike - Create the main page of the console with the content [\#2440](https://github.com/RestComm/Restcomm-Connect/issues/2440)
+
+**Merged pull requests:**
+
+- Fixed \#2467: Update iOS quick start guide asciidoc to be in sync with… [\#2468](https://github.com/RestComm/Restcomm-Connect/pull/2468) ([atsakiridis](https://github.com/atsakiridis))
+
+## [8.2.0.1294](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1294) (2017-08-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1293...8.2.0.1294)
+
+**Closed issues:**
+
+- SIP message is not sent back to USSD Gw when externalServiceTimeout set in rvd.xml is reached [\#2410](https://github.com/RestComm/Restcomm-Connect/issues/2410)
+
+## [8.2.0.1293](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1293) (2017-08-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1292...8.2.0.1293)
+
+**Closed issues:**
+
+- Improve comment in restcomm.xml - response-timeout setting [\#2464](https://github.com/RestComm/Restcomm-Connect/issues/2464)
+
+## [8.2.0.1292](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1292) (2017-08-29)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1291...8.2.0.1292)
+
+**Merged pull requests:**
+
+- Issue 2073 - Organization phase 1 [\#2431](https://github.com/RestComm/Restcomm-Connect/pull/2431) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1291](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1291) (2017-08-29)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1290...8.2.0.1291)
+
+**Merged pull requests:**
+
+- Issue 2190 [\#2462](https://github.com/RestComm/Restcomm-Connect/pull/2462) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1290](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1290) (2017-08-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1289...8.2.0.1290)
+
+**Closed issues:**
+
+- Spike - Research for Console's mobile version [\#2458](https://github.com/RestComm/Restcomm-Connect/issues/2458)
+
+## [8.2.0.1289](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1289) (2017-08-23)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1288...8.2.0.1289)
+
+**Closed issues:**
+
+- Video-RCML-Sprint3-Customer-Work [\#2448](https://github.com/RestComm/Restcomm-Connect/issues/2448)
+- Review list of PRs pending to merge [\#2447](https://github.com/RestComm/Restcomm-Connect/issues/2447)
+- Ambiguous/misleading CDR status field writing: "COMPLETED" and "completed" [\#2162](https://github.com/RestComm/Restcomm-Connect/issues/2162)
+- Reject notification is not sent to caller [\#1726](https://github.com/RestComm/Restcomm-Connect/issues/1726)
+
+**Merged pull requests:**
+
+- Change CDR status in uppercase to lowercase for 'completed' [\#2422](https://github.com/RestComm/Restcomm-Connect/pull/2422) ([FerUy](https://github.com/FerUy))
+
+## [8.2.0.1288](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1288) (2017-08-22)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1287...8.2.0.1288)
+
+**Closed issues:**
+
+- Spike - Create a roadmap for the UI/UX changes [\#2439](https://github.com/RestComm/Restcomm-Connect/issues/2439)
+
+## [8.2.0.1287](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1287) (2017-08-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1286...8.2.0.1287)
+
+**Merged pull requests:**
+
+- Issue \#2411: Workaround: Send Bye when received DownloaderResponse in wrong state [\#2438](https://github.com/RestComm/Restcomm-Connect/pull/2438) ([abdulazizali77](https://github.com/abdulazizali77))
+
+## [8.2.0.1286](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1286) (2017-08-19)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1285...8.2.0.1286)
+
+**Merged pull requests:**
+
+- Issue2384 remove dialogic libs [\#2437](https://github.com/RestComm/Restcomm-Connect/pull/2437) ([ghjansen](https://github.com/ghjansen))
+
+## [8.2.0.1285](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1285) (2017-08-19)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1284...8.2.0.1285)
+
+**Closed issues:**
+
+- DialAction is not executed when everyone is busy [\#2435](https://github.com/RestComm/Restcomm-Connect/issues/2435)
+- StatusCallback is not sent when dial branch rejects the call [\#2434](https://github.com/RestComm/Restcomm-Connect/issues/2434)
+- VoiceInterpreter fails after Dial fork reaches timeout limit [\#2433](https://github.com/RestComm/Restcomm-Connect/issues/2433)
+- VoiceInterpreter fails after Dial fork receives BUSY from all call branches [\#2432](https://github.com/RestComm/Restcomm-Connect/issues/2432)
+- Remove Dialogic libraries from public repository and modify bootstrap to download them from external server [\#2384](https://github.com/RestComm/Restcomm-Connect/issues/2384)
+
+**Merged pull requests:**
+
+- fix issue that creates loop in USSD PUSH [\#2419](https://github.com/RestComm/Restcomm-Connect/pull/2419) ([croufay](https://github.com/croufay))
+
+## [8.2.0.1284](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1284) (2017-08-18)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1283...8.2.0.1284)
+
+**Merged pull requests:**
+
+- Added 'pr' parameter to ASR [\#2428](https://github.com/RestComm/Restcomm-Connect/pull/2428) ([YevgenL](https://github.com/YevgenL))
+- Fix for DTMF from MediaServer [\#2418](https://github.com/RestComm/Restcomm-Connect/pull/2418) ([YevgenL](https://github.com/YevgenL))
+- RC Client object updated with pushClientIdentity in terms of RPNS activity [\#2412](https://github.com/RestComm/Restcomm-Connect/pull/2412) ([agafox](https://github.com/agafox))
+- RESTCOMM-1014 : Parse outboundProxy Uri with port and params [\#2311](https://github.com/RestComm/Restcomm-Connect/pull/2311) ([abdulazizali77](https://github.com/abdulazizali77))
+
+## [8.2.0.1283](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1283) (2017-08-16)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.2415.14...8.2.0.1283)
+
+**Merged pull requests:**
+
+- RESTCOMM-885: Add Multiprovider Extension REST API doc [\#2426](https://github.com/RestComm/Restcomm-Connect/pull/2426) ([abdulazizali77](https://github.com/abdulazizali77))
+
+## [8.2.0.2415.14](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.2415.14) (2017-08-15)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1282...8.2.0.2415.14)
+
+## [8.2.0.1282](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1282) (2017-08-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.Issue1372.13...8.2.0.1282)
+
+**Closed issues:**
+
+- "completed" status callback comes up twice [\#2421](https://github.com/RestComm/Restcomm-Connect/issues/2421)
+
+## [8.2.0.Issue1372.13](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.Issue1372.13) (2017-08-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1281...8.2.0.Issue1372.13)
+
+**Closed issues:**
+
+- Video-RCML-Sprint2-Customer-Work-2 [\#2271](https://github.com/RestComm/Restcomm-Connect/issues/2271)
+
+**Merged pull requests:**
+
+- zendesk 34592 DTMF issue when using SIP INFO [\#2414](https://github.com/RestComm/Restcomm-Connect/pull/2414) ([xhoaluu](https://github.com/xhoaluu))
+
+## [8.2.0.1281](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1281) (2017-08-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.issue-2073.12...8.2.0.1281)
+
+## [8.2.0.issue-2073.12](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.issue-2073.12) (2017-08-10)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1280...8.2.0.issue-2073.12)
+
+## [8.2.0.1280](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1280) (2017-08-09)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1279...8.2.0.1280)
+
+## [8.2.0.1279](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1279) (2017-08-07)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1278...8.2.0.1279)
+
+**Closed issues:**
+
+- Spike: Create a roadmap for Consoles Implementation [\#2379](https://github.com/RestComm/Restcomm-Connect/issues/2379)
+- Create mock-up's for Visual Designer's new UX [\#2378](https://github.com/RestComm/Restcomm-Connect/issues/2378)
+- RVD Send SMS does not support Unicode characters [\#2368](https://github.com/RestComm/Restcomm-Connect/issues/2368)
+
+**Merged pull requests:**
+
+- Added unit tests [\#2409](https://github.com/RestComm/Restcomm-Connect/pull/2409) ([YevgenL](https://github.com/YevgenL))
+- Fix: Go to the next Verb after silent [\#2408](https://github.com/RestComm/Restcomm-Connect/pull/2408) ([YevgenL](https://github.com/YevgenL))
+- FinalSpeech support without PartialResult [\#2407](https://github.com/RestComm/Restcomm-Connect/pull/2407) ([YevgenL](https://github.com/YevgenL))
+- Remove PartialCallback check. Add FinalResult tests [\#2405](https://github.com/RestComm/Restcomm-Connect/pull/2405) ([YevgenL](https://github.com/YevgenL))
+
+## [8.2.0.1278](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1278) (2017-07-31)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1277...8.2.0.1278)
+
+**Closed issues:**
+
+- Update the Nexmo integration to pass the right domain when buying a number. [\#2270](https://github.com/RestComm/Restcomm-Connect/issues/2270)
+
+**Merged pull requests:**
+
+- Update gather-rcml documentation [\#2392](https://github.com/RestComm/Restcomm-Connect/pull/2392) ([YevgenL](https://github.com/YevgenL))
+- Deploy/undeploy bundled RVD through configuration [\#2351](https://github.com/RestComm/Restcomm-Connect/pull/2351) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1277](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1277) (2017-07-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1276...8.2.0.1277)
+
+**Closed issues:**
+
+- Errors in 'config-olympus.sh' script [\#2381](https://github.com/RestComm/Restcomm-Connect/issues/2381)
+- Spike: Research and Brainstorm for Visual Designers UX [\#2377](https://github.com/RestComm/Restcomm-Connect/issues/2377)
+
+## [8.2.0.1276](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1276) (2017-07-27)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1275...8.2.0.1276)
+
+**Closed issues:**
+
+- Restcomm `acting-as-proxy` feature, provide option to disable SDP patching [\#2391](https://github.com/RestComm/Restcomm-Connect/issues/2391)
+- Append instanceid with call-sid [\#1907](https://github.com/RestComm/Restcomm-Connect/issues/1907)
+- Support Live Call Modification in a cluster [\#1312](https://github.com/RestComm/Restcomm-Connect/issues/1312)
+
+**Merged pull requests:**
+
+- Issue 2389 - API should return 404 if resource is not found instead of 500 [\#2399](https://github.com/RestComm/Restcomm-Connect/pull/2399) ([maria-farooq](https://github.com/maria-farooq))
+- Issue 2265 [\#2393](https://github.com/RestComm/Restcomm-Connect/pull/2393) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1275](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1275) (2017-07-25)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1274...8.2.0.1275)
+
+**Closed issues:**
+
+- Sms statusCallback attribute is misspelled [\#2386](https://github.com/RestComm/Restcomm-Connect/issues/2386)
+- Corrections on the UI of the Console [\#2376](https://github.com/RestComm/Restcomm-Connect/issues/2376)
+- Support regex in Organizations [\#2293](https://github.com/RestComm/Restcomm-Connect/issues/2293)
+
+**Merged pull requests:**
+
+- Small fix of unsafe code [\#2390](https://github.com/RestComm/Restcomm-Connect/pull/2390) ([YevgenL](https://github.com/YevgenL))
+- DTMF fix [\#2387](https://github.com/RestComm/Restcomm-Connect/pull/2387) ([YevgenL](https://github.com/YevgenL))
+- Issue 2038 remove yellow color [\#2239](https://github.com/RestComm/Restcomm-Connect/pull/2239) ([nguyenhien1807](https://github.com/nguyenhien1807))
+
+## [8.2.0.1274](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1274) (2017-07-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1273...8.2.0.1274)
+
+**Merged pull requests:**
+
+- \#2206: Docker documentation fixes + Docker for Mac comments [\#2382](https://github.com/RestComm/Restcomm-Connect/pull/2382) ([agafox](https://github.com/agafox))
+
+## [8.2.0.1273](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1273) (2017-07-20)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1272...8.2.0.1273)
+
+**Closed issues:**
+
+- Create and present the RVD roadmap and demo new UX for brownbag lunch even [\#2380](https://github.com/RestComm/Restcomm-Connect/issues/2380)
+
+## [8.2.0.1272](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1272) (2017-07-20)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1271...8.2.0.1272)
+
+**Closed issues:**
+
+- SmsSessionRequest Does not add X-RestComm-AccountSid [\#2374](https://github.com/RestComm/Restcomm-Connect/issues/2374)
+- Make changes to the flow of the Console [\#2373](https://github.com/RestComm/Restcomm-Connect/issues/2373)
+
+## [8.2.0.1271](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1271) (2017-07-18)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1270...8.2.0.1271)
+
+**Closed issues:**
+
+- Flow and Mock-up for Managing Applications in Restcomm Console [\#2359](https://github.com/RestComm/Restcomm-Connect/issues/2359)
+- On Dial invalid/unregistered client, VoiceInterpreter should either execute Dial Action or move the the next verb [\#2358](https://github.com/RestComm/Restcomm-Connect/issues/2358)
+- Make changes to the mock-ups after Weekly meeting's brainstorm [\#2327](https://github.com/RestComm/Restcomm-Connect/issues/2327)
+- Review and small additions to the flow of all InVision mock-ups [\#2300](https://github.com/RestComm/Restcomm-Connect/issues/2300)
+- Finalise where Restcomm WebRTC Demo will appears [\#2299](https://github.com/RestComm/Restcomm-Connect/issues/2299)
+- Pass the "Apps" mock-ups in InVision [\#2298](https://github.com/RestComm/Restcomm-Connect/issues/2298)
+- Pass the Logs mock-ups in InVision [\#2297](https://github.com/RestComm/Restcomm-Connect/issues/2297)
+- Issue with encoding of Unicode characters [\#1903](https://github.com/RestComm/Restcomm-Connect/issues/1903)
+
+## [8.2.0.1270](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1270) (2017-07-17)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1269...8.2.0.1270)
+
+**Closed issues:**
+
+- Implement dynamic RVD resolving based on configuration [\#2340](https://github.com/RestComm/Restcomm-Connect/issues/2340)
+- A rough mock-up for Restcomm WebRTC Demo web supported features [\#2307](https://github.com/RestComm/Restcomm-Connect/issues/2307)
+- Create configuration script that automatically updates dashboard.json/rvdUrl [\#2287](https://github.com/RestComm/Restcomm-Connect/issues/2287)
+- Customer support epic for 'George's Sprint 5' [\#2280](https://github.com/RestComm/Restcomm-Connect/issues/2280)
+- Unplanned work for 'George's Sprint 5' [\#2279](https://github.com/RestComm/Restcomm-Connect/issues/2279)
+- App retrieval from AppStore fails in dashboard [\#2278](https://github.com/RestComm/Restcomm-Connect/issues/2278)
+- Implement dynamic logic for CORS request filtering [\#2230](https://github.com/RestComm/Restcomm-Connect/issues/2230)
+- Update rcmlserver-api/base-url in restcomm.xml through configuration [\#2212](https://github.com/RestComm/Restcomm-Connect/issues/2212)
+- Configure video options rvd.xml from advanced.conf [\#2133](https://github.com/RestComm/Restcomm-Connect/issues/2133)
+
+**Merged pull requests:**
+
+- Issue2340 rvd resolving from config [\#2349](https://github.com/RestComm/Restcomm-Connect/pull/2349) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1269](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1269) (2017-07-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1268...8.2.0.1269)
+
+**Closed issues:**
+
+- Properly setup S3Client to be able to work with S3Ninja [\#2346](https://github.com/RestComm/Restcomm-Connect/issues/2346)
+
+**Merged pull requests:**
+
+- Add license scan status and report [\#2345](https://github.com/RestComm/Restcomm-Connect/pull/2345) ([xizhao](https://github.com/xizhao))
+- Issue2287 dashboard json upgrade script [\#2338](https://github.com/RestComm/Restcomm-Connect/pull/2338) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1268](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1268) (2017-07-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1267...8.2.0.1268)
+
+**Closed issues:**
+
+- NPE in B2BUAHelper for missing contact header in 180/ringing msgs [\#2341](https://github.com/RestComm/Restcomm-Connect/issues/2341)
+- Provide custom executor for S3 Uploads [\#2339](https://github.com/RestComm/Restcomm-Connect/issues/2339)
+- Call Api should send back proper response for request of updating completed calls [\#2330](https://github.com/RestComm/Restcomm-Connect/issues/2330)
+- S3AccessTool shouldn't block waiting for the file [\#2324](https://github.com/RestComm/Restcomm-Connect/issues/2324)
+
+## [8.2.0.1267](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1267) (2017-07-09)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1266...8.2.0.1267)
+
+**Closed issues:**
+
+- Add gov.nist.javax.sip.TLS\_CLIENT\_AUTH\_TYPE configuratio. [\#2336](https://github.com/RestComm/Restcomm-Connect/issues/2336)
+- Create design document for dynamic resolving of RVD location based on configuration [\#2296](https://github.com/RestComm/Restcomm-Connect/issues/2296)
+
+**Merged pull requests:**
+
+- TLS\_CLIENT\_AUTH\_TYPE configuration option. [\#2337](https://github.com/RestComm/Restcomm-Connect/pull/2337) ([leftyb](https://github.com/leftyb))
+
+## [8.2.0.1266](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1266) (2017-07-08)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1265...8.2.0.1266)
+
+**Closed issues:**
+
+- DialStatusCallback might execute the same state more than once [\#2335](https://github.com/RestComm/Restcomm-Connect/issues/2335)
+- Recording and Dial with record, race condition [\#2332](https://github.com/RestComm/Restcomm-Connect/issues/2332)
+
+## [8.2.0.1265](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1265) (2017-07-07)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.11...8.2.0.1265)
+
+**Closed issues:**
+
+- Child actors should be created using getContext\(\).actorOf\(\) [\#2274](https://github.com/RestComm/Restcomm-Connect/issues/2274)
+
+## [8.2.0.11](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.11) (2017-07-07)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1264...8.2.0.11)
+
+**Closed issues:**
+
+- config-rvd.sh bash syntax error [\#2328](https://github.com/RestComm/Restcomm-Connect/issues/2328)
+
+**Merged pull requests:**
+
+- \#2274: Child actors should be created using getContext\(\).actorOf\(\) [\#2323](https://github.com/RestComm/Restcomm-Connect/pull/2323) ([agafox](https://github.com/agafox))
+
+## [8.2.0.1264](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1264) (2017-07-06)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1263...8.2.0.1264)
+
+**Closed issues:**
+
+- Call actor on Stopping state, don't block waiting for MmsCallController response [\#2261](https://github.com/RestComm/Restcomm-Connect/issues/2261)
+
+## [8.2.0.1263](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1263) (2017-07-05)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1262...8.2.0.1263)
+
+**Closed issues:**
+
+- MGCP Link Test [\#2319](https://github.com/RestComm/Restcomm-Connect/issues/2319)
+- css for elements of the "take a tour feature" [\#2318](https://github.com/RestComm/Restcomm-Connect/issues/2318)
+- Calls not removed from memory even after completing [\#2313](https://github.com/RestComm/Restcomm-Connect/issues/2313)
+- If a conference is stopping and a new person wants to join it RC should start a new conference [\#2312](https://github.com/RestComm/Restcomm-Connect/issues/2312)
+
+## [8.2.0.1262](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1262) (2017-07-04)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1261...8.2.0.1262)
+
+**Closed issues:**
+
+- Add MEDIA\_MAX\_DURATION in the bin/restcomm/mediaserver.conf [\#2317](https://github.com/RestComm/Restcomm-Connect/issues/2317)
+- add DTMF\_DETECTOR\_TONE\_INTERVAL at the bin/restcomm/mediaserver.conf [\#2303](https://github.com/RestComm/Restcomm-Connect/issues/2303)
+
+## [8.2.0.1261](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1261) (2017-07-04)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1260...8.2.0.1261)
+
+**Merged pull requests:**
+
+- Issue 2312 [\#2316](https://github.com/RestComm/Restcomm-Connect/pull/2316) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1260](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1260) (2017-07-04)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1259...8.2.0.1260)
+
+**Merged pull requests:**
+
+- Update Olympus configuration script to XML config file [\#2309](https://github.com/RestComm/Restcomm-Connect/pull/2309) ([ammendonca](https://github.com/ammendonca))
+
+## [8.2.0.1259](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1259) (2017-07-03)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.BUG1014.82...8.2.0.1259)
+
+**Closed issues:**
+
+- Enpoint should send back feedback on unsuccessful response of DLCX [\#2310](https://github.com/RestComm/Restcomm-Connect/issues/2310)
+
+**Merged pull requests:**
+
+- Issue 2310 [\#2314](https://github.com/RestComm/Restcomm-Connect/pull/2314) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.BUG1014.82](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.BUG1014.82) (2017-07-03)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1258...8.2.0.BUG1014.82)
+
+## [8.2.0.1258](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1258) (2017-06-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1257...8.2.0.1258)
+
+## [8.2.0.1257](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1257) (2017-06-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1256...8.2.0.1257)
+
+**Closed issues:**
+
+- Play verb, support URL that don't point to wav files [\#2308](https://github.com/RestComm/Restcomm-Connect/issues/2308)
+- Power Off Media Gateway throughs exception [\#2306](https://github.com/RestComm/Restcomm-Connect/issues/2306)
+
+## [8.2.0.1256](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1256) (2017-06-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1255...8.2.0.1256)
+
+**Closed issues:**
+
+- VoiceInterpreter callback doesn't execute when timedout call completed [\#2301](https://github.com/RestComm/Restcomm-Connect/issues/2301)
+- Reconsider PR \#2268 with regards to the use of relative rcmlUrl for RVD apps [\#2295](https://github.com/RestComm/Restcomm-Connect/issues/2295)
+
+## [8.2.0.1255](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1255) (2017-06-29)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1254...8.2.0.1255)
+
+**Closed issues:**
+
+- B2BUAHelper when forwarding responses add User part in the Contact header of the cloned response, only if exists in the linkedResponse [\#2288](https://github.com/RestComm/Restcomm-Connect/issues/2288)
+- Client's mock-ups in InVision [\#2285](https://github.com/RestComm/Restcomm-Connect/issues/2285)
+- Number's registration mock-ups in InVision [\#2284](https://github.com/RestComm/Restcomm-Connect/issues/2284)
+- create html css mock-ups for edit contact [\#2242](https://github.com/RestComm/Restcomm-Connect/issues/2242)
+- Mock-up of the main page of the Console. Including users dropdown [\#2222](https://github.com/RestComm/Restcomm-Connect/issues/2222)
+- Finalise Console's mock-ups [\#2119](https://github.com/RestComm/Restcomm-Connect/issues/2119)
+
+**Merged pull requests:**
+
+- Issue2212 rcmlserver baseurl configuration [\#2268](https://github.com/RestComm/Restcomm-Connect/pull/2268) ([otsakir](https://github.com/otsakir))
+- Added RVD configuration script for video options [\#2136](https://github.com/RestComm/Restcomm-Connect/pull/2136) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1254](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1254) (2017-06-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1253...8.2.0.1254)
+
+## [8.2.0.1253](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1253) (2017-06-27)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1252...8.2.0.1253)
+
+**Closed issues:**
+
+- Restcomm as Proxy [\#2286](https://github.com/RestComm/Restcomm-Connect/issues/2286)
+
+## [8.2.0.1252](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1252) (2017-06-27)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1251...8.2.0.1252)
+
+**Merged pull requests:**
+
+- Fixes \#2037 and \#2039 [\#2227](https://github.com/RestComm/Restcomm-Connect/pull/2227) ([nguyenhien1807](https://github.com/nguyenhien1807))
+
+## [8.2.0.1251](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1251) (2017-06-26)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1250...8.2.0.1251)
+
+**Closed issues:**
+
+- PR\#1727 discussion with Gui [\#2235](https://github.com/RestComm/Restcomm-Connect/issues/2235)
+- Unplanned work for `George 8.2.0 Sprint 4` [\#2203](https://github.com/RestComm/Restcomm-Connect/issues/2203)
+- George's Sprint 4 - Customer support epic [\#2199](https://github.com/RestComm/Restcomm-Connect/issues/2199)
+
+## [8.2.0.1250](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1250) (2017-06-23)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1249...8.2.0.1250)
+
+**Closed issues:**
+
+- Fail call if SDP negotiation on RE-Invite fails [\#2272](https://github.com/RestComm/Restcomm-Connect/issues/2272)
+- Customer ticket 34406 [\#2267](https://github.com/RestComm/Restcomm-Connect/issues/2267)
+- Cloud incident [\#2231](https://github.com/RestComm/Restcomm-Connect/issues/2231)
+- Paging Capabilities for IncomingPhoneNumbers API [\#2189](https://github.com/RestComm/Restcomm-Connect/issues/2189)
+- Upgrade to Media Server 6.0 [\#1821](https://github.com/RestComm/Restcomm-Connect/issues/1821)
+- Client Friendly Name is not effected. [\#1777](https://github.com/RestComm/Restcomm-Connect/issues/1777)
+
+**Merged pull requests:**
+
+- Issue 2171 From header imrovement in IMS calls [\#2277](https://github.com/RestComm/Restcomm-Connect/pull/2277) ([MarekSzalusOvoo](https://github.com/MarekSzalusOvoo))
+- Fix Friendly name not updated in case of register new client \#1777 [\#2266](https://github.com/RestComm/Restcomm-Connect/pull/2266) ([muhammadbilal19](https://github.com/muhammadbilal19))
+
+## [8.2.0.1249](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1249) (2017-06-22)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1248...8.2.0.1249)
+
+**Closed issues:**
+
+- Update Acapela TTS account to paid version and create test script [\#2264](https://github.com/RestComm/Restcomm-Connect/issues/2264)
+- Need to change name of query param in IncomingPhoneNumbersEndpoint [\#2243](https://github.com/RestComm/Restcomm-Connect/issues/2243)
+- Video-RCML-Sprint2-Customer-Work [\#2226](https://github.com/RestComm/Restcomm-Connect/issues/2226)
+- Contributing.md \(?\) [\#2182](https://github.com/RestComm/Restcomm-Connect/issues/2182)
+
+**Merged pull requests:**
+
+- Issue2230 configurable cors headers [\#2253](https://github.com/RestComm/Restcomm-Connect/pull/2253) ([otsakir](https://github.com/otsakir))
+- Moved Contributor's guide from the wiki page, to the project root [\#2188](https://github.com/RestComm/Restcomm-Connect/pull/2188) ([gsaslis](https://github.com/gsaslis))
+
+## [8.2.0.1248](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1248) (2017-06-20)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1247...8.2.0.1248)
+
+**Closed issues:**
+
+- Update Android SDK Quick Start documentation [\#2247](https://github.com/RestComm/Restcomm-Connect/issues/2247)
+
+**Merged pull requests:**
+
+- Fixed \#2247: Update Android SDK Quick Start documentation [\#2248](https://github.com/RestComm/Restcomm-Connect/pull/2248) ([atsakiridis](https://github.com/atsakiridis))
+
+## [8.2.0.1247](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1247) (2017-06-19)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1246...8.2.0.1247)
+
+**Closed issues:**
+
+- Items per page button selection doesn't shows as selected on Logs tabs [\#2232](https://github.com/RestComm/Restcomm-Connect/issues/2232)
+
+**Merged pull requests:**
+
+- Change query param name from PageSize to SortType.\#2243 [\#2244](https://github.com/RestComm/Restcomm-Connect/pull/2244) ([muhammadbilal19](https://github.com/muhammadbilal19))
+- Fixed Items per page button selection problem for logs tab \#2232 [\#2240](https://github.com/RestComm/Restcomm-Connect/pull/2240) ([muhammadbilal19](https://github.com/muhammadbilal19))
+
+## [8.2.0.1246](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1246) (2017-06-15)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1245...8.2.0.1246)
+
+**Merged pull requests:**
+
+- Merge last commited changes for \#2189 [\#2238](https://github.com/RestComm/Restcomm-Connect/pull/2238) ([muhammadbilal19](https://github.com/muhammadbilal19))
+- Revert PR for "issue \#2189" [\#2237](https://github.com/RestComm/Restcomm-Connect/pull/2237) ([gvagenas](https://github.com/gvagenas))
+- issue \#2189 [\#2211](https://github.com/RestComm/Restcomm-Connect/pull/2211) ([muhammadbilal19](https://github.com/muhammadbilal19))
+
+## [8.2.0.1245](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1245) (2017-06-15)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1244...8.2.0.1245)
+
+**Closed issues:**
+
+- Restcomm CI job fails [\#2236](https://github.com/RestComm/Restcomm-Connect/issues/2236)
+- Remove the yellow color [\#2038](https://github.com/RestComm/Restcomm-Connect/issues/2038)
+
+**Merged pull requests:**
+
+- Issue2178 better downloader logging [\#2213](https://github.com/RestComm/Restcomm-Connect/pull/2213) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1244](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1244) (2017-06-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1243...8.2.0.1244)
+
+## [8.2.0.1243](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1243) (2017-06-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_Voice2b.80...8.2.0.1243)
+
+**Closed issues:**
+
+- RCML Downloader logging does not provide adequate information [\#2178](https://github.com/RestComm/Restcomm-Connect/issues/2178)
+- Support CORS request filtering [\#2163](https://github.com/RestComm/Restcomm-Connect/issues/2163)
+
+**Merged pull requests:**
+
+- RESTCOM-884 : Implement Multiprovider Voice 2b [\#2191](https://github.com/RestComm/Restcomm-Connect/pull/2191) ([abdulazizali77](https://github.com/abdulazizali77))
+- WIP Voice Proposal 2b [\#2138](https://github.com/RestComm/Restcomm-Connect/pull/2138) ([abdulazizali77](https://github.com/abdulazizali77))
+
+## [8.2.0.MPROV_Voice2b.80](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_Voice2b.80) (2017-06-13)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_Voice2b.79...8.2.0.MPROV_Voice2b.80)
+
+**Closed issues:**
+
+- Change the color of numbers [\#2039](https://github.com/RestComm/Restcomm-Connect/issues/2039)
+- Change the logo to Restcomm Console [\#2037](https://github.com/RestComm/Restcomm-Connect/issues/2037)
+- move Default Welcome RVD message to configuration file [\#1605](https://github.com/RestComm/Restcomm-Connect/issues/1605)
+
+## [8.2.0.MPROV_Voice2b.79](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_Voice2b.79) (2017-06-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_Voice2b.78...8.2.0.MPROV_Voice2b.79)
+
+## [8.2.0.MPROV_Voice2b.78](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_Voice2b.78) (2017-06-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_Voice2b.77...8.2.0.MPROV_Voice2b.78)
+
+**Closed issues:**
+
+- OutboundProxy API should be accessible by super admin only [\#2210](https://github.com/RestComm/Restcomm-Connect/issues/2210)
+- Update Calls API docs for the Dial status callback [\#2208](https://github.com/RestComm/Restcomm-Connect/issues/2208)
+- Update IncomingPhoneNumbers API docs for the status callback feature [\#2207](https://github.com/RestComm/Restcomm-Connect/issues/2207)
+- GatewaysEndpoint should be only accessible by super admin [\#2204](https://github.com/RestComm/Restcomm-Connect/issues/2204)
+- IncomingPhoneNumber REGEX match fails for 5555|4444 [\#2197](https://github.com/RestComm/Restcomm-Connect/issues/2197)
+- Review SipServlets Graceful Shutdown feature [\#2196](https://github.com/RestComm/Restcomm-Connect/issues/2196)
+- What do we open architecture diagrams with? [\#2181](https://github.com/RestComm/Restcomm-Connect/issues/2181)
+- MGCP: When Call actor receives CANCEL on inbound call before MS has send respond to CRCX, Connect tries to remove all endpoints [\#2180](https://github.com/RestComm/Restcomm-Connect/issues/2180)
+- Use configurable rvd location in Dashboard templates [\#2177](https://github.com/RestComm/Restcomm-Connect/issues/2177)
+- Properly handle exceptions in server-side password-validation [\#2175](https://github.com/RestComm/Restcomm-Connect/issues/2175)
+- Issue \#1981: MultiProvider RC and Extensions API implementation: redundant code in SmsService and SmmpMessageHandler [\#2123](https://github.com/RestComm/Restcomm-Connect/issues/2123)
+- Typo! [\#1809](https://github.com/RestComm/Restcomm-Connect/issues/1809)
+- Migrate http://docs.telestax.com/restcomm-docker-quick-start-guide/ to asciidoc [\#1086](https://github.com/RestComm/Restcomm-Connect/issues/1086)
+
+**Merged pull requests:**
+
+- Issue2175 js password validation error logging [\#2214](https://github.com/RestComm/Restcomm-Connect/pull/2214) ([otsakir](https://github.com/otsakir))
+- Add warning about outdated architecture diagrams [\#2200](https://github.com/RestComm/Restcomm-Connect/pull/2200) ([gsaslis](https://github.com/gsaslis))
+
+## [8.2.0.MPROV_Voice2b.77](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_Voice2b.77) (2017-06-06)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1241...8.2.0.MPROV_Voice2b.77)
+
+**Closed issues:**
+
+- Olympus text box change place while calling [\#2147](https://github.com/RestComm/Restcomm-Connect/issues/2147)
+- Conference perf job fails [\#2116](https://github.com/RestComm/Restcomm-Connect/issues/2116)
+- Requirements and Design document for CDR refactoring [\#2060](https://github.com/RestComm/Restcomm-Connect/issues/2060)
+- UserAgentManager actor restarts on NPE after ApplicationSession invalidate\(\) [\#1764](https://github.com/RestComm/Restcomm-Connect/issues/1764)
+- Support transition for Account auth token [\#1491](https://github.com/RestComm/Restcomm-Connect/issues/1491)
+
+## [8.2.0.1241](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1241) (2017-06-01)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1240...8.2.0.1241)
+
+**Closed issues:**
+
+- IncomingPhoneNumbersDao: Improve REGEX check [\#2179](https://github.com/RestComm/Restcomm-Connect/issues/2179)
+- Make Dashboard links to RVD configurable through dashboard.json [\#2174](https://github.com/RestComm/Restcomm-Connect/issues/2174)
+
+## [8.2.0.1240](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1240) (2017-05-30)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1239...8.2.0.1240)
+
+## [8.2.0.1239](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1239) (2017-05-29)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1238...8.2.0.1239)
+
+**Closed issues:**
+
+- Update RCML documentation including whats new for video [\#2149](https://github.com/RestComm/Restcomm-Connect/issues/2149)
+- Update TADHack environment for Restconn [\#2130](https://github.com/RestComm/Restcomm-Connect/issues/2130)
+- Missing configuration when using docker [\#2055](https://github.com/RestComm/Restcomm-Connect/issues/2055)
+- Conference participants have no audio when using XMS [\#1645](https://github.com/RestComm/Restcomm-Connect/issues/1645)
+- Making a video call from tadhack olympus to +1235 fails [\#1477](https://github.com/RestComm/Restcomm-Connect/issues/1477)
+
+**Merged pull requests:**
+
+- fixed zendesk\#34319 [\#2172](https://github.com/RestComm/Restcomm-Connect/pull/2172) ([anhntnguyen](https://github.com/anhntnguyen))
+
+## [8.2.0.1238](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1238) (2017-05-22)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_Voice2b.9...8.2.0.1238)
+
+**Closed issues:**
+
+- Response to outbound SMS never reach the client that initiated the message [\#2166](https://github.com/RestComm/Restcomm-Connect/issues/2166)
+- Support for Java 8? [\#2161](https://github.com/RestComm/Restcomm-Connect/issues/2161)
+- RC rest api return 200 OK to new client addition even if client with same name exist [\#2160](https://github.com/RestComm/Restcomm-Connect/issues/2160)
+
+## [8.2.0.MPROV_Voice2b.9](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_Voice2b.9) (2017-05-18)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1237...8.2.0.MPROV_Voice2b.9)
+
+**Closed issues:**
+
+- Unplanned work for `George 8.2.0 Sprint 2` [\#2120](https://github.com/RestComm/Restcomm-Connect/issues/2120)
+
+## [8.2.0.1237](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1237) (2017-05-17)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1236...8.2.0.1237)
+
+**Closed issues:**
+
+- CallManager properly handle numbers that start with + [\#2158](https://github.com/RestComm/Restcomm-Connect/issues/2158)
+- Outbound call never reach the completed state when inbound call sends BYE [\#2157](https://github.com/RestComm/Restcomm-Connect/issues/2157)
+
+## [8.2.0.1236](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1236) (2017-05-15)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1235...8.2.0.1236)
+
+**Closed issues:**
+
+- MonitoringService should return a link to Calls API to get the list of active calls instead of return an array of call details [\#1453](https://github.com/RestComm/Restcomm-Connect/issues/1453)
+
+**Merged pull requests:**
+
+- fix null variable that prevents Regex from working [\#2151](https://github.com/RestComm/Restcomm-Connect/pull/2151) ([croufay](https://github.com/croufay))
+
+## [8.2.0.1235](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1235) (2017-05-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1234...8.2.0.1235)
+
+## [8.2.0.1234](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1234) (2017-05-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1233...8.2.0.1234)
+
+## [8.2.0.1233](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1233) (2017-05-12)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.issue2130.8...8.2.0.1233)
+
+## [8.2.0.issue2130.8](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.issue2130.8) (2017-05-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.issue2130.7...8.2.0.issue2130.8)
+
+## [8.2.0.issue2130.7](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.issue2130.7) (2017-05-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1232...8.2.0.issue2130.7)
+
+**Closed issues:**
+
+- Properly clean up CANCELED outgoing calls [\#2139](https://github.com/RestComm/Restcomm-Connect/issues/2139)
+
+**Merged pull requests:**
+
+- increased column length [\#2142](https://github.com/RestComm/Restcomm-Connect/pull/2142) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1232](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1232) (2017-05-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1231...8.2.0.1232)
+
+## [8.2.0.1231](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1231) (2017-05-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1230...8.2.0.1231)
+
+## [8.2.0.1230](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1230) (2017-05-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1229...8.2.0.1230)
+
+**Closed issues:**
+
+- RC does not not stop MOH for XMS media server [\#2137](https://github.com/RestComm/Restcomm-Connect/issues/2137)
+- Properly clean up BUSY Outgoing calls [\#2135](https://github.com/RestComm/Restcomm-Connect/issues/2135)
+
+**Merged pull requests:**
+
+- patched \#2137 [\#2140](https://github.com/RestComm/Restcomm-Connect/pull/2140) ([maria-farooq](https://github.com/maria-farooq))
+
+## [8.2.0.1229](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1229) (2017-05-10)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1227...8.2.0.1229)
+
+**Closed issues:**
+
+- ExtensionsConfiguration REST API wrong json response on getConfiguration\(\) [\#2134](https://github.com/RestComm/Restcomm-Connect/issues/2134)
+
+## [8.2.0.1227](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1227) (2017-05-09)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1226...8.2.0.1227)
+
+**Merged pull requests:**
+
+- Issue \#1981: WIP MultiProvider RC extension [\#2007](https://github.com/RestComm/Restcomm-Connect/pull/2007) ([abdulazizali77](https://github.com/abdulazizali77))
+
+## [8.2.0.1226](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1226) (2017-05-09)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.issue2130.5...8.2.0.1226)
+
+## [8.2.0.issue2130.5](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.issue2130.5) (2017-05-08)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1225...8.2.0.issue2130.5)
+
+**Closed issues:**
+
+- Update TADHack cloud environment [\#1945](https://github.com/RestComm/Restcomm-Connect/issues/1945)
+- Video conferencing - RCML [\#1552](https://github.com/RestComm/Restcomm-Connect/issues/1552)
+
+**Merged pull requests:**
+
+- Issue\#708 Add PhoneNumber Regex for SMS/Voice and USSD [\#1806](https://github.com/RestComm/Restcomm-Connect/pull/1806) ([croufay](https://github.com/croufay))
+
+## [8.2.0.1225](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1225) (2017-05-05)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1223...8.2.0.1225)
+
+**Closed issues:**
+
+- monitoringservice metrics for registered users should distinctly identify users of all organizations [\#2128](https://github.com/RestComm/Restcomm-Connect/issues/2128)
+- Race condition that prevents inbound Call actors clean up when using LCM [\#2117](https://github.com/RestComm/Restcomm-Connect/issues/2117)
+- Unplanned work for George's 8.2.0 sprint 1 [\#2104](https://github.com/RestComm/Restcomm-Connect/issues/2104)
+
+## [8.2.0.1223](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1223) (2017-04-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1222...8.2.0.1223)
+
+## [8.2.0.1222](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1222) (2017-04-28)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1221...8.2.0.1222)
+
+**Closed issues:**
+
+- ACK RURI from call actor, should contain the user part of the original RURI [\#2111](https://github.com/RestComm/Restcomm-Connect/issues/2111)
+
+## [8.2.0.1221](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1221) (2017-04-27)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1220...8.2.0.1221)
+
+**Closed issues:**
+
+- SmsSession support for To=client:alice [\#2108](https://github.com/RestComm/Restcomm-Connect/issues/2108)
+
+## [8.2.0.1220](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1220) (2017-04-26)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1219...8.2.0.1220)
+
+**Closed issues:**
+
+- Dial with record=true test cases are failing [\#2103](https://github.com/RestComm/Restcomm-Connect/issues/2103)
+
+## [8.2.0.1219](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1219) (2017-04-26)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_1981.9...8.2.0.1219)
+
+**Closed issues:**
+
+- Apply mock-ups [\#2080](https://github.com/RestComm/Restcomm-Connect/issues/2080)
+
+## [8.2.0.MPROV_1981.9](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_1981.9) (2017-04-26)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1217...8.2.0.MPROV_1981.9)
+
+## [8.2.0.1217](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1217) (2017-04-25)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1216...8.2.0.1217)
+
+**Closed issues:**
+
+- mute unmute a call [\#1957](https://github.com/RestComm/Restcomm-Connect/issues/1957)
+- Add functionality to mute/unmute conference participants [\#1135](https://github.com/RestComm/Restcomm-Connect/issues/1135)
+
+## [8.2.0.1216](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1216) (2017-04-24)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_1981.8...8.2.0.1216)
+
+**Closed issues:**
+
+- Add new parameter to pass JVM setting for load test scripts [\#2088](https://github.com/RestComm/Restcomm-Connect/issues/2088)
+- RestComm build process overwrites MGCP driver dependency [\#2015](https://github.com/RestComm/Restcomm-Connect/issues/2015)
+- CDR resulting from sub-account-client inbound calls has parent 'accountSid' [\#1939](https://github.com/RestComm/Restcomm-Connect/issues/1939)
+
+## [8.2.0.MPROV_1981.8](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_1981.8) (2017-04-24)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1215...8.2.0.MPROV_1981.8)
+
+## [8.2.0.1215](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1215) (2017-04-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1214...8.2.0.1215)
+
+## [8.2.0.1214](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1214) (2017-04-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1213...8.2.0.1214)
+
+**Merged pull requests:**
+
+- Revert SMPP SMS encoding to GSM. And use -d encoding for API. [\#2091](https://github.com/RestComm/Restcomm-Connect/pull/2091) ([leftyb](https://github.com/leftyb))
+
+## [8.2.0.1213](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1213) (2017-04-21)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_1981.7...8.2.0.1213)
+
+**Closed issues:**
+
+- George 8.2.0 Sprint 1 [\#2087](https://github.com/RestComm/Restcomm-Connect/issues/2087)
+- Support dialling a registered client if request comes from external network [\#2086](https://github.com/RestComm/Restcomm-Connect/issues/2086)
+- Default organization’s domain\_name in organization table will be picked from RC hostname on bootstrap. [\#2085](https://github.com/RestComm/Restcomm-Connect/issues/2085)
+- Add OPS functionality in RC binary. [\#2082](https://github.com/RestComm/Restcomm-Connect/issues/2082)
+
+## [8.2.0.MPROV_1981.7](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_1981.7) (2017-04-20)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1212...8.2.0.MPROV_1981.7)
+
+**Closed issues:**
+
+- Automatic configuration script failing during bootstrap [\#2069](https://github.com/RestComm/Restcomm-Connect/issues/2069)
+
+## [8.2.0.1212](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1212) (2017-04-18)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1211...8.2.0.1212)
+
+**Merged pull requests:**
+
+- Issue2069 rvdconfig failure [\#2071](https://github.com/RestComm/Restcomm-Connect/pull/2071) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1211](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1211) (2017-04-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.MPROV_1981.6...8.2.0.1211)
+
+## [8.2.0.MPROV_1981.6](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.MPROV_1981.6) (2017-04-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.5...8.2.0.MPROV_1981.6)
+
+## [8.2.0.5](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.5) (2017-04-14)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1210...8.2.0.5)
+
+**Closed issues:**
+
+- GUI: sometimes, numbers stop showing [\#2056](https://github.com/RestComm/Restcomm-Connect/issues/2056)
+- When using the Usage API the uri field in response contains /todo.jsp [\#1689](https://github.com/RestComm/Restcomm-Connect/issues/1689)
+
+## [8.2.0.1210](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1210) (2017-04-13)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/8.2.0.1209...8.2.0.1210)
+
+**Closed issues:**
+
+- Unplanned Support Work for 8.1.0 - Epic [\#1948](https://github.com/RestComm/Restcomm-Connect/issues/1948)
+- Load tests for 8.1.0 [\#1922](https://github.com/RestComm/Restcomm-Connect/issues/1922)
+- Dial Conference load test for 8.1.0 [\#1917](https://github.com/RestComm/Restcomm-Connect/issues/1917)
+
+**Merged pull requests:**
+
+- Designer issue120 logging configuration [\#2057](https://github.com/RestComm/Restcomm-Connect/pull/2057) ([otsakir](https://github.com/otsakir))
+
+## [8.2.0.1209](https://github.com/RestComm/Restcomm-Connect/tree/8.2.0.1209) (2017-04-11)
+[Full Changelog](https://github.com/RestComm/Restcomm-Connect/compare/810ga...8.2.0.1209)
+
+**Closed issues:**
+
+- Add rvd logging configuration to standalone-sip.xml [\#2052](https://github.com/RestComm/Restcomm-Connect/issues/2052)
+- Create Call REST API load test for 8.1.0 [\#1921](https://github.com/RestComm/Restcomm-Connect/issues/1921)
+- Gather load test for 8.1.0 [\#1920](https://github.com/RestComm/Restcomm-Connect/issues/1920)
+- Play one minute announcement load test for 8.1.0 [\#1919](https://github.com/RestComm/Restcomm-Connect/issues/1919)
+- Dial Client load test for 8.1.0 [\#1918](https://github.com/RestComm/Restcomm-Connect/issues/1918)
+- For some cases under heavy load CompletedCalls counter is bigger than the IncomingCalls counter [\#1679](https://github.com/RestComm/Restcomm-Connect/issues/1679)
+
+
+
+\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
diff --git a/CONTRIBUTING.asciidoc b/CONTRIBUTING.asciidoc
new file mode 100644
index 0000000000..8ddee22ffe
--- /dev/null
+++ b/CONTRIBUTING.asciidoc
@@ -0,0 +1,282 @@
+= Contribute to Restcomm
+
+Multiple types of contributions are possible :
+
+ * Using it in your product or project and providing feedback.
+ * Code & Algorithms: Core Projects, Incubator projects, Frameworks
+ * Use cases, feature requests: Roadmap influence
+ * Community Support, bug fixes, forum posts: Help to be helped
+ * Documentation: Everyone needs good docs, Code is a moving targed.
+ * Testing (Perf, load, security, unit tests, interop, ...) / CI
+
+Here is specific types of contributions that requires a little more details if you want to get involved
+
+ * Fixing Bugs : See https://help.github.com/articles/closing-issues-via-commit-messages
+ * Reporting Bugs : To report a bug, if possible, provide a small example that illustrates the bug. You can pattern
+ the test case usually along the lines of ones found in the
+ link:https://github.com/Restcomm/Restcomm-Connect/tree/master/restcomm/restcomm.testsuite[testsuite].
+ Having a test case handy speeds up the bug fix. Your test case will be included in the project as a test case.
+ Open an Issue as defined in the section below so other users can know about the issue and its status.
+ Please attach your test case or bug description with debug log files there.
+ * Contributing Extensions and enhancements (i.e. support for extension RFCs and drafts that are not covered by
+ Restcomm) or Contributing code snippets and examples or Contributing test cases to be included with the
+ distribution: See Contribution Process below in Section "How to check out, change, review, and commit code".
+ Also open a thread on link:http://groups.google.com/group/restcomm[the mailing list of Restcomm google group]
+ to discuss it with the community and Restcomm Team Members.
+
+Your contributions will be acknowledged individually in the code (as a comment) and in the
+link:http://www.telestax.com/opensource/#Contribute[Acknowledgement page].
+
+
+= Opening an Issue
+
+link:https://github.com/Restcomm/Restcomm-Connect/issues/new[Open An Issue Here]
+
+= Becoming a Contributor
+
+In order to become a contributor with write access to the code, you will need to have demonstrated an understanding
+of the codebase and testsuite by participating in the design discussions and submitting patches for bugs/enchancements
+before we will grant developer access.
+
+Contributing to Restcomm requires you to accept link:http://telestax.com/opensource/[the TeleStax Contributor Agreement]
+(bottom of the page).
+
+= How to check out, change, review, and commit code
+== Introduction
+
+Restcomm projects use Git, a distributed version control system. What this means is that, even though this page hosts
+a central repository, there can be many clone repositories with changes of their own, and then some of those can be
+merged back into the main repository.
+
+*The great part is that you can start contributing and create our own clone without having write access to the
+Restcomm repository*
+
+This document describes the workflow for checking out code, making clones, reviewing patches, and committing code.
+
+== Checking out Restcomm Connect (Linux)
+
+For non-committers, checking out code is simple.
+
+=== Install Git
+
+Follow the installing Git instructions. Ubuntu users can simply type:
+
+[source,bash]
+----
+sudo apt-get install git-core
+----
+
+Configure Git to convert line endings on commit
+
+[source,bash]
+----
+git config --global core.autocrlf input
+----
+
+=== Checkout the code
+
+To check out the code :
+
+[source,bash]
+----
+git clone git@github.com:Restcomm/Restcomm-Connect.git
+----
+
+
+=== Building Restcomm From Source
+To Build Restcomm from Source, follow those instructions : http://docs.telestax.com/restcomm-mobicents-building-from-source/
+
+
+=== Committing code
+
+The following License Header has to be placed on top of each source code file contributed
+
+[source,java]
+----
+/*
+ * TeleStax, Open Source Cloud Communications
+ * Copyright 2011-2015, 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
+ *
+ */
+----
+
+The model we've chosen for developing Restcomm is the following:
+
+Each contributor creates their own fork of the Restcomm project (you want to contribute to) repository.
+
+This clone is hosted on Github servers, and can be created by clicking *Fork* button from
+https://github.com/Restcomm/Restcomm-Connect
+
+The contributor then makes a local clone of their GitHub fork, which is stored on their local machine.
+Instructions for checking it out is https://github.com//Restcomm
+
+The contributor creates a new Issue explaining their contribution at
+https://github.com/Restcomm/Restcomm-Connect/issues/new
+
+The contributor then creates a new branch into their local clone
+
+[source,bash]
+----
+git checkout -b feature-branch
+----
+
+Do the changes into their branch for their local branch for the contribution and commit them
+
+[source,bash]
+----
+git commit -a -m "commit message"
+----
+
+**//IMPORTANT//:Please use the Github integration to use the commit message to tie the commits to the Issue you're
+working on. More information on that can be found at https://help.github.com/articles/closing-issues-via-commit-messages**
+
+**//IMPORTANT//: When your change is pulled into the main Restcomm source, the change description that you entered here
+ will show up as changes in the main Restcomm source, so please use a meaningful description - fixing bug, making
+ changes, etc. are not ok, please instead use something like fixing transform bug caused by NPE, etc. so that it makes
+ sense in the context of Restcomm as a whole, not just your clone.**
+
+If you have any new files, make sure to use the following command before committing
+
+[source,bash]
+----
+git add
+----
+
+Same thing if you want to remove some files
+
+[source,bash]
+----
+git rm
+----
+
+== Pushing changes to your online clone
+
+When a change is ready to be integrated back into the repository, that change is pushed from the developer's local
+clone to their Github Fork clone.
+
+[source,bash]
+----
+git push origin feature-branch
+----
+
+To avoid merge soup, please rebase your branch first
+
+==== Bringing in new changes from the upstream repository
+
+If the main repository has evolved since your last push to your clone repository, you will need to bring those changes
+into your repository as well as potentially merge them.
+
+You need to add a remote via which you will identify the upstream repository:
+
+[source,bash]
+----
+git remote add upstream git@github.com:Restcomm/Restcomm-Connect.git
+----
+
+Now whenever you want to merge upstream changes into your clone, do the following:
+
+[source,bash]
+----
+git fetch upstream
+git merge upstream/master
+----
+
+==== Pushing changes to your clone repository
+
+First pull in all of the latest changes from upstream, apply them to your master branch, then rebase your feature
+branch against master before merging it into master and pushing it upstream:
+
+[source,bash]
+----
+git checkout master
+git fetch upstream
+git merge upstream/master
+git checkout awesome-feature
+git rebase master
+(fix any conflicts with upstream changes)
+git push origin feature-branch
+----
+
+Browse to Source -> Changes from the project page for your clone and navigate to the page with details on the branch
+to be reviewed. For example, https://github.com//Restcomm/tree/development
+
+You will need to paste the URL for this page into the issue you created earlier.
+Describe the code to be reviewed, its purpose, and paste in the URL for the relevant changeset(s) or branch(es).
+
+The code will be reviewed on the contributor's clone - if any further changes are suggested, a couple of iterations
+might be needed so the contributor will need to modify the code again, commit, push and comment on the issue.
+
+Once the change is approved, a committer of Restcomm will merge it back into the main repository with the following
+commands.
+
+[source,bash]
+----
+git checkout -b feature-branch
+git pull https://github.com//Restcomm/ feature-branch
+git checkout master
+git merge feature-branch
+----
+
+Even though this may sound complicated, this process makes code reviews easier and allows a lot of people to work on
+changes in parallel.
+
+==== Code formatting
+
+In order to avoid merge conflicts, be it with new features or bug fixes, Restcomm takes advantage of maven code
+formatting plugin. By default, all of our projects trigger this plugin during build. It provides information on code
+style and violations of certain rules.
+Example failure may look as follows:
+
+[source,bash]
+----
+[INFO] Starting audit...
+/home/baranowb/Restcomm/git/test/src/main/java/Test.java:46: Line has trailing spaces.
+/home/baranowb/Restcomm/git/test/src/main/java/Test.java:47:1: '{' should be on the previous line.
+/home/baranowb/Restcomm/git/test/src/main/java/Test.java:50: Line has trailing spaces.
+Audit done.
+----
+
+Contributor responsibility is to provide us with code, which obeys formatting rules. If source does not pass code
+style checks, it won't be accepted!
+
+===== IDE formatting support
+
+IDEs have native support for formatting. To take advantage of it, you need to import configuration files.
+Restcomm has projects wide configuration for IDEs. It can be found here:
+http://grepcode.com/snapshot/repo1.maven.org/maven2/org.mobicents/checkstyle/1.0.0.FINAL/
+or in any tagged relase of this artifact.
+
+===== Eclipse
+To import formatter rules into eclipse perform following:
+
+ * Window > Preferences > Java > Code Style > Clean Up > 'Import' -> cleanup.xml
+ * Window > Preferences > Java > Code Style > Formatter > 'Import' -> formatter.xml
+
+Optionally:
+ * Window > Preferences > Java > Code Style > Code Templates > 'Import' -> templates.xml
+
+===== Maven checkstyle configuration
+
+The checkstyle plugin is pre-configured in mobicents-parent artifact. To enable it in any subproject which depends on it, you need to add only following lines in *plugins* section of master project pom:
+
+[source,xml]
+----
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+
+----
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000000..f55dbff39b
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,30 @@
+node("cxs-ups-testsuites_large") {
+ echo sh(returnStdout: true, script: 'env')
+
+ stage ('Checkout') {
+ checkout scm
+ }
+
+ stage ("Build") {
+ // Run the maven build with in-module unit testing
+ sh "mvn -f restcomm/pom.xml -T 1.5C clean install -pl \\!restcomm.testsuite -Dmaven.test.failure.ignore=true -Dmaven.test.redirectTestOutputToFile=true"
+ //keep this build for later use
+ junit '**/target/surefire-reports/*.xml'
+ //prevent to report this test results two times
+ sh "mvn -f restcomm/pom.xml clean"
+ }
+
+ stage("CITestsuiteSeq") {
+ sh 'mvn -f restcomm/restcomm.testsuite/pom.xml clean install -DskipUTs=false -Dmaven.test.failure.ignore=true -Dmaven.test.redirectTestOutputToFile=true -Dfailsafe.rerunFailingTestsCount=0 -DexcludedGroups="org.restcomm.connect.commons.annotations.ParallelClassTests or org.restcomm.connect.commons.annotations.UnstableTests or org.restcomm.connect.commons.annotations.BrokenTests"'
+ junit testResults: '**/target/surefire-reports/*.xml', testDataPublishers: [[$class: 'StabilityTestDataPublisher']]
+ //prevent to report this test results two times
+ sh "mvn -f restcomm/pom.xml clean"
+ }
+
+ stage("CITestsuiteParallel") {
+ sh 'mvn -f restcomm/restcomm.testsuite/pom.xml clean install -Pparallel-testing -DforkCount=16 -Dmaven.test.failure.ignore=true -Dmaven.test.redirectTestOutputToFile=true -Dfailsafe.rerunFailingTestsCount=0 -Dgroups="org.restcomm.connect.commons.annotations.ParallelClassTests" -DexcludedGroups="org.restcomm.connect.commons.annotations.UnstableTests or org.restcomm.connect.commons.annotations.BrokenTests"'
+ junit testResults: '**/target/surefire-reports/*.xml', testDataPublishers: [[$class: 'StabilityTestDataPublisher']]
+ //prevent to report this test results two times
+ sh "mvn -f restcomm/pom.xml clean"
+ }
+}
diff --git a/README.md b/README.md
index c74e9d3178..1824dc5a9d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
RestComm
========
+[](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FRestComm%2FRestcomm-Connect?ref=badge_shield)
The Open Source Cloud Communications Platform
@@ -8,7 +9,7 @@ The Open Source Cloud Communications Platform
What is RestComm ?
========
-Mobicents RestComm is a next generation Cloud Communications Platform. It allows web developers to rapidly build voice, video, WebRTC, USSD, SMS, fax and rich messaging applications. Restcomm opens new revenue streams for service providers by exposing existing SS7 and IMS core network assets to application developers.
+RestComm is a next generation Cloud Communications Platform. It allows web developers to rapidly build voice, video, WebRTC, USSD, SMS, fax and rich messaging applications. Restcomm opens new revenue streams for service providers by exposing existing SS7 and IMS core network assets to application developers.
Restcomm enables apps such as telehealth, group communication, in-game messaging, online experience sharing, interactive customer support and others.
@@ -16,24 +17,29 @@ Telecom Application Development is within reach of only a small number of highly
Restcomm is here to change that! Joining a wave of innovating companies and service providers, Restcomm brings common sense to the millions of web developers with an intuitive and powerful set of RESTful APIs. Read the Restcomm data sheet.
-Ready to take Restcomm for a spin? [TRY IT NOW](https://aws.amazon.com/marketplace/pp/B00FFHJ6SU) on Amazon Marketplace. It only takes a few minutes to set it up and running.
-
Downloads
========
-[Get the latest release!](https://mobicents.ci.cloudbees.com/job/RestComm/lastSuccessfulBuild/artifact/) or [TRY IT NOW](https://aws.amazon.com/marketplace/pp/B00FFHJ6SU) on Amazon Marketplace. It only takes a few minutes to set it up and running.
+Use [the Docker image](http://documentation.telestax.com/connect/configuration/docker/Restcomm%20-%20Docker%20Quick%20Start%20Guide.html#restcomm-docker/). It only takes a few minutes to set it up and running.
+Alternatively, you can download the [Binary zip](https://github.com/RestComm/Restcomm-Connect/releases/latest) as well
Documentation
========
-Read the [Online RestComm Documentation](http://docs.telestax.com/) or it is also contained in the download binary
+Read the [Online RestComm Documentation](http://documentation.telestax.com/connect/) or it is also contained in the download binary
+
+Want to Contribute ?
+========
+[See our Contributors Guide](CONTRIBUTING.asciidoc) and [How to build RestComm From Source](http://docs.telestax.com/restcomm-mobicents-building-from-source/) and [](https://gitter.im/RestComm/Restcomm-Connect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
Issue Tracking and Roadmap
========
-[Issue Tracker](https://github.com/Mobicents/RestComm/issues)
+[Issue Tracker](https://github.com/RestComm/RestComm-Core/issues)
Questions ?
========
-Please ask your question on our [public forum](http://groups.google.com/group/restcomm)
+Please ask your question on [StackOverflow](http://stackoverflow.com/questions/tagged/restcomm) or the Google [public forum](http://groups.google.com/group/restcomm) and [](https://gitter.im/RestComm/Restcomm-Connect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
License
========
@@ -42,10 +48,15 @@ RestComm is lead by [TeleStax](http://www.telestax.com/), Inc. and developed col
RestComm is licensed under dual license policy. The default license is the Free Open Source GNU Affero GPL v3.0. Alternatively a commercial license can be obtained from Telestax ([contact form](http://www.telestax.com/contactus/#InquiryForm))
+[](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FRestComm%2FRestcomm-Connect?ref=badge_large)
+
Continuous Integration and Delivery
========
-[](https://mobicents.ci.cloudbees.com/job/RestComm/)
+[![RestComm Continuous Job]](https://cxs.restcomm.com/view/Restcomm/job/UPS_RestComm/)
Acknowledgements
========
+Java Profiler sponsored by YourKit
+[](https://www.yourkit.com/)
+
[See who has been contributing to RestComm](http://www.telestax.com/opensource/acknowledgments/)
diff --git a/architecture_diagrams/README.asciidoc b/architecture_diagrams/README.asciidoc
new file mode 100644
index 0000000000..83d8dccd75
--- /dev/null
+++ b/architecture_diagrams/README.asciidoc
@@ -0,0 +1,8 @@
+= Restcomm Connect Architecture Diagrams
+
+WARNING: Some of the diagrams here are outdated and are pending an update. Once updated, they will also probably be
+converted to a different format, so please don't worry too much about getting the below app (Dia Diagram Editor)
+working on your machine to view these diagrams.
+
+This directory contains some architecture diagrams for Restcomm Connect. The application you can use for opening them is
+found at http://dia-installer.de/.
diff --git a/architecture_diagrams/interpreter.dia b/architecture_diagrams/interpreter.dia
index 195115cdbc..8a6c04611e 100644
Binary files a/architecture_diagrams/interpreter.dia and b/architecture_diagrams/interpreter.dia differ
diff --git a/architecture_diagrams/mscontrol/add-participant-flow.dia b/architecture_diagrams/mscontrol/add-participant-flow.dia
new file mode 100644
index 0000000000..593c02b0c3
Binary files /dev/null and b/architecture_diagrams/mscontrol/add-participant-flow.dia differ
diff --git a/architecture_diagrams/mscontrol/bridge-add-participant.dia b/architecture_diagrams/mscontrol/bridge-add-participant.dia
new file mode 100644
index 0000000000..8618225852
Binary files /dev/null and b/architecture_diagrams/mscontrol/bridge-add-participant.dia differ
diff --git a/architecture_diagrams/mscontrol/bridge-classes.dia b/architecture_diagrams/mscontrol/bridge-classes.dia
new file mode 100644
index 0000000000..4897aa1b5f
Binary files /dev/null and b/architecture_diagrams/mscontrol/bridge-classes.dia differ
diff --git a/architecture_diagrams/mscontrol/bridge-mscontrol.dia b/architecture_diagrams/mscontrol/bridge-mscontrol.dia
new file mode 100644
index 0000000000..39e8b96911
Binary files /dev/null and b/architecture_diagrams/mscontrol/bridge-mscontrol.dia differ
diff --git a/architecture_diagrams/mscontrol/bridge-sequence-new-proposal.dia b/architecture_diagrams/mscontrol/bridge-sequence-new-proposal.dia
new file mode 100644
index 0000000000..de36eb2dfd
Binary files /dev/null and b/architecture_diagrams/mscontrol/bridge-sequence-new-proposal.dia differ
diff --git a/architecture_diagrams/mscontrol/bridge-sequence.dia b/architecture_diagrams/mscontrol/bridge-sequence.dia
new file mode 100644
index 0000000000..89cb2e9cf2
Binary files /dev/null and b/architecture_diagrams/mscontrol/bridge-sequence.dia differ
diff --git a/architecture_diagrams/mscontrol/bridge.dia b/architecture_diagrams/mscontrol/bridge.dia
new file mode 100644
index 0000000000..8c9d9fb919
Binary files /dev/null and b/architecture_diagrams/mscontrol/bridge.dia differ
diff --git a/architecture_diagrams/mscontrol/call-add-participant.dia b/architecture_diagrams/mscontrol/call-add-participant.dia
new file mode 100644
index 0000000000..48c8dc49b8
Binary files /dev/null and b/architecture_diagrams/mscontrol/call-add-participant.dia differ
diff --git a/architecture_diagrams/mscontrol/call-mscontrol-stopping-sequence.dia b/architecture_diagrams/mscontrol/call-mscontrol-stopping-sequence.dia
new file mode 100644
index 0000000000..87c4dc3bd7
Binary files /dev/null and b/architecture_diagrams/mscontrol/call-mscontrol-stopping-sequence.dia differ
diff --git a/architecture_diagrams/mscontrol/call-mscontrol.dia b/architecture_diagrams/mscontrol/call-mscontrol.dia
new file mode 100644
index 0000000000..5c8cebbfce
Binary files /dev/null and b/architecture_diagrams/mscontrol/call-mscontrol.dia differ
diff --git a/architecture_diagrams/mscontrol/call-sequence-overview.dia b/architecture_diagrams/mscontrol/call-sequence-overview.dia
new file mode 100644
index 0000000000..db3f821207
Binary files /dev/null and b/architecture_diagrams/mscontrol/call-sequence-overview.dia differ
diff --git a/architecture_diagrams/mscontrol/call-workflow-suggestion.dia b/architecture_diagrams/mscontrol/call-workflow-suggestion.dia
new file mode 100644
index 0000000000..cc8ee28700
Binary files /dev/null and b/architecture_diagrams/mscontrol/call-workflow-suggestion.dia differ
diff --git a/architecture_diagrams/mscontrol/call.dia b/architecture_diagrams/mscontrol/call.dia
new file mode 100644
index 0000000000..8f70f3d212
Binary files /dev/null and b/architecture_diagrams/mscontrol/call.dia differ
diff --git a/architecture_diagrams/mscontrol/conference-add-participant.dia b/architecture_diagrams/mscontrol/conference-add-participant.dia
new file mode 100644
index 0000000000..48ac612538
Binary files /dev/null and b/architecture_diagrams/mscontrol/conference-add-participant.dia differ
diff --git a/architecture_diagrams/mscontrol/conference-mscontrol.dia b/architecture_diagrams/mscontrol/conference-mscontrol.dia
new file mode 100644
index 0000000000..9d0af20dc3
Binary files /dev/null and b/architecture_diagrams/mscontrol/conference-mscontrol.dia differ
diff --git a/architecture_diagrams/mscontrol/conference-termination.dia b/architecture_diagrams/mscontrol/conference-termination.dia
new file mode 100644
index 0000000000..6b3682c33d
Binary files /dev/null and b/architecture_diagrams/mscontrol/conference-termination.dia differ
diff --git a/architecture_diagrams/mscontrol/conference.dia b/architecture_diagrams/mscontrol/conference.dia
new file mode 100644
index 0000000000..5b2c2af58e
Binary files /dev/null and b/architecture_diagrams/mscontrol/conference.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/bridge-mscontrol-jsr309.dia b/architecture_diagrams/mscontrol/jsr309/bridge-mscontrol-jsr309.dia
new file mode 100644
index 0000000000..a4476325bc
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/bridge-mscontrol-jsr309.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/bridge-resources-overview.dia b/architecture_diagrams/mscontrol/jsr309/bridge-resources-overview.dia
new file mode 100644
index 0000000000..f72e203c7c
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/bridge-resources-overview.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/call-mscontrol-jsr309.dia b/architecture_diagrams/mscontrol/jsr309/call-mscontrol-jsr309.dia
new file mode 100644
index 0000000000..7824df0978
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/call-mscontrol-jsr309.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/call-resources-overview.dia b/architecture_diagrams/mscontrol/jsr309/call-resources-overview.dia
new file mode 100644
index 0000000000..58cb728213
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/call-resources-overview.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/conference-mscontrol-jsr309.dia b/architecture_diagrams/mscontrol/jsr309/conference-mscontrol-jsr309.dia
new file mode 100644
index 0000000000..5cf6f66cb5
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/conference-mscontrol-jsr309.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/conference-resources-overview.dia b/architecture_diagrams/mscontrol/jsr309/conference-resources-overview.dia
new file mode 100644
index 0000000000..f18d3ec361
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/conference-resources-overview.dia differ
diff --git a/architecture_diagrams/mscontrol/jsr309/conference-workflow-join-participant-jsr309.dia b/architecture_diagrams/mscontrol/jsr309/conference-workflow-join-participant-jsr309.dia
new file mode 100644
index 0000000000..38be00834e
Binary files /dev/null and b/architecture_diagrams/mscontrol/jsr309/conference-workflow-join-participant-jsr309.dia differ
diff --git a/architecture_diagrams/mscontrol/mscontrol-classes.dia b/architecture_diagrams/mscontrol/mscontrol-classes.dia
new file mode 100644
index 0000000000..e14e3a500f
Binary files /dev/null and b/architecture_diagrams/mscontrol/mscontrol-classes.dia differ
diff --git a/architecture_diagrams/mscontrol/mscontrol-packages.dia b/architecture_diagrams/mscontrol/mscontrol-packages.dia
new file mode 100644
index 0000000000..7964542458
Binary files /dev/null and b/architecture_diagrams/mscontrol/mscontrol-packages.dia differ
diff --git a/architecture_diagrams/mscontrol/sub-voice-interpreter.dia b/architecture_diagrams/mscontrol/sub-voice-interpreter.dia
new file mode 100644
index 0000000000..912eea57ef
Binary files /dev/null and b/architecture_diagrams/mscontrol/sub-voice-interpreter.dia differ
diff --git a/architecture_diagrams/mscontrol/voice-interpreter.dia b/architecture_diagrams/mscontrol/voice-interpreter.dia
new file mode 100644
index 0000000000..7f67ee2967
Binary files /dev/null and b/architecture_diagrams/mscontrol/voice-interpreter.dia differ
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000000..6489dd7c3f
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+export MAVEN_OPTS="-Xms1024m -Xmx2048m -XX:MaxPermSize=1024m"
+export ANT_HOME=/opt/ant/apache-ant-1.8.3
+
+rm Restcomm*.zip -rf
+rm dependencies -rf
+
+echo "MAJOR VERSION NUMBER: $MAJOR_VERSION_NUMBER"
+echo "RESTCOMM BRANCH: $RESTCOMM_BRANCH"
+echo "RUN TESTSUITE: $RUN_TESTSUITE"
+
+export WORKSPACE=$TRAVIS_BUILD_DIR
+export BUILD_NUMBER=$TRAVIS_BUILD_NUMBER
+
+export DEPENDENCIES_HOME=$WORKSPACE/dependencies
+mkdir $DEPENDENCIES_HOME
+export RESTCOMM_HOME=$WORKSPACE
+export RELEASE=$RESTCOMM_HOME/release
+cd $RESTCOMM_HOME/restcomm
+git checkout -b restcomm-release-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER
+git rev-parse HEAD > git-info-restcomm.txt
+echo $MAJOR_VERSION_NUMBER.$BUILD_NUMBER >> mss-version.txt
+
+mvn versions:set -DnewVersion=$MAJOR_VERSION_NUMBER.$BUILD_NUMBER -P docs
+git commit -a -m "New release candidate $MAJOR_VERSION_NUMBER.$BUILD_NUMBER"
+
+cd $RELEASE
+FILE=$RESTCOMM_HOME/restcomm/configuration/mss-sip-stack.properties
+sed -e "s|MAJOR_VERSION_NUMBER.BUILD_NUMBER|$MAJOR_VERSION_NUMBER.$BUILD_NUMBER|g" $FILE > $FILE.bak
+mv $FILE.bak $FILE
+ant release -f $RESTCOMM_HOME/release/build.xml -Drestcomm.release.version=$MAJOR_VERSION_NUMBER.$BUILD_NUMBER -Drestcomm.branch.name=restcomm-release-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER -Dcheckout.restcomm.dir=$RESTCOMM_HOME -Dworkspace.restcomm.dir=$RESTCOMM_HOME/restcomm -Dcheckout.dir=$DEPENDENCIES_HOME
+mv $RELEASE/Restcomm-*.zip $WORKSPACE
+ls -la $WORKSPACE/Restcomm-JBoss-AS7-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER.zip
+
+echo "About to upload to Bintray"
+curl -T $WORKSPACE/Restcomm-JBoss-AS7-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER.zip -ugvagenas:$BINTRAY_API_KEY -H "X-Bintray-Package:binaries" -H "X-Bintray-Version:8.2.0" https://api.bintray.com/content/gvagenas/Restcomm-Connect/bin/
+
+
+cd $RESTCOMM_HOME/restcomm
+#commenting the deploy command as it eats up storage on artifactory
+#mvn deploy -Dmaven.test.skip=true
+#mvn -Dgpg.passphrase="$GPG_PASSPHRASE" -f pom.xml clean install deploy -Pattach-sources,generate-javadoc,release-sign-artifacts,cloudbees-oss-release -s /private/mobicents/settings.xml -Dmaven.test.skip=true
+
+#if [ "$RUN_TESTSUITE" = "true" ]
+#then
+#mvn -fn surefire-report:report -Dmaven.test.failure.ignore=true
+#else
+#echo "Will not run test suite because variable is $RUN_TESTSUITE"
+#fi
+
+#git push --repo https://telscalejenkins:m0b1c3nts@bitbucket.org/telestax/telscale-restcomm.git origin restcomm-release-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER
+echo "$MAJOR_VERSION_NUMBER.$BUILD_NUMBER" > $WORKSPACE/restcomm-version.txt
+ls -la $WORKSPACE/*.zip
+md5sum $WORKSPACE/*.zip
+sha1sum $WORKSPACE/*.zip
+
+git commit -a -m 'New release candidate'
+git tag $MAJOR_VERSION_NUMBER.$BUILD_NUMBER
+git push origin $MAJOR_VERSION_NUMBER.$BUILD_NUMBER
+
+cd $RESTCOMM_HOME/restcomm
+mvn -Dlicense.includedScopes=compile license:aggregate-add-third-party
+
+# sonarqube integration
+#cd $RESTCOMM_HOME/restcomm
+#mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar -Dmaven.test.failure.ignore=true -Dsonar.host.url=https://nemo.sonarqube.org -Dsonar.login=Restcomm
diff --git a/liveCallModification/LiveCallModificationAPI_June1_2015.pdf b/liveCallModification/LiveCallModificationAPI_June1_2015.pdf
new file mode 100644
index 0000000000..466caef5d8
Binary files /dev/null and b/liveCallModification/LiveCallModificationAPI_June1_2015.pdf differ
diff --git a/liveCallModification/hold.sh b/liveCallModification/hold.sh
new file mode 100755
index 0000000000..a06f4de1d1
--- /dev/null
+++ b/liveCallModification/hold.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+############################################################
+# Alice calls Bob. Given Alice call_sid, use this script to
+# move both calls to a conference room with music and muted
+# that means to hold the call.
+############################################################
+
+#Provide Restcomm ip address
+restcomm_ip=
+#Provide Username sid
+userSid=
+#Provide Auth Token
+authToken=
+
+#Call SID of the call to move. Use the call SID of the initial Call
+sid=$1
+
+echo "Moving call $1 to Conference"
+
+curl -X POST http://$userSid:$authToken@$restcomm_ip:8080/restcomm/2012-04-24/Accounts/$userSid/Calls.json/$1 -d "Url=http://$restcomm_ip:8080//restcomm/demos/dial/conference/dial-conference.xml" -d "MoveConnectedCallLeg=true"
diff --git a/liveCallModification/unhold.sh b/liveCallModification/unhold.sh
new file mode 100755
index 0000000000..955a27ce17
--- /dev/null
+++ b/liveCallModification/unhold.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+############################################################
+# Use this script to unhold a call previously set on hold
+############################################################
+
+#Provide Restcomm ip address
+restcomm_ip=
+#Provide Username sid
+userSid=
+#Provide Auth Token
+authToken=
+
+#Call SID of the call to move. Use the call SID of the initial Call
+sid=$1
+
+curl -X POST http://$userSid:$authToken@$restcomm_ip:8080/restcomm/2012-04-24/Accounts/$userSid/Calls.json/$1 -d "Url=http://$restcomm_ip:8080/restcomm/demos/dial/conference/dial-conference-moderator.xml "
diff --git a/release/README.md b/release/README.md
new file mode 100644
index 0000000000..e8f2f826a2
--- /dev/null
+++ b/release/README.md
@@ -0,0 +1,51 @@
+RestComm build
+========
+Since RestComm is lead by [TeleStax](http://www.telestax.com/), Inc. and developed collaboratively by a community of individual and enterprise contributors it does not prevent You to try
+the community version and build Yourself.
+Before the build itself you are required to download the dependent deliverables.
+Use following commands:
+```
+ant -f ddd-s3-box.xml box
+```
+to download the dependent deliverables for Restcomm Connect, which are
+* [Sip Servlets](https://github.com/RestComm/sip-servlets)
+* [Media Server](https://github.com/RestComm/mediaserver)
+* [Olympus](https://github.com/RestComm/olympus)
+* [Visual Designer](https://github.com/RestComm/visual-designer)
+
+All mentioned above, must be built and available prior to your build of RestComm Connect, so please make sure to get familiar with
+those projects too.
+Inside file
+```
+ddd-versions.properties
+```
+you will find the configuration of the deliverables, which are going to be downloaded. In case you want to use default and predefined versions
+as you cloned from the repository, do not change anything. For advance usage and testing a different versions, it is your responsibility to
+define proper versions.
+For those able to access the [TeleStax](http://www.telestax.com/), Inc. infrastructure and AWS S3, take advantage of using the
+```
+ant -f ddd-s3-box.xml s3
+```
+
+To build the Restcomm Connect project itself please use:
+```
+ant -f build.xml
+```
+Optionaly, if you want to provide your own settings.xml for your inner maven build use:
+
+```
+ant -f build.xml -Dmvn.arg='-s ${location of your settings.xml file}'
+```
+Other possible targets to use are:
+```
+deploy, release-test
+```
+
+Check the build.xml for more details and specifically properties section
+```
+ \
+ \
+ \
+
+```
+
diff --git a/release/build-restcomm-local.sh b/release/build-restcomm-local.sh
new file mode 100755
index 0000000000..30535782f7
--- /dev/null
+++ b/release/build-restcomm-local.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
+export ANT_HOME=/opt/ant/apache-ant-1.8.3
+export WORKSPACE=/tmp/workspace
+mkdir $WORKSPACE
+cp -ar ../* $WORKSPACE
+
+CURRENT_BRANCH=`git rev-parse --abbrev-ref HEAD`
+export MAJOR_VERSION_NUMBER=8.0.0
+export RESTCOMM_BRANCH=$CURRENT_BRANCH
+export RUN_TESTSUITE=false
+export BUILD_NUMBER=$RESTCOMM_BRANCH-local
+
+rm Mobicents-Restcomm*.zip
+rm dependencies -rf
+
+echo "MAJOR VERSION NUMBER: $MAJOR_VERSION_NUMBER"
+echo "RESTCOMM BRANCH: $RESTCOMM_BRANCH"
+echo "RUN TESTSUITE: $RUN_TESTSUITE"
+
+export DEPENDENCIES_HOME=$WORKSPACE/dependencies
+mkdir $DEPENDENCIES_HOME
+export RESTCOMM_HOME=$WORKSPACE/Restcomm-Connect
+mkdir $RESTCOMM_HOME/restcomm
+export RELEASE=$RESTCOMM_HOME/release
+cd $RESTCOMM_HOME/restcomm
+# git checkout -b restcomm-release-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER
+# git rev-parse HEAD > git-info-restcomm.txt
+echo $MAJOR_VERSION_NUMBER.$BUILD_NUMBER >> mss-version.txt
+
+mvn versions:set -DnewVersion=$MAJOR_VERSION_NUMBER.$BUILD_NUMBER -P docs
+git commit -a -m "New release candidate $MAJOR_VERSION_NUMBER.$BUILD_NUMBER"
+
+cd $RELEASE
+FILE=$RESTCOMM_HOME/restcomm/configuration/mss-sip-stack.properties
+sed -e "s|MAJOR_VERSION_NUMBER.BUILD_NUMBER|$MAJOR_VERSION_NUMBER.$BUILD_NUMBER|g" $FILE > $FILE.bak
+mv $FILE.bak $FILE
+ant release -f $RESTCOMM_HOME/release/build.xml -Drestcomm.release.version=$MAJOR_VERSION_NUMBER.$BUILD_NUMBER -Drestcomm.branch.name=restcomm-release-$MAJOR_VERSION_NUMBER.$BUILD_NUMBER -Dcheckout.restcomm.dir=$RESTCOMM_HOME -Dworkspace.restcomm.dir=$RESTCOMM_HOME/restcomm -Dcheckout.dir=$DEPENDENCIES_HOME
+mv $RELEASE/Restcomm-*.zip $WORKSPACE
+
+cd $RESTCOMM_HOME/restcomm
+#commenting the deploy command as it eats up storage on artifactory
+#mvn deploy -Dmaven.test.skip=true
+
+if [ "$RUN_TESTSUITE" = "true" ]
+then
+mvn -fn test -Dmaven.test.failure.ignore=true
+else
+echo "Will not run test suite because variable is $RUN_TESTSUITE"
+fi
+
+echo "$MAJOR_VERSION_NUMBER.$BUILD_NUMBER" > $WORKSPACE/restcomm-version.txt
+ls -la $WORKSPACE/*.zip
+md5sum $WORKSPACE/*.zip
+sha1sum $WORKSPACE/*.zip
+
+# git tag $MAJOR_VERSION_NUMBER.$BUILD_NUMBER
+# git push origin $MAJOR_VERSION_NUMBER.$BUILD_NUMBER
diff --git a/release/build.xml b/release/build.xml
index 2bdad70fdb..ed9dac5ffc 100755
--- a/release/build.xml
+++ b/release/build.xml
@@ -1,399 +1,257 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
+
-
-
-
- Downloading HSQLDB Driver for Tomcat version: ${mobicents-sipservlets.version}
-
-
-
-
-
+
+
-
-
- Downloading mobicents SipServlets Tomcat version: ${mobicents-sipservlets-as7.version}
-
-
-
-
-
+
+
+
+
+
-
-
-
- Downloading mobicents SipServlets JBoss AS7 version: ${mobicents-sipservlets-as7.version}
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
-
-
-
- Downloading mobicents Media version: ${mobicents-media.version}
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
-
-
-
- Downloading mobicents Diameter version: ${mobicents-diameter.version}
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
- Building mobicents Restcomm
- Restcomm workspace dir: "${workspace.mobicents-restcomm.dir}"
-
-
-
-
-
-
-
-
-
-
+
+ Building Restcomm
+ Restcomm workspace dir: "${workspace.restcomm.dir}"
+
+
+
+
+
+
+
+
+
-
- Copy restcomm
-
-
-
-
-
+
+ Copy restcomm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+-->
+
+
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+ -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/release/build.xml_orig b/release/build.xml_orig
new file mode 100755
index 0000000000..3297a9fce2
--- /dev/null
+++ b/release/build.xml_orig
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading mobicents SipServlets Tomcat version: ${mobicents-sipservlets-as7.version}
+
+
+
+
+
+
+
+
+
+ Downloading mobicents SipServlets JBoss AS7 version: ${mobicents-sipservlets-as7.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading mobicents Media version: ${mobicents-media.version}
+
+
+
+
+
+
+
+
+
+
+ Downloading mobicents Olympus version: ${olympus.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading mobicents Diameter version: ${mobicents-diameter.version}
+
+
+
+
+
+
+
+
+
+
+
+
+ Building mobicents Restcomm
+ Restcomm workspace dir: "${workspace.mobicents-restcomm.dir}"
+
+
+
+
+
+
+
+
+
+
+
+
+ Copy restcomm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ export APPSERVER_PLATFORM='TELESTAX' export DLG_PROPERTY_FILE=$CATALINA_HOME/conf/dlgc_JSR309.properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ export APPSERVER_PLATFORM='TELESTAX' export DLG_PROPERTY_FILE=${JBOSS_HOME}/standalone/configuration/dlgc_JSR309.properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/release/build.xml~ b/release/build.xml~
deleted file mode 100755
index 6475fc7d8e..0000000000
--- a/release/build.xml~
+++ /dev/null
@@ -1,399 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Downloading HSQLDB Driver for Tomcat version: ${mobicents-sipservlets.version}
-
-
-
-
-
-
-
-
- Downloading mobicents SipServlets Tomcat version: ${mobicents-sipservlets-as7.version}
-
-
-
-
-
-
-
-
-
- Downloading mobicents SipServlets JBoss AS7 version: ${mobicents-sipservlets-as7.version}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Downloading mobicents Media version: ${mobicents-media.version}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Downloading mobicents Diameter version: ${mobicents-diameter.version}
-
-
-
-
-
-
-
-
-
-
-
-
- Building mobicents Restcomm
- Restcomm workspace dir: "${workspace.mobicents-restcomm.dir}"
-
-
-
-
-
-
-
-
-
-
-
-
- Copy restcomm
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/release/config-scripts/as7-config-scripts/restcomm/autoconfigure.sh b/release/config-scripts/as7-config-scripts/restcomm/autoconfigure.sh
deleted file mode 100755
index 254a40367b..0000000000
--- a/release/config-scripts/as7-config-scripts/restcomm/autoconfigure.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#! /bin/bash
-##
-## Description: Executes all RestComm configuration scripts for a given version.
-## Author : Henrique Rosa
-##
-BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
-
-# load configuration values
-#source $BASEDIR/restcomm.conf
-
-echo ''
-echo 'RestComm automatic configuration started:'
-for f in $BASEDIR/autoconfig.d/*.sh; do
- echo "Executing configuration file $f..."
- source $f
- echo "Finished executing configuration file $f!"
- echo ''
-done
-echo 'RestComm automatic configuration finished!'
-echo ''
\ No newline at end of file
diff --git a/release/config-scripts/as7-config-scripts/restcomm/restcomm.conf b/release/config-scripts/as7-config-scripts/restcomm/restcomm.conf
deleted file mode 100755
index 6d678d8f02..0000000000
--- a/release/config-scripts/as7-config-scripts/restcomm/restcomm.conf
+++ /dev/null
@@ -1,44 +0,0 @@
-#! /bin/bash
-
-##
-## Description: List of variables used to configure RestComm
-## Author : Henrique Rosa
-##
-
-# Network configuration
-NET_INTERFACE=
-PRIVATE_IP=
-SUBNET_MASK=
-NETWORK=
-BROADCAST_ADDRESS=
-
-# Address for outbound calls
-OUTBOUND_IP=''
-
-# VoIP Innovations variable declarations
-VI_LOGIN=''
-VI_PASSWORD=''
-VI_ENDPOINT=''
-
-# Interfax variable declarations.
-INTERFAX_USER=''
-INTERFAX_PASSWORD=''
-
-# ISpeech variable declarations.
-ISPEECH_KEY=''
-
-# VoiceRSS variable declarations
-VOICERSS_KEY=''
-
-# Acapela variable declarations.
-ACAPELA_APPLICATION=''
-ACAPELA_LOGIN=''
-ACAPELA_PASSWORD=''
-
-# Proxy variable declarations
-ACTIVE_PROXY=''
-TP_LOGIN=''
-TP_PASSWORD=''
-PROXY_IP=''
-INSTANCE_ID=''
-PROXY_PRIVATE_IP='10.179.184.34'
diff --git a/release/config-scripts/as7-config-scripts/restcomm/smpp.conf b/release/config-scripts/as7-config-scripts/restcomm/smpp.conf
new file mode 100644
index 0000000000..2ef25fedc2
--- /dev/null
+++ b/release/config-scripts/as7-config-scripts/restcomm/smpp.conf
@@ -0,0 +1,8 @@
+# Connection details for SMPP Restcomm integration
+SMPP_ACTIVATE='false' #default SMPP activate is always false. Set to true to activate SMPP
+SMPP_SYSTEM_ID=''
+SMPP_PASSWORD=''
+SMPP_SYSTEM_TYPE='' #This is required when working with Nexmo for inboudn SMS
+SMPP_PEER_IP='' #use IP or DNS name of peer SMPP server
+SMPP_PEER_PORT=''
+
diff --git a/release/config-scripts/as7-config-scripts/restcomm/start-restcomm.sh b/release/config-scripts/as7-config-scripts/restcomm/start-restcomm.sh
deleted file mode 100755
index cccdc148be..0000000000
--- a/release/config-scripts/as7-config-scripts/restcomm/start-restcomm.sh
+++ /dev/null
@@ -1,167 +0,0 @@
-#! /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
-##
-
-##
-## FUNCTIONS
-##
-startRestcomm() {
- run_mode="$1"
- bind_address="$2"
-
- # Check if RestComm is already running
- if screen -list | grep -q 'restcomm'; then
- echo 'TelScale RestComm is already running on screen session "restcomm"!'
- exit 1;
- fi
-
- case $run_mode in
- 'standalone'*)
- # start restcomm on standalone mode
- chmod +x $RESTCOMM_HOME/bin/standalone.sh
- screen -dmS 'restcomm' $RESTCOMM_HOME/bin/standalone.sh -b $bind_address
- echo 'TelScale RestComm started running on standalone mode. Screen session: restcomm.'
- echo "Using IP Address: $BIND_ADDRESS"
- ;;
- 'domain'*)
- # start restcomm on standalone mode
- chmod +x $RESTCOMM_HOME/bin/domain.sh
- screen -dmS 'restcomm' $RESTCOMM_HOME/bin/domain.sh -b $bind_address
- 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
- screen -dmS 'restcomm' $RESTCOMM_HOME/bin/standalone.sh -b $bind_address
- echo 'TelScale RestComm started running on standalone mode. Screen session: restcomm.'
- echo "Using IP Address: $BIND_ADDRESS"
- ;;
- esac
-
-
- if [[ "$run_mode" == *"-lb" ]]; then
- echo 'Starting SIP Load Balancer...'
- if screen -ls | grep -q 'balancer'; then
- echo 'SIP Load Balancer is already running on screen session "balancer"!'
- else
- screen -dmS 'balancer' java -DlogConfigFile=$LB_HOME/lb-log4j.xml \
- -jar $LB_HOME/sip-balancer-jar-with-dependencies.jar \
- -mobicents-balancer-config=$LB_HOME/lb-configuration.properties
- echo 'SIP Load Balancer started running on screen session "balancer"!'
- echo "Using IP Address: $BIND_ADDRESS"
- fi
- fi
-}
-
-startMediaServer() {
- echo "Starting Mobicents Media Server..."
- echo "Media Server will bind to the IP Address: $BIND_ADDRESS"
- if screen -ls | grep -q 'mms'; then
- echo '...Mobicents Media Server is already running on screen session "mms"!'
- else
- chmod +x $MMS_HOME/bin/run.sh
- screen -dmS 'mms' $MMS_HOME/bin/run.sh
- echo '...Mobicents Media Server started running on screen "mms"!'
-fi
-}
-
-##
-## MAIN
-##
-# GNU screen needs to be installed
-if [ -z "$(command -v screen)" ]; then
- echo "ERROR: GNU Screen is not installed! Install it and try again."
- echo "Centos/RHEL: yum install screen"
- echo "Debian/Ubuntu: apt-get install screen"
- exit 1
-fi
-
-# ipcalc needs to be installed
-if [ -z "$(command -v ipcalc)" ]; then
- echo "ERROR: ipcalc is not installed! Install it and try again."
- echo "Centos/RHEL: yum install ipcalc"
- echo "Debian/Ubuntu: apt-get install ipcalc"
- exit 1
-fi
-
-# set environment variables for execution
-BASEDIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
-RESTCOMM_HOME=$(cd $BASEDIR/../../ && pwd)
-MMS_HOME=$RESTCOMM_HOME/telscale-media/telscale-media-server
-LB_HOME=$RESTCOMM_HOME/tools/sip-balancer
-
-echo BASEDIR: $BASEDIR
-echo RESTCOMM_HOME: $RESTCOMM_HOME
-source $BASEDIR/restcomm.conf
-
-# input parameters and default values
-RUN_MODE='standalone'
-#NET_INTERFACE=''
-STATIC_ADDRESS=''
-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"
-
-
-if [[ -z "$STATIC_ADDRESS" ]]; then
- STATIC_ADDRESS=$BIND_ADDRESS
-fi
-
-# configure restcomm installation
-source $BASEDIR/autoconfigure.sh
-
-# start restcomm in selected run mode
-startRestcomm "$RUN_MODE" "$BIND_ADDRESS"
-startMediaServer
-exit 0
diff --git a/release/ddd-s3-box.xml b/release/ddd-s3-box.xml
new file mode 100755
index 0000000000..3bff031851
--- /dev/null
+++ b/release/ddd-s3-box.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Please specify the storage with selecting specific targets [box|s3]
+
+
+
+
+
+
+
+
+
+ Downloading ${x.download.@{sequence}.filename}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading ${x.download.@{sequence}.filename}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/release/ddd-versions.properties b/release/ddd-versions.properties
new file mode 100644
index 0000000000..907f4ec37e
--- /dev/null
+++ b/release/ddd-versions.properties
@@ -0,0 +1,30 @@
+############################################################################
+# DDD versions property file #
+##########################################################################
+# #
+# Usage #
+# download.[#].version=[version of release] #
+# download.[#].filename=[filename alias to download] #
+# download.[#].s3url=[S3 partial link pointing to version file] #
+# download.[#].boxurl=[Box static download link] #
+# #
+##################################################################
+download.1.version=3.2.0-80
+download.1.filename=restcomm-sip-servlets.zip
+download.1.s3url=upstream/ci-mirror/jobs/UPS_RestcommSipServlets-Release/80/restcomm-sip-servlets-3.2.0-80-jboss-as-7.2.0.Final.zip
+download.1.boxurl=https://app.box.com/shared/static/yay6y2kwb5dmzjbzl471bk1z4bg5ysbt.zip
+
+download.2.version=7.0.0-20
+download.2.filename=media-server-standalone.zip
+download.2.s3url=upstream/ci-mirror/jobs/media-server-standalone-7/20/restcomm-media-server-7.0.0-20.zip
+download.2.boxurl=https://app.box.com/shared/static/aojh92ln5z6ydfgvssleckfypg3peu7a.zip
+
+download.3.version=1.1.0-99
+download.3.filename=olympus.war
+download.3.s3url=upstream/ci-mirror/jobs/UPS_Olympus/99/olympus.war
+download.3.boxurl=https://app.box.com/shared/static/a100qy39txrtc9e5wr0m3ood02tliuie.war
+
+download.4.version=1.1.0-66
+download.4.filename=restcomm-rvd.war
+download.4.s3url=upstream/ci-mirror/jobs/UPS_VisualDesigner/66/restcomm-rvd.war
+download.4.boxurl=https://app.box.com/shared/static/i4afm017phcxgu4j4k0m74gfy97ux7np.war
diff --git a/release/mms-server-beans.xml b/release/mms-server-beans.xml
deleted file mode 100644
index d53f5ea115..0000000000
--- a/release/mms-server-beans.xml
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 127.0.0.1
- 127.0.0.1
- 127.0.0.1
- 255.255.255.255
- false
- 0
-
-
-
-
-
-
-
-
-
-
-
- 50
-
-
-
-
-
-
-
- org.mobicents.media.server.impl.dsp.audio.l16.Encoder
- org.mobicents.media.server.impl.dsp.audio.l16.Decoder
- org.mobicents.media.server.impl.dsp.audio.g711.alaw.Encoder
- org.mobicents.media.server.impl.dsp.audio.g711.alaw.Decoder
- org.mobicents.media.server.impl.dsp.audio.g711.ulaw.Encoder
- org.mobicents.media.server.impl.dsp.audio.g711.ulaw.Decoder
-
-
-
-
-
-
-
-
-
-
-
- 5
- 5
- 5
- 0
- 0
- 0
- 10
- 10
- 0
-
-
-
-
-
- 2427
-
-
- mgcp-conf.xml
- 25
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- mobicents/ivr/
- org.mobicents.media.core.endpoints.impl.IvrEndpoint
- 50
-
-
-
- mobicents/cnf/
- org.mobicents.media.core.endpoints.impl.ConferenceEndpoint
- 50
-
-
-
- mobicents/bridge/
- org.mobicents.media.core.endpoints.impl.BridgeEndpoint
- 50
-
-
-
- mobicents/relay/
- org.mobicents.media.core.endpoints.impl.PacketRelayEndpoint
- 50
-
-
-
-
-
-
diff --git a/restcomm/configuration/README b/restcomm/configuration/README
new file mode 100644
index 0000000000..8ea49bcc07
--- /dev/null
+++ b/restcomm/configuration/README
@@ -0,0 +1,2 @@
+For Restcomm documentation please visit
+http://docs.telestax.com/restcomm-pages/
diff --git a/restcomm/configuration/RvdExternalServicesDemo.war b/restcomm/configuration/RvdExternalServicesDemo.war
new file mode 100644
index 0000000000..31f5987e73
Binary files /dev/null and b/restcomm/configuration/RvdExternalServicesDemo.war differ
diff --git a/release/RvdExternalServicesDemo.war b/restcomm/configuration/RvdExternalServicesDemo_old_Charles.war
similarity index 100%
rename from release/RvdExternalServicesDemo.war
rename to restcomm/configuration/RvdExternalServicesDemo_old_Charles.war
diff --git a/restcomm/configuration/Telestax-EULA.pdf b/restcomm/configuration/Telestax-EULA.pdf
new file mode 100644
index 0000000000..4bdecb3af7
Binary files /dev/null and b/restcomm/configuration/Telestax-EULA.pdf differ
diff --git a/restcomm/configuration/as7-standalone.conf b/restcomm/configuration/as7-standalone.conf
new file mode 100644
index 0000000000..531fa349f9
--- /dev/null
+++ b/restcomm/configuration/as7-standalone.conf
@@ -0,0 +1,70 @@
+## -*- shell-script -*- ######################################################
+## ##
+## JBoss Bootstrap Script Configuration ##
+## ##
+##############################################################################
+
+#
+# This file is optional; it may be removed if not needed.
+#
+
+#
+# Specify the maximum file descriptor limit, use "max" or "maximum" to use
+# the default, as queried by the system.
+#
+# Defaults to "maximum"
+#
+#MAX_FD="maximum"
+
+#
+# Specify the profiler configuration file to load.
+#
+# Default is to not load profiler configuration file.
+#
+#PROFILER=""
+
+#
+# Specify the location of the Java home directory. If set then $JAVA will
+# be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
+#
+#JAVA_HOME="/opt/java/jdk"
+
+#
+# Specify the exact Java VM executable to use.
+#
+#JAVA=""
+
+if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then
+ JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
+fi
+
+# Uncomment the following line to prevent manipulation of JVM options
+# by shell scripts.
+#
+#PRESERVE_JAVA_OPTS=true
+
+#
+# Specify options to pass to the Java VM.
+#
+if [ "x$JAVA_OPTS" = "x" ]; then
+ JAVA_OPTS=""
+ JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
+else
+ echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
+fi
+
+#https://telestax.atlassian.net/browse/MSS-95 setup MSS conf file and default license dir
+JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone-sip.xml"
+
+
+# Sample JPDA settings for remote socket debugging
+#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
+
+# Sample JPDA settings for shared memory debugging
+#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_shmem,server=y,suspend=n,address=jboss"
+
+# Uncomment to not use JBoss Modules lockless mode
+#JAVA_OPTS="$JAVA_OPTS -Djboss.modules.lockless=false"
+
+# Uncomment to gather JBoss Modules metrics
+#JAVA_OPTS="$JAVA_OPTS -Djboss.modules.metrics=true"
diff --git a/release/catalina.sh b/restcomm/configuration/catalina.sh
similarity index 100%
rename from release/catalina.sh
rename to restcomm/configuration/catalina.sh
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/advanced.conf b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/advanced.conf
new file mode 100644
index 0000000000..1cf888d0cd
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/advanced.conf
@@ -0,0 +1,149 @@
+#! /bin/bash
+
+##
+## Description: List of variables used to configure RestComm
+## Author : Lefteris Banos
+##
+
+#Manual Configuration.
+#If set no automatic configuration will done. Everything needs to be set manually.
+MANUAL_SETUP='FALSE' #Used to configure RestComm manually and not take under consideration restcomm.conf & advanced.conf files.
+
+#Secure SSL configuration.
+#Allowed values FALSE, SELF, AUTH.
+#If SELF set self-signed certificate will be created.
+#If AUTH, Authorized certificate will be used.Need to place the certificate at "$RESTCOMM_HOME/standalone/configuration/"
+#To Disable use 'FALSE'
+SECURESSL=FALSE
+TRUSTSTORE_FILE='restcomm-crt.jks' #File should be located at $RESTCOMM_HOME/standalone/configuration folder. Provide just the name of the trustore file.
+TRUSTSTORE_PASSWORD='changeme' #Password for the trustore file
+TRUSTSTORE_ALIAS='restcomm' #The certificate alias
+
+#HTTPS Settings
+DISABLE_HTTP='false' #Control HTTP connector behavior. Values, TRUE=HTTP connector will be disable, FALSE=HTTP Connector will be active, REDIRECT= http -> https redirection will be enabled (For CLI RestAPI requests when redirect is active https needs to be used).
+#Control whether or not Restcomm will accept self-signed certificates.
+SSL_MODE='strict' #Values allowall=allow self-signed certificates, strict=don't allow self signed certificates. If SECURESSL=SELF set to "allowall" automatically.
+
+#JAVA Options
+#JVM Options used to RUN RC and RMS.
+#RestComm JAVA_OPTS
+#RC_JAVA_OPTS='-Xms1024m -Xmx4096m -Xmn512m -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycle=100 -XX:CMSIncrementalDutyCycleMin=100 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:MaxPermSize=512m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.jboss.server.bootstrap.maxThreads=1 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../../restcomm_dumpfile-$(date +%b_%d_%Y_%H_%M_%S).bin'
+RC_JAVA_OPTS="-Xms1048m -Xmx4096m -XX:MaxPermSize=512m -XX:+UseG1GC -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:G1RSetUpdatingPauseTimePercent=10 -XX:+ParallelRefProcEnabled -XX:G1HeapRegionSize=4m -XX:G1HeapWastePercent=5 -XX:InitiatingHeapOccupancyPercent=85 -XX:+UnlockExperimentalVMOptions -XX:G1MixedGCLiveThresholdPercent=85 -XX:+AlwaysPreTouch -XX:+UseCompressedOops -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.jboss.server.bootstrap.maxThreads=1 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../../restcomm_dumpfile-$(date +%b_%d_%Y_%H_%M_%S).bin"
+#Additional Connectors
+#Add extra connectors if needed. Need to use the following rule:
+#ADDITIONAL_CONNECTOR_X=CONNECTOR_NAME:PORT
+#Available names:sip-tcp,sip-tcp,sip-tls,sip-ws,sip-wss
+#More Info Here: http://documentation.telestax.com/core/sip_servlets/SIP_Servlets_Server_User_Guide.html
+#Example:
+#ADDITIONAL_CONNECTOR_1=second-sip-udp:5090
+#ADDITIONAL_CONNECTOR_2=second-sip-tcp:5090
+
+#MYSQL support.
+#Default: false. If not configured HSQL will be used.
+ENABLE_MYSQL='false'
+MYSQL_USER=''
+MYSQL_PASSWORD=''
+MYSQL_HOST=''
+MYSQL_SCHEMA=''
+MYSQL_SNDHOST='' #Used for DB redundancy. If set RestComm (Jboss) will point to it if principal DB fails.
+
+#Amazon S3 Bucket.
+#Used to store Recordings.
+#Default: false. If not configured internal recordings directory will be used.
+ACTIVATE_S3_BUCKET='FALSE'
+S3_BUCKET_NAME=''
+S3_ACCESS_KEY=''
+S3_SECURITY_KEY=''
+S3_FOLDER_NAME=''
+S3_BUCKET_REGION='' #If not set, "us-east-1" will be used.
+
+#SMTP Configuration
+#Used for system email notifications (When system errors occur).
+#As well used for Restcomm email service (Email Verb).
+SMTP_USER=''
+SMTP_PASSWORD=''
+SMTP_HOST=''
+SMTP_PORT='' #If not set default Port will be used. Port 25.
+
+# Configure Load Balancer
+ACTIVATE_LB='FALSE' #Set to TRUE to activate and make Restcomm register with LB, the default is FALSE,
+LB_PUBLIC_IP='' #The "external" IP of the Telestax LB. Is used for the incoming traffic.
+LB_INTERNAL_IP='' #The "internal" IP of the LB. Is used for RC to connect to the LB. If not set LB_PUBLIC_IP will be used.
+#Ports that used for interchange between RestComm and Load Balancer
+#LB INTERNAL PORTS !!IMPORTANT!!: need to be set same values as LB is configured for the corresponding transport internal Ports.
+LB_INTERNAL_PORT_UDP='5080' #LB internal port used from RC for UDP traffic. Default is 5080
+LB_INTERNAL_PORT_TCP='5080' #LB internal port used from RC for TCP traffic. Default is 5080
+LB_INTERNAL_PORT_TLS='5081' #LB internal port used from RC for TLS traffic. Default is 5081
+LB_INTERNAL_PORT_WS='5082' #LB internal port used from RC for WS traffic. Default is 5082
+LB_INTERNAL_PORT_WSS='5083' #LB internal port used from RC for WSS traffic. Default is 5083
+LB_RMI_PORT='2000' #The port used from RMI connection between RC and LB. Default is 2000.
+#LB External Ports !!IMPORTANT!!: Need to be set same values as LB is configured for the corresponding transport external Ports.
+LB_EXTERNAL_PORT_UDP='5060' #LB external port of LB for UDP traffic. Default is 5060.
+LB_EXTERNAL_PORT_TCP='5060' #LB external port of LB for UDP traffic. Default is 5060.
+LB_EXTERNAL_PORT_TLS='5061' #LB external port of LB for TLS traffic. Default is 5061.
+LB_EXTERNAL_PORT_WS='5062' #LB external port of LB for WS traffic. Default is 5062.
+LB_EXTERNAL_PORT_WSS='5063' #LB external port of LB for WSS traffic. Default is 5063. (Port used for Olympus)
+
+#Load Balancer external HOSTNAME/IP. Must be set if RC under LB.
+#Used to configure DID provider.This way PSTN calls going through LB.
+#DID_URIPORT will be used for the DID provider PORT configuration.
+LBHOST='' #Obligatory to set if Load Balancer is used for PSTN (DID provider configuration).
+
+#RVD configuration
+#RVD workspace path. (If not set default will be used).
+#Default: leave empty.
+RVD_LOCATION=''
+RVD_UNDEPLOY='false'
+RVD_URL='' # override if RVD is not under the same domain with restcomm. Use a base url like http://myrvd.restcomm.com . No path included. This affects restcomm.xml/
+RVD_VIDEO_SUPPORT='false' # Toggle RVD Video RCML generation and UI
+RVD_MAX_MEDIA_FILE_SIZE=4194304 # Limit media file size when uploading. For video should probably be greater
+
+
+#RMS pool size (Un-comment the resource that you want to set the pool size)
+#RMS pool size (Should calculated from number of concurrent calls expected).
+#RESOURCE_IVR=50 #max conc calls * 2
+#RESOURCE_CNF=50 #max concurrent calls
+#RESOURCE_Bridge=50 #max concurrent calls
+#RESOURCE_Relay=0 #Not used
+
+#RestComm Monitoring
+#Enabling following means that there is Graylog server running somewhere as well.
+GRAYLOG_SERVER="" #IP of the Graylog server to send data. To disable please use empty string
+SERVERLABEL="" #RestComm server Label, used to recognise server at Graylog server.
+HD_MONITOR=false #Enable HD usage monitoring.
+RCJVM_MONITOR=false #Enable JVM (Memory, CPU) usage monitoring for RC. Make sure that $JAVA_HOME/lib/tools.jar exist
+RMSJVM_MONITOR=false #Enable JVM (Memory, RAM, CPU) usage monitoring for RMS. Make sure that $JAVA_HOME/lib/tools.jar exist
+RAM_MONITOR=false #Enable overall RAM system monitoring.
+
+#Management User/Password configuration. Used for RestComm statistics consultation (Graylog).
+#Jboss Management interface. More info https://docs.jboss.org/author/display/AS7/Management+resources
+#Used for RestComm statistics consultation (Graylog).
+MGMT_USER='' #Management Interface User configuration.
+MGMT_PASS='' #Management Interface Password configuration.
+
+#Other
+#Other General configuration Options
+#Directory where HSQL database will exist. If leave empty default value will be used.
+#Default: leave empty.
+HSQL_DIR=''
+#Set Adminitrator User & Password when RestComm run first time.
+#If not set default User ("adminitrator@company.com") will be used.
+INITIAL_ADMIN_USER=''
+#If not set default password ("RestComm") will be used.
+INITIAL_ADMIN_PASSWORD=''
+#SNI is to be an equivalent of Virtual Hosting but in HTTPS.
+#It allows many different domains to be served over a single IP.
+#Used in some cases that ES of RVD is not working. (Issue #725)
+SSLSNI=TRUE #Enable/disable SNI (Server Name Indication).
+#USSD GATEWAY CONFIGURATION
+USSDGATEWAYURI=''
+USSDGATEWAYUSER=''
+USSDGATEWAYPASSWORD=''
+#Used to set HTTP Response timeout for RC to download the RCML.
+HTTP_RESPONSE_TIMEOUT=6000
+
+# If set to true RestComm will NOT use cache for *.wav files playback.If set to false RestComm will use cache for *.wav files playback.
+CACHE_NO_WAV=false
+
+#MSS Configuration
+TLS_CLIENT_AUTH_TYPE="Disabled" #Possible values Enabled, Want, Disabled,DisabledAll
\ No newline at end of file
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-SecureSSL.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-SecureSSL.sh
new file mode 100755
index 0000000000..3e187d918b
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-SecureSSL.sh
@@ -0,0 +1,204 @@
+#!/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.
+ 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
\ No newline at end of file
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-dashboard.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-dashboard.sh
new file mode 100644
index 0000000000..ec8c1b1117
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-dialogic-xms.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-dialogic-xms.sh
new file mode 100755
index 0000000000..4b4a8d6403
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-jboss-as.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-jboss-as.sh
new file mode 100755
index 0000000000..c324c99337
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-load-balancer.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-load-balancer.sh
new file mode 100755
index 0000000000..77b5c56486
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-logs.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-logs.sh
new file mode 100755
index 0000000000..5eb9ee7934
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-mysql.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-mysql.sh
new file mode 100755
index 0000000000..7478e55e88
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-olympus.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-olympus.sh
new file mode 100755
index 0000000000..24f3f93115
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-restcomm.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-restcomm.sh
new file mode 100755
index 0000000000..15a6fa3a7f
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-restcomm.sh
@@ -0,0 +1,870 @@
+#!/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 "s|-Dsun.security.ssl.allowLegacyHelloMessages=false -Djsse.enableSNIExtension=.* ||" $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 -s "/restcomm/runtime-settings/dns-provisioning" -t elem -n "restcomm-address" -v "$DNS_PROVISIONING_RESTCOMM_ADDRESS" $FILE
+ xmlstarlet ed --inplace -s "/restcomm/runtime-settings/dns-provisioning" -t elem -n "rr-type" -v "$DNS_PROVISIONING_RR_TYPE" $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 "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
+
+}
+
+# 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
+echo 'Configured RestComm!'
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-rvd-logging.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-rvd-logging.sh
new file mode 100755
index 0000000000..5aed5b9025
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-rvd.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-rvd.sh
new file mode 100755
index 0000000000..d7321d9be0
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-rvd.sh
@@ -0,0 +1,69 @@
+#!/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
+}
+
+# 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"
+ echo "Updated rvd.xml"
+fi
\ No newline at end of file
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-sip-connectors.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-sip-connectors.sh
new file mode 100755
index 0000000000..b0e86b523e
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-utensil.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfig.d/config-utensil.sh
new file mode 100755
index 0000000000..5816553435
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfigure.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/autoconfigure.sh
new file mode 100755
index 0000000000..454c5dca4d
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/collect_jmap.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/collect_jmap.sh
new file mode 100755
index 0000000000..58b00dc67b
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/gsed_macos.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/gsed_macos.sh
new file mode 100755
index 0000000000..2c934ea154
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/jvmtop.jar b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/jvmtop.jar
new file mode 100644
index 0000000000..eb5d7f8460
Binary files /dev/null and b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/jvmtop.jar differ
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/jvmtop.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/jvmtop.sh
new file mode 100755
index 0000000000..32aa5305b2
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/logs_collect.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/logs_collect.sh
new file mode 100755
index 0000000000..f253f176be
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/mediaserver.conf b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/mediaserver.conf
new file mode 100644
index 0000000000..4dfa3d8fed
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/mediaserver.conf
@@ -0,0 +1,58 @@
+#! /bin/bash
+
+## Description: List of variables used to configure RestComm Media Server
+## Author : Henrique Rosa (henrique.rosa@telestax.com)
+
+# Network
+BIND_ADDRESS=127.0.0.1
+EXTERNAL_ADDRESS=
+NETWORK=127.0.0.1
+SUBNET=255.255.255.255
+USE_SBC=true
+
+# MGCP Controller
+MGCP_ADDRESS=127.0.0.1
+MGCP_PORT=2427
+
+# Media
+MEDIA_TIMEOUT=0
+MEDIA_MAX_DURATION=14440
+MEDIA_LOW_PORT=64534
+MEDIA_HIGH_PORT=65534
+MEDIA_JITTER_SIZE=50
+MEDIA_CODECS=pcmu,pcma,telephone-event
+
+# Resources
+EXPECTED_LOAD=50
+AUDIO_CACHE_SIZE=100
+AUDIO_CACHE_ENABLED=false
+DTMF_DETECTOR_DBI=-30
+DTMF_DETECTOR_TONE_DURATION=80
+DTMF_DETECTOR_TONE_INTERVAL=400
+
+# DTLS
+DTLS_MIN_VERSION=1.0
+DTLS_MAX_VERSION=1.2
+DTLS_CIPHER_SUITE=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+DTLS_CERTIFICATE=conf/dtls/x509-server-ecdsa.pem
+DTLS_KEY=conf/dtls/x509-server-key-ecdsa.pem
+DTLS_ALGORITHM=ecdsa
+
+# Logger
+LOG_APPENDER_CONSOLE=INFO
+LOG_APPENDER_FILE=INFO
+
+LOG_FILE_URL=log/server.log
+
+LOG_CATEGORY_MEDIA_SERVER='org.mobicents.media.server:INFO'
+LOG_CATEGORY_MGCP='org.mobicents.media.control.mgcp:INFO'
+LOG_CATEGORY_RTP='org.mobicents.media.server.impl.rtp:INFO'
+LOG_CATEGORY_RTCP='org.mobicents.media.server.impl.rtcp:INFO'
+
+# SSL
+SSL_ENABLED=false
+SSL_KEYSTORE=restcomm.jks
+SSL_PASSWORD=changeme
+
+# Java
+MS_OPTS="-Xms2048m -Xmx2048m -XX:+UseG1GC -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:G1RSetUpdatingPauseTimePercent=10 -XX:+ParallelRefProcEnabled -XX:G1HeapRegionSize=4m -XX:G1HeapWastePercent=5 -XX:InitiatingHeapOccupancyPercent=85 -XX:+UnlockExperimentalVMOptions -XX:G1MixedGCLiveThresholdPercent=85 -XX:+AlwaysPreTouch -XX:+UseCompressedOops -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dhttp.keepAlive=false -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../../mediaserver_dumpfile-$(date +%b_%d_%Y_%H_%M_%S).bin"
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/monitoring/Graylog_Monitoring.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/monitoring/Graylog_Monitoring.sh
new file mode 100644
index 0000000000..9e28525f0e
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/restart-restcomm.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/restart-restcomm.sh
new file mode 100644
index 0000000000..90e9470a76
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/restcomm.conf b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/restcomm.conf
new file mode 100755
index 0000000000..a56a0e4b21
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/restcomm.conf
@@ -0,0 +1,139 @@
+#! /bin/bash
+
+##
+## Description: List of variables used to configure RestComm
+## Author : Henrique Rosa
+## Author : George Vagenas
+##
+
+# Network configuration
+NET_INTERFACE=''
+PRIVATE_IP=''
+SUBNET_MASK=''
+NETWORK=''
+BROADCAST_ADDRESS=''
+# PUBLIC IP ADDRESS
+STATIC_ADDRESS=''
+#hostname of the server to be used at restcomm.xml. If not set the STATIC_ADDRESS will be used.
+RESTCOMM_HOSTNAME=''
+
+# Media Server
+#Media server running external (different node than Restcomm)]
+MS_EXTERNAL=false
+#MS IP ADDRESS if using different IP from RestComm
+MS_ADDRESS=''
+#Values rms: RestComm Media Server, xms: Dialogic Media Server
+MS_COMPATIBILITY_MODE=rms
+LOCALMGCP=2727
+REMOTEMGCP=2427
+MGCP_RESPONSE_TIMEOUT=500
+RECORDINGS_PATH=''
+
+# Activate music on conference when participants==1
+PLAY_WAIT_MUSIC='TRUE'
+
+# Address for outbound calls
+OUTBOUND_PROXY='' #Provide port if different than 5060
+OUTBOUND_PROXY_USERNAME=''
+OUTBOUND_PROXY_PASSWORD=''
+
+# Push notification server
+PUSH_NOTIFICATION_SERVER_ENABLED=false
+PUSH_NOTIFICATION_SERVER_URL=''
+PUSH_NOTIFICATION_SERVER_DELAY=''
+
+# Outbound proxy for SMS
+SMS_PREFIX='#' #For VoipInnovation you will need the '#' character for SMS Prefix
+SMS_OUTBOUND_PROXY='' #Please provide port if different than 5060
+
+# Connection details for SMPP Restcomm integration
+SMPP_ACTIVATE='false' #default SMPP activate is always false. Set to true to activate SMPP
+SMPP_SYSTEM_ID=''
+SMPP_PASSWORD=''
+SMPP_SYSTEM_TYPE=''
+SMPP_PEER_IP='' #use IP or DNS name of peer SMPP server
+SMPP_PEER_PORT=''
+SMPP_SOURCE_MAP=''
+SMPP_DEST_MAP=''
+
+# DID Provision provider variable declarations
+PROVISION_PROVIDER='' # values: VI (VoipInnovation), BW (Bandwidth), NX (Nexmo), VB (Voxbone)
+#Username and password for all supported DID provision providers
+DID_LOGIN=''
+DID_PASSWORD=''
+# VoipInnovation Endpoint ID
+DID_ENDPOINT=''
+#Bandwidth SiteId and AccountId
+DID_SITEID=''
+DID_ACCOUNTID=''
+
+#Port to be used at the DID URI from provider when buying number. Empty for SRV records.
+#Normally set same as the external TCP-SIP port.
+DID_URIPORT=''
+
+# Interfax variable declarations.
+INTERFAX_USER=''
+INTERFAX_PASSWORD=''
+
+# ISpeech variable declarations.
+ISPEECH_KEY=''
+
+#Configure TTS system to use. Accepted values:voicerss,acapela
+TTSSYSTEM='voicerss'
+
+# VoiceRSS variable declarations
+VOICERSS_KEY=''
+
+# Acapela variable declarations.
+ACAPELA_APPLICATION=''
+ACAPELA_LOGIN=''
+ACAPELA_PASSWORD=''
+
+# AWS Polly variable declarations.
+AWS_ACCESS_KEY=''
+AWS_SECRET_KEY=''
+AWS_REGION=''
+
+#RestComm PORT configuration
+HTTP_PORT='8080' #Port used for HTTP. Default 8080
+HTTPS_PORT='8443' #Port used for HTTPS. Default 8443
+#Connectors port configuration. !!IMPORTANT!! If LB is used this ports will be used from LB to send traffic to RC.Under LB this port
+SIP_PORT_UDP='5080' #LB UDP port. Default is 5080
+SIP_PORT_TCP='5080' #LB TCP port. Default is 5080
+SIP_PORT_TLS='5081' #LB TLS port. Default is 5081
+SIP_PORT_WS='5082' #LB WS port. Default is 5082
+SIP_PORT_WSS='5083' #LB WSS port. Default is 5083
+#Port Offset Used when more that one RC is running on the same machine. To avoid port conflicts
+#E.g. If set PORT_OFFSET='100' all configured ports will be accessible from PORT+100.
+PORT_OFFSET='0' #Port offset configurations. Default '0'.
+
+#LOGS level. Usual values : WARN,INFO,DEBUG
+LOG_LEVEL='INFO' #Used for RMS & RC console-handler.
+LOG_LEVEL_COMPONENT_GOVNIST='INFO' #Log level for "gov.nist" module
+LOG_LEVEL_COMPONENT_SIPSERVLET='INFO' #Log level for "org.mobicents.servlet.sip" module
+LOG_LEVEL_COMPONENT_SIPRESTCOMM='INFO' #Log level for "org.mobicents.servlet.sip.restcomm" module
+LOG_LEVEL_COMPONENT_RESTCOMM='INFO' #Log level for "org.restcomm.connect" module
+
+#AKKA log level. Set the Log level for the AKKA actor system.
+AKKA_LOG_LEVEL='INFO'
+
+#ASR drivers
+#list of drivers divided with comma, for example: "driver1,driver2,driver3"
+MG_ASR_DRIVERS=""
+#default asr driver to use. It has to be included to MG_ASR_DRIVERS
+MG_ASR_DRIVER_DEFAULT=""
+
+#DNS Provisioning configuration, for more info read configuration documentation
+#http://documentation.telestax.com/connect/configuration/index.html#Configuration
+DNS_PROVISIONING_CLASS=""
+DNS_PROVISIONING_ENABLED="FALSE"
+DNS_PROVISIONING_RESTCOMM_ADDRESS=""
+DNS_PROVISIONING_RR_TYPE=""
+DNS_PROVISIONING_AWS_ROUTE53_ACCESS_KEY=""
+DNS_PROVISIONING_AWS_ROUTE53_SECRET_KEY=""
+DNS_PROVISIONING_AWS_ROUTE53_REGION=""
+DNS_PROVISIONING_AWS_ROUTE53_TTL=""
+DNS_PROVISIONING_AWS_ROUTE53_HOSTED_ZONE_ID=""
+DNS_PROVISIONING_AWS_ROUTE53_IS_ALIAS=""
+DNS_PROVISIONING_AWS_ROUTE53_ALIAS_EVALUATE_TARGET_HEALTH=""
+DNS_PROVISIONING_AWS_ROUTE53_ALIAS_HOSTED_ZONE_ID=""
\ No newline at end of file
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/set-log-level.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/set-log-level.sh
new file mode 100644
index 0000000000..e3acd40f3b
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/start-mediaserver.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/start-mediaserver.sh
new file mode 100755
index 0000000000..cadee45e16
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/start-restcomm.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/start-restcomm.sh
new file mode 100755
index 0000000000..ae6ba7538e
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/stop-mediaserver.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/stop-mediaserver.sh
new file mode 100755
index 0000000000..a8f2904939
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/stop-restcomm.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/stop-restcomm.sh
new file mode 100755
index 0000000000..6c91d6232d
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/telestax-license.xml b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/telestax-license.xml
new file mode 100644
index 0000000000..31b1d5ee70
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/telestax-license.xml
@@ -0,0 +1,6 @@
+
+
+ true
+
+
+
diff --git a/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/utils/read-network-props.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/utils/read-network-props.sh
new file mode 100644
index 0000000000..096a496be7
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/verify-dependencies.sh b/restcomm/configuration/config-scripts/as7-config-scripts/restcomm/verify-dependencies.sh
new file mode 100755
index 0000000000..dbf06b3195
--- /dev/null
+++ b/restcomm/configuration/config-scripts/as7-config-scripts/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/restcomm/configuration/mms-run.sh b/restcomm/configuration/mms-run.sh
new file mode 100755
index 0000000000..12e69a8c36
--- /dev/null
+++ b/restcomm/configuration/mms-run.sh
@@ -0,0 +1,186 @@
+#!/bin/sh
+### ====================================================================== ###
+## ##
+## Mobicents Media Server Bootstrap Script ##
+## ##
+### ====================================================================== ###
+
+### $Id: run.sh abhayani@redhat.com $ ###
+
+DIRNAME=`dirname $0`
+PROGNAME=`basename $0`
+GREP="grep"
+
+# Use the maximum available, or set MAX_FD != -1 to use that
+MAX_FD="maximum"
+
+#
+# Helper to complain.
+#
+warn() {
+ echo "${PROGNAME}: $*"
+}
+
+#
+# Helper to puke.
+#
+die() {
+ warn $*
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false;
+darwin=false;
+linux=false;
+case "`uname`" in
+ CYGWIN*)
+ cygwin=true
+ ;;
+
+ Darwin*)
+ darwin=true
+ ;;
+
+ Linux)
+ linux=true
+ ;;
+esac
+
+
+# Force IPv4 on Linux systems since IPv6 doesn't work correctly with jdk5 and lower
+if [ "$linux" = "true" ]; then
+ JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$MMS_HOME" ] &&
+ MMS_HOME=`cygpath --unix "$MMS_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JAVAC_JAR" ] &&
+ JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"`
+fi
+
+# Setup MMS_HOME
+if [ "x$MMS_HOME" = "x" ]; then
+ # get the full path (without any relative bits)
+ MMS_HOME=`cd $DIRNAME/..; pwd`
+fi
+export MMS_HOME
+
+# Increase the maximum file descriptors if we can
+if [ "$cygwin" = "false" ]; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ]; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
+ # use the system max
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ]; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# Setup the JVM
+if [ "x$JAVA" = "x" ]; then
+ if [ "x$JAVA_HOME" != "x" ]; then
+ JAVA="$JAVA_HOME/bin/java"
+ else
+ JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
+ JAVA_HOME=$JAVA_HOME/..
+ JAVA="java"
+ fi
+fi
+
+# Setup the classpath
+runjar="$MMS_HOME/bin/run.jar"
+if [ ! -f "$runjar" ]; then
+ die "Missing required file: $runjar"
+fi
+
+MMS_BOOT_CLASSPATH="$runjar"
+
+if [ "x$MMS_CLASSPATH" = "x" ]; then
+ MMS_CLASSPATH="$MMS_BOOT_CLASSPATH"
+else
+ MMS_CLASSPATH="$MMS_CLASSPATH:$MMS_BOOT_CLASSPATH"
+fi
+
+
+# If -server not set in JAVA_OPTS, set it, if supported
+SERVER_SET=`echo $JAVA_OPTS | $GREP "\-server"`
+if [ "x$SERVER_SET" = "x" ]; then
+
+ # Check for SUN(tm) JVM w/ HotSpot support
+ if [ "x$HAS_HOTSPOT" = "x" ]; then
+ HAS_HOTSPOT=`"$JAVA" -version 2>&1 | $GREP -i HotSpot`
+ fi
+
+ # Enable -server if we have Hotspot, unless we can't
+ if [ "x$HAS_HOTSPOT" != "x" ]; then
+ # MacOS does not support -server flag
+ if [ "$darwin" != "true" ]; then
+ JAVA_OPTS="-server $JAVA_OPTS"
+ fi
+ fi
+fi
+
+# Setup MMS specific properties
+JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
+JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx2048m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
+#JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
+
+# Setup the java endorsed dirs
+MMS_ENDORSED_DIRS="$MMS_HOME/lib"
+if [ "x$JAVA_HOME" != "x" ]; then
+ if [ -d "$JAVA_HOME/jre/lib/ext" ]; then
+ MMS_ENDORSED_DIRS="$MMS_ENDORSED_DIRS:$JAVA_HOME/jre/lib/ext"
+ else
+ echo 'ERROR: The extension lib for Java does not exist. Please configure $JAVA_HOME/jre/lib/ext'
+ exit 1
+ fi
+fi
+
+# Setup path for native libs
+LD_LIBRARY_PATH="$MMS_HOME/native"
+export LD_LIBRARY_PATH
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ MMS_HOME=`cygpath --path --windows "$MMS_HOME"`
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ MMS_CLASSPATH=`cygpath --path --windows "$MMS_CLASSPATH"`
+ MMS_ENDORSED_DIRS=`cygpath --path --windows "$MMS_ENDORSED_DIRS"`
+fi
+
+# Display our environment
+echo "========================================================================="
+echo ""
+echo " MMS Bootstrap Environment"
+echo ""
+echo " MMS_HOME: $MMS_HOME"
+echo ""
+echo " JAVA: $JAVA"
+echo ""
+echo " JAVA_OPTS: $JAVA_OPTS"
+echo ""
+echo " CLASSPATH: $MMS_CLASSPATH"
+echo ""
+echo "========================================================================="
+echo ""
+
+ "$JAVA" $JAVA_OPTS \
+ -Djava.ext.dirs="$MMS_ENDORSED_DIRS" \
+ -Dmbrola.base="$MMS_HOME/mbrola" \
+ -classpath "$MMS_CLASSPATH" \
+ org.mobicents.media.server.bootstrap.Main "$@"
+ MMS_STATUS=$?
+
+#java -Djava.ext.dirs=`pwd`/lib -Dmms.home=. -cp .:mms-standalone-2.0.0.BETA1-SNAPSHOT.jar org.mobicents.media.server.bootstrap.jmx.JMXMain
diff --git a/restcomm/configuration/mms-server-beans.xml b/restcomm/configuration/mms-server-beans.xml
new file mode 100644
index 0000000000..8eaf06e2cf
--- /dev/null
+++ b/restcomm/configuration/mms-server-beans.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 127.0.0.1
+ 127.0.0.1
+
+ 127.0.0.1
+ 255.255.255.255
+ false
+ 0
+ 34534
+ 65535
+
+
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+ org.mobicents.media.server.impl.dsp.audio.l16.Encoder
+ org.mobicents.media.server.impl.dsp.audio.l16.Decoder
+ org.mobicents.media.server.impl.dsp.audio.g711.alaw.Encoder
+ org.mobicents.media.server.impl.dsp.audio.g711.alaw.Decoder
+ org.mobicents.media.server.impl.dsp.audio.g711.ulaw.Encoder
+ org.mobicents.media.server.impl.dsp.audio.g711.ulaw.Decoder
+ org.mobicents.media.server.impl.dsp.audio.g729.Encoder
+ org.mobicents.media.server.impl.dsp.audio.g729.Decoder
+ org.mobicents.media.server.impl.dsp.audio.gsm.Encoder
+ org.mobicents.media.server.impl.dsp.audio.gsm.Decoder
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ 5
+ 5
+ 0
+ 0
+ 0
+ 10
+ 10
+ 0
+
+
+
+
+
+ 2427
+
+
+ mgcp-conf.xml
+ 25
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+ mobicents/ivr/
+ org.mobicents.media.core.endpoints.impl.IvrEndpoint
+ 50
+
+
+
+ mobicents/cnf/
+ org.mobicents.media.core.endpoints.impl.ConferenceEndpoint
+ 50
+
+
+
+ mobicents/bridge/
+ org.mobicents.media.core.endpoints.impl.BridgeEndpoint
+ 50
+
+
+
+ mobicents/relay/
+ org.mobicents.media.core.endpoints.impl.PacketRelayEndpoint
+ 50
+
+
+
+
+
+
diff --git a/release/mobicents-dar.properties b/restcomm/configuration/mobicents-dar.properties
similarity index 100%
rename from release/mobicents-dar.properties
rename to restcomm/configuration/mobicents-dar.properties
diff --git a/restcomm/configuration/mobicents_build.xml b/restcomm/configuration/mobicents_build.xml
new file mode 100755
index 0000000000..f24db8e38c
--- /dev/null
+++ b/restcomm/configuration/mobicents_build.xml
@@ -0,0 +1,412 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading HSQLDB Driver for Tomcat version: ${mobicents-sipservlets.version}
+
+
+
+
+
+
+
+
+ Downloading mobicents SipServlets Tomcat version: ${mobicents-sipservlets-as7.version}
+
+
+
+
+
+
+
+
+
+ Downloading mobicents SipServlets JBoss AS7 version: ${mobicents-sipservlets-as7.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading mobicents Media version: ${mobicents-media.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Downloading mobicents Diameter version: ${mobicents-diameter.version}
+
+
+
+
+
+
+
+
+
+
+
+
+ Building mobicents Restcomm
+ Restcomm workspace dir: "${workspace.mobicents-restcomm.dir}"
+
+
+
+
+
+
+
+
+
+
+
+
+ Copy restcomm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/restcomm/configuration/mss-sip-stack.properties b/restcomm/configuration/mss-sip-stack.properties
new file mode 100644
index 0000000000..d677a45474
--- /dev/null
+++ b/restcomm/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/setenv.sh b/restcomm/configuration/setenv.sh
similarity index 100%
rename from release/setenv.sh
rename to restcomm/configuration/setenv.sh
diff --git a/restcomm/configuration/telestax-license.xml b/restcomm/configuration/telestax-license.xml
new file mode 100644
index 0000000000..f8aff59384
--- /dev/null
+++ b/restcomm/configuration/telestax-license.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ true
+ smtp.googlemail.com
+ 465
+ telscale-LI@telestax.com
+ ufrgwluolrorbtco
+ telscale-license@telestax.com
+ true
+
+
+ online
+ TelScale-RestComm
+
+
+
+
+
+
diff --git a/restcomm/pom.xml b/restcomm/pom.xml
index 15c1a27835..e8a1ed2c4d 100644
--- a/restcomm/pom.xml
+++ b/restcomm/pom.xml
@@ -1,15 +1,20 @@
-
- 4.0.0
-
- com.telestax.servlet
- restcomm
- 7.2.0-SNAPSHOT
- pom
- RestComm
- A unified communications platform for web developers.
- http://www.restcomm.org
+
+ 4.0.0
+
+
+ org.restcomm
+ restcomm-parent
+ 4.0.1
+
+
+ org.restcomm
+ restcomm-connect
+ 8.3.0-SNAPSHOT
+ pom
+ RestComm-Connect
+ A unified communications platform for web developers.
+ http://www.restcomm.org
@@ -55,24 +60,25 @@
- scm:git:git@bitbucket.org:telestax/telscale-restcomm.git
- scm:git:git@bitbucket.org:telestax/telscale-restcomm.git
- https://bitbucket.org/telestax/telscale-restcomm
- HEAD
+ scm:git:https://github.com/RestComm/Restcomm-Connect.git
+ scm:git:git@github.com:RestComm/Restcomm-Connect.git
+ https://github.com/RestComm/Restcomm-Connect
- telscale-releases-repository
- TelScale Releases Repository
- http://telestax.artifactoryonline.com/telestax/releases
+ restcomm-releases-repository
+ Restcomm Releases Repository
+ https://oss.sonatype.org/service/local/staging/deploy/maven2
+
- telscale-snapshots-repository
- TelScale Snapshots Repository
- http://telestax.artifactoryonline.com/telestax/snapshots
+ restcomm-snapshots-repository
+ Restcomm Snapshots Repository
+ https://oss.sonatype.org/content/repositories/snapshots
+
2.10.1
2.1.2
@@ -81,41 +87,53 @@
1.5.5
1.7
2.4
- 1.0
+ 1.10
+ 2.6
1.0
- 3.0.0.Final
+ 1.2.0
+ 6.0.23
1.4
2.5
-
- 2.1.547
+ 3.2.0-37
1.0.1
1.2.0
7.0.50
1.2.0
1.2.0
1.13
- 4.2.5
- 2.1
+ 4.5.2
+ 2.3.1
1.4.2
2.7.2
3.2.2
- 2.0
+ 2.9.7
4.3
4.10
1.9.1
- 1.8.0.10
-
- 1.2.222
+ 2.3.2
+ 1.2.293
1.0.3.Final
- 1.0.0-CR1
- 1.0.0-CR1
+ 1.0.1
+ 1.0.2
2.0.0-alpha-4
- 2.0.0
+ 2.0.1
- 7.0.50
+ 7.0.64
1.0.0.FINAL
2.9.1
1.0.0-ALPHA2
+ 1.11.179
+
+ 5.0.8
+ 6.0.2
+ 3.0.0
+ 3.0.2
+ 3.9.6.Final
+ 1.1.3
+ 3.1.0
+ 7.1.0-79
+ 2.8.9
+
@@ -123,8 +141,12 @@
restcomm.commons
restcomm.dao
restcomm.asr
+ restcomm.tts.acapela
restcomm.mgcp
restcomm.fax
+ restcomm.mscontrol.api
+ restcomm.mscontrol.mms
+ restcomm.mscontrol.jsr309
restcomm.sms.api
restcomm.telephony.api
restcomm.interpreter
@@ -133,17 +155,63 @@
restcomm.provisioning.number.api
restcomm.provisioning.number.vi
restcomm.provisioning.number.nexmo
+ restcomm.provisioning.number.bandwidth
+ restcomm.provisioning.number.voxbone
restcomm.telephony
restcomm.tts.api
restcomm.tts.voicerss
restcomm.testsuite
- restcomm.ussd
restcomm.ui
- restcomm.rvd
-
+ restcomm.tts.att
+ restcomm.ussd
+ restcomm.routing
+ restcomm.email
+ restcomm.email.api
+ restcomm.extension.api
+ restcomm.extension.controller
+ restcomm.identity
+ restcomm.mrb
+ restcomm.mrb.api
+ restcomm.dns.api
+ restcomm.monitoring.service
+ restcomm.tts.awspolly
+
+
+
+
+ org.restcomm
+ restcomm-connect.sms.api
+ ${project.version}
+
+
+ junit
+ junit
+ ${junit.version}
+
+
+
+ com.cloudhopper
+ ch-commons-gsm
+ ${ch.commons.gsm.version}
+
+
+
+ com.cloudhopper
+ ch-smpp
+ ${ch.smpp.version}
+
com.google.guava
@@ -190,6 +258,18 @@
${commons-io.version}
+
+ commons-codec
+ commons-codec
+ ${commons-codec.version}
+
+
+
+ commons-lang
+ commons-lang
+ ${commons-lang.version}
+
+
org.slf4j
slf4j-api
@@ -202,12 +282,6 @@
${slf4j.version}
-
- javax.sdp
- nist-sdp
- ${jain.sdp.version}
-
-
jain
jain-mgcp-ri
@@ -239,7 +313,7 @@
provided
-
@@ -372,13 +446,6 @@
provided
-
- org.mobicents.servlet.sip.containers
- sip-servlets-tomcat-7
- ${sipservletapi.version}
- provided
-
-
org.mobicents.servlet.sip
sip-servlets-application-router
@@ -387,10 +454,9 @@
- hsqldb
+ org.hsqldb
hsqldb
${hsqldb.version}
- test
@@ -428,7 +494,7 @@
- org.cafesip.sipunit
+ org.mobicents.sipunit
sipunit
${sipunit.version}
test
@@ -444,6 +510,31 @@
naturalvoices
5.1
+
+
+ com.amazonaws
+ aws-java-sdk-s3
+ ${aws.sdk.version}
+
+
+
+ org.apache.maven
+ maven-artifact
+ ${maven-artifact.version}
+
+
+
+ org.restcomm.smpp
+ smpp-extensions
+ ${smpp-extensions.version}
+
+
+
+ org.mockito
+ mockito-core
+ ${mockito-core.version}
+ test
+
@@ -474,14 +565,14 @@
org.apache.tomcat
tomcat-coyote
${tomcat7.version}
- provided
+ test
org.apache.tomcat
tomcat-jasper
${tomcat7.version}
- provided
+ test
@@ -495,36 +586,31 @@
org.mobicents.servlet.sip.containers
sip-servlets-catalina-7
${sipservletapi.version}
- provided
-
-
-
- org.mobicents.servlet.sip.containers
- sip-servlets-tomcat-7
- ${sipservletapi.version}
- provided
+ test
org.mobicents.servlet.sip
sip-servlets-application-router
${sipservletapi.version}
- provided
+ test
- hsqldb
+ org.hsqldb
hsqldb
${hsqldb.version}
- test
+ test
+
org.jboss.arquillian.junit
@@ -548,7 +634,7 @@
- org.cafesip.sipunit
+ org.mobicents.sipunit
sipunit
${sipunit.version}
test
@@ -559,7 +645,26 @@
${mobicents.checkstyle.version}
-
@@ -570,7 +675,7 @@
maven-compiler-plugin
-
+
1.7
1.7
@@ -584,6 +689,21 @@
true
+
+
org.apache.maven.plugins
@@ -593,7 +713,7 @@
/checkstyle/checkstyle.xml
true
true
-
+
@@ -612,6 +732,12 @@
+
+
+ org.codehaus.mojo
+ license-maven-plugin
+ 1.13
+
@@ -757,7 +883,7 @@
-
diff --git a/restcomm/restcomm.application/pom.xml b/restcomm/restcomm.application/pom.xml
index 9f1b58164d..37adac8d62 100644
--- a/restcomm/restcomm.application/pom.xml
+++ b/restcomm/restcomm.application/pom.xml
@@ -2,14 +2,14 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.telestax.servlet
- restcomm
- 7.2.0-SNAPSHOT
+ org.restcomm
+ restcomm-connect
+ 8.3.0-SNAPSHOT
- restcomm.application
+ restcomm-connect.application
war
- restcomm.application
+ restcomm-connect.application
http://maven.apache.org
@@ -57,13 +57,6 @@
commons-configuration
-
- commons-lang
- commons-lang
- 2.6
-
-
-
javax.mail
mail
@@ -72,9 +65,14 @@
org.mobicents.servlet.sip
sip-servlets-spec
- ${sipservletapi.version}
provided
+
+
+ org.mobicents.servlet.sip.containers
+ sip-servlets-catalina-7
+ provided
+
javax.servlet
@@ -83,104 +81,194 @@
- com.telestax.servlet
- restcomm.commons
+ org.restcomm
+ restcomm-connect.commons
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.dao
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.asr
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.fax
${project.version}
- com.telestax.servlet
- restcomm.dao
+ org.restcomm
+ restcomm-connect.http
${project.version}
- com.telestax.servlet
- restcomm.asr
+ org.restcomm
+ restcomm-connect.interpreter
${project.version}
- com.telestax.servlet
- restcomm.fax
+ org.restcomm
+ restcomm-connect.mgcp
${project.version}
- com.telestax.servlet
- restcomm.http
+ org.restcomm
+ restcomm-connect.sms
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.sms.api
${project.version}
- com.telestax.servlet
- restcomm.interpreter
+ org.restcomm
+ restcomm-connect.provisioning.number.api
${project.version}
- com.telestax.servlet
- restcomm.mgcp
+ org.restcomm
+ restcomm-connect.provisioning.number.vi
${project.version}
- com.telestax.servlet
- restcomm.sms
+ org.restcomm
+ restcomm-connect.provisioning.number.nexmo
${project.version}
+
+ org.restcomm
+ restcomm-connect.provisioning.number.bandwidth
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.provisioning.number.voxbone
+ ${project.version}
+
+
- com.telestax.servlet
- restcomm.sms.api
+ org.restcomm
+ restcomm-connect.telephony
${project.version}
- com.telestax.servlet
- restcomm.provisioning.number.api
+ org.restcomm
+ restcomm-connect.telephony.api
${project.version}
- com.telestax.servlet
- restcomm.provisioning.number.vi
+ org.restcomm
+ restcomm-connect.tts.acapela
${project.version}
- com.telestax.servlet
- restcomm.provisioning.number.nexmo
+ org.restcomm
+ restcomm-connect.tts.voicerss
${project.version}
- com.telestax.servlet
- restcomm.telephony
+ org.restcomm
+ restcomm-connect.tts.att
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.tts.awspolly
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.tts.api
${project.version}
- com.telestax.servlet
- restcomm.telephony.api
+ org.restcomm
+ restcomm-connect.ussd
${project.version}
- com.telestax.servlet
- restcomm.tts.voicerss
+ org.restcomm
+ restcomm-connect.mscontrol.api
${project.version}
- com.telestax.servlet
- restcomm.tts.api
+ org.restcomm
+ restcomm-connect.mscontrol.mms
${project.version}
- com.telestax.servlet
- restcomm.ussd
+ org.restcomm
+ restcomm-connect.mscontrol.jsr309
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.identity
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.monitoring.service
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.extension.controller
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.extension.api
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.mrb
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.mrb.api
+ ${project.version}
+
+
+
+ org.restcomm
+ restcomm-connect.dns.api
${project.version}
@@ -194,8 +282,6 @@
org.hsqldb
hsqldb
- 1.8.0.10
- provided
diff --git a/restcomm/restcomm.application/src/main/java/org/mobicents/servlet/restcomm/Bootstrapper.java b/restcomm/restcomm.application/src/main/java/org/mobicents/servlet/restcomm/Bootstrapper.java
deleted file mode 100644
index ace240d283..0000000000
--- a/restcomm/restcomm.application/src/main/java/org/mobicents/servlet/restcomm/Bootstrapper.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package org.mobicents.servlet.restcomm;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.sip.SipServlet;
-
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.XMLConfiguration;
-import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
-import org.apache.log4j.Logger;
-import org.mobicents.servlet.restcomm.dao.DaoManager;
-import org.mobicents.servlet.restcomm.entities.shiro.ShiroResources;
-import org.mobicents.servlet.restcomm.loader.ObjectFactory;
-import org.mobicents.servlet.restcomm.loader.ObjectInstantiationException;
-import org.mobicents.servlet.restcomm.mgcp.MediaGateway;
-import org.mobicents.servlet.restcomm.mgcp.PowerOnMediaGateway;
-import org.mobicents.servlet.restcomm.telephony.config.ConfigurationStringLookup;
-
-import akka.actor.ActorRef;
-import akka.actor.ActorSystem;
-import akka.actor.Props;
-import akka.actor.UntypedActor;
-import akka.actor.UntypedActorFactory;
-
-import com.typesafe.config.Config;
-import com.typesafe.config.ConfigFactory;
-
-public final class Bootstrapper extends SipServlet {
- private static final long serialVersionUID = 1L;
- private static final Logger logger = Logger.getLogger(Bootstrapper.class);
-
- private ActorSystem system;
-
- public Bootstrapper() {
- super();
- }
-
- @Override
- public void destroy() {
- system.shutdown();
- system.awaitTermination();
- }
-
- private ActorRef gateway(final Configuration configuration, final ClassLoader loader) throws UnknownHostException {
- final Configuration settings = configuration.subset("media-server-manager");
- final ActorRef gateway = system.actorOf(new Props(new UntypedActorFactory() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public UntypedActor create() throws Exception {
- final String classpath = settings.getString("mgcp-server[@class]");
- return (UntypedActor) new ObjectFactory(loader).getObjectInstance(classpath);
- }
- }));
- final PowerOnMediaGateway.Builder builder = PowerOnMediaGateway.builder();
- builder.setName(settings.getString("mgcp-server[@name]"));
- String address = settings.getString("mgcp-server.local-address");
- builder.setLocalIP(InetAddress.getByName(address));
- String port = settings.getString("mgcp-server.local-port");
- builder.setLocalPort(Integer.parseInt(port));
- address = settings.getString("mgcp-server.remote-address");
- builder.setRemoteIP(InetAddress.getByName(address));
- port = settings.getString("mgcp-server.remote-port");
- builder.setRemotePort(Integer.parseInt(port));
- address = settings.getString("mgcp-server.external-address");
- if (address != null) {
- builder.setExternalIP(InetAddress.getByName(address));
- builder.setUseNat(true);
- } else {
- builder.setUseNat(false);
- }
- final String timeout = settings.getString("mgcp-server.response-timeout");
- builder.setTimeout(Long.parseLong(timeout));
- final PowerOnMediaGateway powerOn = builder.build();
- gateway.tell(powerOn, null);
- return gateway;
- }
-
- private String home(final ServletConfig config) {
- final ServletContext context = config.getServletContext();
- final String path = context.getRealPath("/");
- if (path.endsWith("/")) {
- return path.substring(0, path.length() - 1);
- } else {
- return path;
- }
- }
-
- @Override
- public void init(final ServletConfig config) throws ServletException {
- final ServletContext context = config.getServletContext();
- final String path = context.getRealPath("WEB-INF/conf/restcomm.xml");
- // Initialize the configuration interpolator.
- final ConfigurationStringLookup strings = new ConfigurationStringLookup();
- strings.addProperty("home", home(config));
- strings.addProperty("uri", uri(config));
- ConfigurationInterpolator.registerGlobalLookup("restcomm", strings);
- // Load the RestComm configuration file.
- Configuration xml = null;
- try {
- xml = new XMLConfiguration(path);
- } catch (final ConfigurationException exception) {
- logger.error(exception);
- }
- xml.setProperty("runtime-settings.home-directory", home(config));
- xml.setProperty("runtime-settings.root-uri", uri(config));
- context.setAttribute(Configuration.class.getName(), xml);
- // Initialize global dependencies.
- final ClassLoader loader = getClass().getClassLoader();
- // Create the actor system.
- final Config settings = ConfigFactory.load();
- system = ActorSystem.create("RestComm", settings, loader);
- // Share the actor system with other servlets.
- context.setAttribute(ActorSystem.class.getName(), system);
- // Create the storage system.
- DaoManager storage = null;
- try {
- storage = storage(xml, loader);
- } catch (final ObjectInstantiationException exception) {
- throw new ServletException(exception);
- }
- context.setAttribute(DaoManager.class.getName(), storage);
- ShiroResources.getInstance().set(DaoManager.class, storage);
- ShiroResources.getInstance().set(Configuration.class, xml.subset("runtime-settings"));
- // Create the media gateway.
- ActorRef gateway = null;
- try {
- gateway = gateway(xml, loader);
- } catch (final UnknownHostException exception) {
- throw new ServletException(exception);
- }
- context.setAttribute(MediaGateway.class.getName(), gateway);
- Version.printVersion();
- Ping ping = new Ping(xml, context);
- ping.sendPing();
- }
-
-
- private DaoManager storage(final Configuration configuration, final ClassLoader loader) throws ObjectInstantiationException {
- final String classpath = configuration.getString("dao-manager[@class]");
- final DaoManager daoManager = (DaoManager) new ObjectFactory(loader).getObjectInstance(classpath);
- daoManager.configure(configuration.subset("dao-manager"));
- daoManager.start();
- return daoManager;
- }
-
- private String uri(final ServletConfig config) {
- return config.getServletContext().getContextPath();
- }
-}
diff --git a/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/Bootstrapper.java b/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/Bootstrapper.java
new file mode 100644
index 0000000000..e582706c34
--- /dev/null
+++ b/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/Bootstrapper.java
@@ -0,0 +1,455 @@
+package org.restcomm.connect.application;
+
+import java.net.UnknownHostException;
+import java.util.List;
+import java.util.Properties;
+
+import javax.media.mscontrol.MsControlException;
+import javax.media.mscontrol.MsControlFactory;
+import javax.media.mscontrol.spi.Driver;
+import javax.media.mscontrol.spi.DriverManager;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.sip.SipServlet;
+import javax.servlet.sip.SipServletContextEvent;
+import javax.servlet.sip.SipServletListener;
+import javax.servlet.sip.SipURI;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.XMLConfiguration;
+import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
+import org.apache.log4j.Logger;
+import org.joda.time.DateTime;
+import org.mobicents.servlet.sip.SipConnector;
+import org.restcomm.connect.application.config.ConfigurationStringLookup;
+import org.restcomm.connect.commons.Version;
+import org.restcomm.connect.commons.configuration.RestcommConfiguration;
+import org.restcomm.connect.commons.dao.Sid;
+import org.restcomm.connect.commons.loader.ObjectFactory;
+import org.restcomm.connect.commons.loader.ObjectInstantiationException;
+import org.restcomm.connect.commons.util.DNSUtils;
+import org.restcomm.connect.dao.DaoManager;
+import org.restcomm.connect.dao.entities.InstanceId;
+import org.restcomm.connect.dao.entities.Organization;
+import org.restcomm.connect.dao.entities.shiro.ShiroResources;
+import org.restcomm.connect.extension.controller.ExtensionBootstrapper;
+import org.restcomm.connect.identity.IdentityContext;
+import org.restcomm.connect.monitoringservice.MonitoringService;
+import org.restcomm.connect.mrb.api.StartMediaResourceBroker;
+import org.restcomm.connect.mscontrol.api.MediaServerControllerFactory;
+import org.restcomm.connect.mscontrol.api.MediaServerInfo;
+import org.restcomm.connect.mscontrol.jsr309.Jsr309ControllerFactory;
+import org.restcomm.connect.mscontrol.mms.MmsControllerFactory;
+
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
+
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
+import akka.actor.Props;
+import akka.actor.UntypedActor;
+import akka.actor.UntypedActorFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.restcomm.connect.commons.common.http.CustomHttpClientBuilder;
+import org.restcomm.connect.interpreter.NumberSelectorService;
+import scala.concurrent.ExecutionContext;
+
+/**
+ *
+ * @author gvagenas
+ * @author maria-farooq@live.com (Maria Farooq)
+ *
+ */
+
+public final class Bootstrapper extends SipServlet implements SipServletListener {
+ private static final long serialVersionUID = 1L;
+ private static final Logger logger = Logger.getLogger(Bootstrapper.class);
+
+ private ActorSystem system;
+ private ExecutionContext ec;
+
+ public Bootstrapper() {
+ super();
+ }
+
+ @Override
+ public void destroy() {
+ CustomHttpClientBuilder.stopDefaultClient();
+ system.shutdown();
+ system.awaitTermination();
+ }
+
+ private MediaServerControllerFactory mediaServerControllerFactory(final Configuration configuration, ClassLoader loader, DaoManager storage, ActorRef monitoring)
+ throws ServletException {
+ Configuration settings ;
+ String compatibility = configuration.subset("mscontrol").getString("compatibility", "rms");
+
+ MediaServerControllerFactory factory;
+ switch (compatibility) {
+ case "rms":
+ try {
+ settings = configuration.subset("media-server-manager");
+ ActorRef mrb = mediaResourceBroker(settings, storage, loader, monitoring);
+ factory = new MmsControllerFactory(mrb);
+ } catch (UnknownHostException e) {
+ throw new ServletException(e);
+ }
+ break;
+
+ case "xms":
+ try {
+ settings = configuration.subset("mscontrol");
+ // Load JSR 309 driver
+ final String driverName = settings.getString("media-server[@class]");
+ Driver driver = DriverManager.getDriver(driverName);
+ DriverManager.registerDriver(driver);
+
+ // Configure properties
+ Properties properties = getDialogicXmsProperties(settings);
+
+ // Create JSR 309 factory
+ MsControlFactory msControlFactory = driver.getFactory(properties);
+ MediaServerInfo mediaServerInfo = mediaServerInfo(settings);
+ factory = new Jsr309ControllerFactory(mediaServerInfo, msControlFactory);
+ } catch (UnknownHostException | MsControlException e) {
+ throw new ServletException(e);
+ }
+ break;
+
+ default:
+ throw new IllegalArgumentException("MSControl unknown compatibility mode: " + compatibility);
+ }
+ return factory;
+ }
+
+ private MediaServerInfo mediaServerInfo(final Configuration configuration) throws UnknownHostException {
+ final String name = configuration.getString("media-server[@name]");
+ final String address = configuration.getString("media-server.address");
+ final int port = configuration.getInt("media-server.port");
+ final int timeout = configuration.getInt("media-server.timeout", 5);
+ return new MediaServerInfo(name, DNSUtils.getByName(address), port, timeout);
+ }
+
+ private Properties getDialogicXmsProperties(final Configuration configuration) {
+ // New set of properties that will be used to configure the connector
+ Properties properties = new Properties();
+
+ // Tell the driver we are configuring it programmatically
+ // properties.setProperty("connector.dynamic.configuration", "yes");
+
+ // Configure the transport to be used by the connector
+ final String mediaTransport = configuration.getString("media-server.transport", "udp");
+ if(logger.isInfoEnabled()) {
+ logger.info("JSR 309 - media-server.transport: udp");
+ }
+ properties.setProperty("connector.sip.transport", mediaTransport);
+
+ // Configure SIP connector using RestComm binding address
+ SipURI sipURI = outboundInterface(getServletContext(), mediaTransport);
+ properties.setProperty("connector.sip.address", sipURI.getHost());
+ if(logger.isInfoEnabled()) {
+ logger.info("JSR 309 - connector.sip.address: " + sipURI.getHost());
+ }
+ properties.setProperty("connector.sip.port", String.valueOf(sipURI.getPort()));
+ if(logger.isInfoEnabled()) {
+ logger.info("JSR 309 - connector.sip.port: " + String.valueOf(sipURI.getPort()));
+ }
+
+ // Configure Media Server address based on restcomm configuration file
+ final String mediaAddress = configuration.getString("media-server.address", "127.0.0.1");
+ properties.setProperty("mediaserver.sip.ipaddress", mediaAddress);
+ if(logger.isInfoEnabled()) {
+ logger.info("JSR 309 - mediaserver.sip.ipaddress: " + mediaAddress);
+ }
+
+ final String mediaPort = configuration.getString("media-server.port", "5060");
+ properties.setProperty("mediaserver.sip.port", mediaPort);
+ if(logger.isInfoEnabled()) {
+ logger.info("JSR 309 - mediaserver.sip.port: " + mediaPort);
+ }
+
+ // Let RestComm control call legs
+ properties.setProperty("connector.conferenceControlLeg", "no");
+
+ return properties;
+ }
+
+ @SuppressWarnings("unchecked")
+ private SipURI outboundInterface(ServletContext context, String transport) {
+ SipURI result = null;
+ final List uris = (List) context.getAttribute(OUTBOUND_INTERFACES);
+ if (uris != null && uris.size() > 0) {
+ for (final SipURI uri : uris) {
+ final String interfaceTransport = uri.getTransportParam();
+ if (transport.equalsIgnoreCase(interfaceTransport)) {
+ result = uri;
+ }
+ }
+ if (logger.isInfoEnabled()) {
+ if (result == null) {
+ logger.info("Outbound interface is NULL! Looks like there was no "+transport+" in the list of connectors");
+ } else {
+ logger.info("Outbound interface found: "+result.toString());
+ }
+ }
+ } else {
+ if (logger.isInfoEnabled()) {
+ logger.info("ServletContext return null or empty list of connectors");
+ }
+ }
+ return result;
+ }
+
+ private ActorRef mediaResourceBroker(final Configuration configuration, final DaoManager storage, final ClassLoader loader, final ActorRef monitoring) throws UnknownHostException{
+ final Props props = new Props(new UntypedActorFactory() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public UntypedActor create() throws Exception {
+ final String classpath = configuration.getString("mrb[@class]");
+ return (UntypedActor) new ObjectFactory(loader).getObjectInstance(classpath);
+ }
+ });
+ ActorRef mrb = system.actorOf(props);
+ mrb.tell(new StartMediaResourceBroker(configuration, storage, loader, monitoring), null);
+ return mrb;
+ }
+
+ private String home(final ServletContext context) {
+ final String path = context.getRealPath("/");
+ if (path.endsWith("/")) {
+ return path.substring(0, path.length() - 1);
+ } else {
+ return path;
+ }
+ }
+
+ private DaoManager storage(final Configuration configuration, Configuration daoManagerConfiguration, final ClassLoader loader, final ExecutionContext ec) throws ObjectInstantiationException {
+ final String classpath = daoManagerConfiguration.getString("dao-manager[@class]");
+ final DaoManager daoManager = (DaoManager) new ObjectFactory(loader).getObjectInstance(classpath);
+ daoManager.configure(configuration, daoManagerConfiguration, ec );
+ daoManager.start();
+ return daoManager;
+ }
+
+ private ActorRef monitoringService(final Configuration configuration, final DaoManager daoManager, final ClassLoader loader) {
+ final Props props = new Props(new UntypedActorFactory() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public UntypedActor create() throws Exception {
+ return new MonitoringService(daoManager);
+ }
+ });
+ return system.actorOf(props);
+
+ }
+
+ private String uri(final ServletContext context) {
+ return context.getContextPath();
+ }
+
+ /**
+ * generateDefaultDomainName based on RC hostname
+ * https://github.com/RestComm/Restcomm-Connect/issues/2085
+ * @param configuration
+ * @param storage
+ * @param sipUriHostAsFallbackDomain - if hostname is not provided in restcomm.xml then provided sipuri host will be used as domain.
+ */
+ private boolean generateDefaultDomainName (final Configuration configuration, final DaoManager storage, final SipURI sipUriHostAsFallbackDomain) {
+ try{
+ final Sid defaultOrganization = new Sid("ORafbe225ad37541eba518a74248f0ac4c");
+ String hostname = configuration.getString("hostname");
+
+ if(hostname != null && !hostname.trim().equals("")){
+ if(logger.isInfoEnabled())
+ logger.info("Generate Default Domain Name based on RC hostname: "+hostname);
+ }else{
+ if(sipUriHostAsFallbackDomain != null){
+ logger.warn("Hostname property is null in restcomm.xml, will assign this host as domain: "+sipUriHostAsFallbackDomain.getHost());
+ hostname = sipUriHostAsFallbackDomain.getHost();
+ }else {
+ logger.error("Hostname property is null in restcomm.xml, As well restcomm outbound sipuri is NULL.");
+ return false;
+ }
+ }
+
+ Organization organization = storage.getOrganizationsDao().getOrganization(defaultOrganization);
+ if(organization == null){
+ storage.getOrganizationsDao().addOrganization(new Organization(defaultOrganization, hostname, DateTime.now(), DateTime.now(), Organization.Status.ACTIVE));
+ }else{
+ organization = organization.setDomainName(hostname);
+ storage.getOrganizationsDao().updateOrganization(organization);
+ }
+ }catch(Exception e){
+ logger.error("Unable to generateDefaultDomainName {}", e);
+ return false;
+ }
+ return true;
+ }
+ @Override
+ public void servletInitialized(SipServletContextEvent event) {
+ if (event.getSipServlet().getClass().equals(Bootstrapper.class)) {
+ final ServletContext context = event.getServletContext();
+ final String path = context.getRealPath("WEB-INF/conf/restcomm.xml");
+ final String extensionConfigurationPath = context.getRealPath("WEB-INF/conf/extensions.xml");
+ final String daoManagerConfigurationPath = context.getRealPath("WEB-INF/conf/dao-manager.xml");
+ // Initialize the configuration interpolator.
+ final ConfigurationStringLookup strings = new ConfigurationStringLookup();
+ strings.addProperty("home", home(context));
+ strings.addProperty("uri", uri(context));
+ ConfigurationInterpolator.registerGlobalLookup("restcomm", strings);
+ // Load the RestComm configuration file.
+ Configuration xml = null;
+ XMLConfiguration extensionConf = null;
+ XMLConfiguration daoManagerConf = null;
+ try {
+ XMLConfiguration xmlConfiguration = new XMLConfiguration();
+ xmlConfiguration.setDelimiterParsingDisabled(true);
+ xmlConfiguration.setAttributeSplittingDisabled(true);
+ xmlConfiguration.load(path);
+ xml = xmlConfiguration;
+
+ extensionConf = new XMLConfiguration();
+ extensionConf.setDelimiterParsingDisabled(true);
+ extensionConf.setAttributeSplittingDisabled(true);
+ extensionConf.load(extensionConfigurationPath);
+
+ daoManagerConf = new XMLConfiguration();
+ daoManagerConf.setDelimiterParsingDisabled(true);
+ daoManagerConf.setAttributeSplittingDisabled(true);
+ daoManagerConf.load(daoManagerConfigurationPath);
+
+ } catch (final ConfigurationException exception) {
+ logger.error(exception);
+ }
+ xml.setProperty("runtime-settings.home-directory", home(context));
+ xml.setProperty("runtime-settings.root-uri", uri(context));
+ // initialize DnsUtilImpl ClassName
+ DNSUtils.initializeDnsUtilImplClassName(xml);
+ // Create high-level restcomm configuration
+ RestcommConfiguration.createOnce(xml);
+ context.setAttribute(Configuration.class.getName(), xml);
+ context.setAttribute("ExtensionConfiguration", extensionConf);
+ // Initialize global dependencies.
+ final ClassLoader loader = getClass().getClassLoader();
+ // Create the actor system.
+ final Config settings = ConfigFactory.load();
+ system = ActorSystem.create("RestComm", settings, loader);
+ // Share the actor system with other servlets.
+ context.setAttribute(ActorSystem.class.getName(), system);
+ ec = system.dispatchers().lookup("restcomm-blocking-dispatcher");
+ // Create the storage system.
+ DaoManager storage = null;
+ try {
+ storage = storage(xml, daoManagerConf, loader, ec);
+ } catch (final ObjectInstantiationException exception) {
+ logger.error("ObjectInstantiationException during initialization: ", exception);
+ }
+ context.setAttribute(DaoManager.class.getName(), storage);
+ //ShiroResources.getInstance().set(DaoManager.class, storage);
+ ShiroResources.getInstance().set(Configuration.class, xml.subset("runtime-settings"));
+ // Initialize identityContext
+ IdentityContext identityContext = new IdentityContext(xml);
+ context.setAttribute(IdentityContext.class.getName(), identityContext);
+
+ //init NumberSelectorService
+ context.setAttribute(NumberSelectorService.class.getName(), new NumberSelectorService(storage.getIncomingPhoneNumbersDao()));
+
+ // Create the media gateway.
+
+ //Initialize Monitoring Service
+ ActorRef monitoring = monitoringService(xml, storage, loader);
+ if (monitoring != null) {
+ context.setAttribute(MonitoringService.class.getName(), monitoring);
+ if(logger.isInfoEnabled()) {
+ logger.info("Monitoring Service created and stored in the context");
+ }
+ } else {
+ logger.error("Monitoring Service is null");
+ }
+
+ CloseableHttpClient buildDefaultClient = CustomHttpClientBuilder.buildDefaultClient(RestcommConfiguration.getInstance().getMain());
+ context.setAttribute(CustomHttpClientBuilder.class.getName(), buildDefaultClient);
+
+ //Initialize Extensions
+ Configuration extensionConfiguration = null;
+ try {
+ extensionConfiguration = new XMLConfiguration(extensionConfigurationPath);
+ } catch (final ConfigurationException exception) {
+// logger.error(exception);
+ }
+
+ ExtensionBootstrapper extensionBootstrapper = new ExtensionBootstrapper(context, extensionConfiguration);
+ try {
+ extensionBootstrapper.start();
+ } catch (IllegalAccessException | InstantiationException | ClassNotFoundException e) {
+ logger.error("Exception during extension scanner start: "+e.getStackTrace());
+ }
+
+ // Create the media server controller factory
+ MediaServerControllerFactory mscontrollerFactory = null;
+ try {
+ mscontrollerFactory = mediaServerControllerFactory(xml, loader, storage, monitoring);
+ } catch (ServletException exception) {
+ logger.error("ServletException during initialization: ", exception);
+ }
+ context.setAttribute(MediaServerControllerFactory.class.getName(), mscontrollerFactory);
+
+ Boolean rvdMigrationEnabled = new Boolean(xml.subset("runtime-settings").getString("rvd-workspace-migration-enabled", "false"));
+ if (rvdMigrationEnabled) {
+ //Replicate RVD Projects as database entities
+ try {
+ RvdProjectsMigrator rvdProjectMigrator = new RvdProjectsMigrator(context, xml);
+ rvdProjectMigrator.executeMigration();
+ } catch (Exception exception) {
+ logger.error("RVD Porjects migration failed during initialization: ", exception);
+ }
+ }
+
+ //Last, print Version and send PING if needed
+ Version.printVersion();
+ GenerateInstanceId generateInstanceId = null;
+ InstanceId instanceId = null;
+ SipURI sipURI = null;
+ try {
+ sipURI = outboundInterface(context,"udp");
+ if (sipURI != null) {
+ generateInstanceId = new GenerateInstanceId(context, sipURI);
+ } else {
+ if (logger.isInfoEnabled()) {
+ logger.info("SipURI is NULL!!! Cannot proceed to generate InstanceId");
+ }
+ }
+ instanceId = generateInstanceId.instanceId();
+ } catch (UnknownHostException e) {
+ logger.error("UnknownHostException during the generation of InstanceId: "+e);
+ }
+
+ context.setAttribute(InstanceId.class.getName(), instanceId);
+ monitoring.tell(instanceId, null);
+ RestcommConfiguration.getInstance().getMain().setInstanceId(instanceId.getId().toString());
+
+ if(!generateDefaultDomainName(xml.subset("http-client"), storage, sipURI)){
+ logger.error("Unable to generate DefaultDomainName, Restcomm Akka system will exit now...");
+ system.shutdown();
+ system.awaitTermination();
+ }
+
+ // https://github.com/RestComm/Restcomm-Connect/issues/1285 Pass InstanceId to the Load Balancer for LCM stickiness
+ SipConnector[] connectors = (SipConnector[]) context.getAttribute("org.mobicents.servlet.sip.SIP_CONNECTORS");
+ Properties loadBalancerCustomInfo = new Properties();
+ loadBalancerCustomInfo.setProperty("Restcomm-Instance-Id", instanceId.getId().toString());
+ for (SipConnector sipConnector : connectors) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Passing InstanceId " + instanceId.getId().toString() + " to connector " + sipConnector);
+ }
+ sipConnector.setLoadBalancerCustomInformation(loadBalancerCustomInfo);
+ }
+ //Depreciated
+// Ping ping = new Ping(xml, context);
+// ping.sendPing();
+ }
+ }
+}
diff --git a/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/GenerateInstanceId.java b/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/GenerateInstanceId.java
new file mode 100644
index 0000000000..2dfca608f6
--- /dev/null
+++ b/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/GenerateInstanceId.java
@@ -0,0 +1,70 @@
+/*
+ * TeleStax, Open Source Cloud Communications
+ * Copyright 2011-2013, Telestax Inc and individual contributors
+ * by the @authors tag.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.restcomm.connect.application;
+
+import org.apache.log4j.Logger;
+import org.joda.time.DateTime;
+import org.restcomm.connect.dao.DaoManager;
+import org.restcomm.connect.dao.InstanceIdDao;
+import org.restcomm.connect.dao.entities.InstanceId;
+import org.restcomm.connect.commons.dao.Sid;
+
+import javax.servlet.ServletContext;
+import javax.servlet.sip.SipURI;
+import java.net.UnknownHostException;
+
+/**
+ * @author gvagenas
+ *
+ */
+public class GenerateInstanceId {
+
+ private final Logger logger = Logger.getLogger(GenerateInstanceId.class);
+
+// private final Configuration configuration;
+ private final ServletContext servletContext;
+ private final InstanceIdDao instanceIdDao;
+ private final String host;
+
+ public GenerateInstanceId(ServletContext servletContext, final SipURI sipURI) throws UnknownHostException {
+ this.servletContext = servletContext;
+ host = sipURI.getHost()+":"+sipURI.getPort();
+ logger.info("Host for InstanceId: "+host);
+ instanceIdDao = ((DaoManager) servletContext.getAttribute(DaoManager.class.getName())).getInstanceIdDao();
+ }
+
+ public InstanceId instanceId() {
+ InstanceId instanceId = instanceIdDao.getInstanceIdByHost(host);
+ if (instanceId != null) {
+ if(logger.isInfoEnabled()) {
+ logger.info("Restcomm Instance ID: "+instanceId.toString());
+ }
+ } else {
+ instanceId = new InstanceId(Sid.generate(Sid.Type.INSTANCE), host, DateTime.now(), DateTime.now());
+ instanceIdDao.addInstancecId(instanceId);
+ if(logger.isInfoEnabled()) {
+ logger.info("Restcomm Instance ID created: "+instanceId.toString());
+ }
+ }
+ servletContext.setAttribute(InstanceId.class.getName(), instanceId);
+ return instanceId;
+ }
+}
diff --git a/restcomm/restcomm.application/src/main/java/org/mobicents/servlet/restcomm/Ping.java b/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/Ping.java
similarity index 76%
rename from restcomm/restcomm.application/src/main/java/org/mobicents/servlet/restcomm/Ping.java
rename to restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/Ping.java
index 185f55cb5a..0f0ba7696f 100644
--- a/restcomm/restcomm.application/src/main/java/org/mobicents/servlet/restcomm/Ping.java
+++ b/restcomm/restcomm.application/src/main/java/org/restcomm/connect/application/Ping.java
@@ -17,7 +17,7 @@
* along with this program. If not, see
*
*/
-package org.mobicents.servlet.restcomm;
+package org.restcomm.connect.application;
import java.util.ArrayList;
import java.util.List;
@@ -33,32 +33,41 @@
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.log4j.Logger;
+import org.restcomm.connect.commons.configuration.RestcommConfiguration;
+import org.restcomm.connect.commons.common.http.CustomHttpClientBuilder;
+import org.restcomm.connect.provisioning.number.api.ProvisionProvider;
/**
* @author gvagenas
*
*/
+@Deprecated
public class Ping {
private Logger logger = Logger.getLogger(Ping.class);
private Configuration configuration;
private ServletContext context;
private Timer timer;
+ private Timer subsequentTimer;
+ private boolean subsequentTimerIsSet = false;
+ private PingTask ping;
+ private final String provider;
Ping(Configuration configuration, ServletContext context){
this.configuration = configuration;
this.context = context;
+ this.provider = configuration.getString("phone-number-provisioning[@class]");
}
public void sendPing(){
boolean daemon = true;
timer = new Timer(daemon);
- PingTask ping = new PingTask(configuration);
+ ping = new PingTask(configuration);
timer.schedule(ping, 0, 60000);
}
@@ -73,6 +82,8 @@ public PingTask(Configuration configuration) {
public void run() {
Configuration proxyConf = configuration.subset("runtime-settings").subset("telestax-proxy");
Boolean proxyEnabled = proxyConf.getBoolean("enabled");
+ Configuration mediaConf = configuration.subset("media-server-manager").subset("mgcp-server");
+ String publicIpAddress = mediaConf.getString("external-address");
if (proxyEnabled) {
String proxyUri = proxyConf.getString("uri");
String username = proxyConf.getString("login");
@@ -86,6 +97,7 @@ public void run() {
buffer.append("").append("ping").append("");
buffer.append("- ");
buffer.append("").append(endpoint).append("");
+// buffer.append("").append(provider).append("");
buffer.append("
");
buffer.append("