#! /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
#comma separated protocols to set on SSLEngine, if empty use stack defaults
SSL_PROTOCOLS=''
#comma separated cipher suites to set on SSLEngine, if empty use stack defaults
SSL_CIPHER_SUITES=''
#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 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../../restcomm_dumpfile-$(date +%b_%d_%Y_%H_%M_%S).bin -Dtelscale.license.dir=../ -Dtelscale.license.key.location=../"
#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
RVD_HTTP_TIMEOUT='' # Timeout (ms) for http connections in rvd http client. It mainly affects connections to restcomm (create calls, fetch account etc.). It does not affect ES.
#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
#Maximum P2P call length configuration. Unit is munite
MAX_P2P_CALL_LENGTH=60
# 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
#Path in FS to where the cache will be hosted.
CACHE_PATH=${restcomm:home}/cache
#MSS Configuration
TLS_CLIENT_AUTH_TYPE="Disabled" #Possible values Enabled, Want, Disabled,DisabledAll
#USESBC: Option to disable all patch for NAT (Includes patch-for-nat-b2bua-sessions,disable-sdp-patching-on-updating-mediasession)
RCUSESBC=false
#Domain to be used in the SIP URI @. If not defined, it will default to the webapp host name.
WebOlympusDomain=""