# ~* SHELL FUNCTIONS FUSIONPBX *~ # # # pause() { local key="$@" [ -z $key ] && key="Are you sure? Press [Enter] key to continue..." read -p "$key" readEnterKey } fix_perm() { for dir in $(find . -type d); do setfacl -m user:nginx:rwx,group:nginx:rwx "$dir" done } deploy_remote_pgsql() { cmd_remote_pgsql_p1 > /tmp/deploy_remote_pgsql cmd_remote_pgsql_p2 >> /tmp/deploy_remote_pgsql cmd_remote_pgsql_p3 >> /tmp/deploy_remote_pgsql cmd_remote_pgsql_p4 >> /tmp/deploy_remote_pgsql cmd_remote_pgsql_p5 >> /tmp/deploy_remote_pgsql cmd_remote_pgsql_p6 >> /tmp/deploy_remote_pgsql cmd_remote_pgsql_p7 >> /tmp/deploy_remote_pgsql cmd_remote_pgsql_p8 >> /tmp/deploy_remote_pgsql echo "cmd_create_db02" >> /tmp/deploy_remote_pgsql chmod +x /tmp/deploy_remote_pgsql } deploy_fusion_pbx() { shopt -s nullglob dotglob files=("$1"/*) if (( ${#files[*]} )); then read -r -p "FusionPBX directory is not empty Do you want to delete it ? [Y/n] " del_answer if [[ $del_answer =~ ^([yY][eE][sS]|[yY])$ ]]; then rm -rf "$1" mkdir -p "$1" git clone https://github.com/fusionpbx/fusionpbx.git "$1" rm -rf "$1"/.git fi elif (( ! ${#files[*]} )); then rm -rf "$1" mkdir -p "$1" git clone https://github.com/fusionpbx/fusionpbx.git "$1" rm -rf "$1"/.git else echo "Error occured ..." fi # echo "Correcting directory for customized provisioning templates ..." # mkdir -p /etc/fusionpbx/resources # cp "$1"/resources/config.php /etc/fusionpbx # cp /usr/share/freeswitch/scripts/resources/config.lua /etc/fusionpbx # cp -rp "$1"/resources/templates /etc/fusionpbx/resources # rm -rf /etc/fusionpbx/resources/templates/{conf,engine} # chown -R nginx:nginx /etc/fusionpbx # shopt -u nullglob dotglob } cmd_create_db() { su - postgres -c "createuser -w --no-password -E -s -e ${USERNAME_FUSIONPBX}" su - postgres -c "createdb -w --no-password -E UTF8 -O ${USERNAME_FUSIONPBX} ${DBNAME_FREESWITCH}" su - postgres -c "createdb -w --no-password -E UTF8 -O ${USERNAME_FUSIONPBX} ${DBNAME_FUSIONPBX}" echo "Setting up passwords for user Postgres ..." su - postgres -c "psql --command '\password postgres'" echo "Setting up passwords for database user ${USERNAME_FUSIONPBX} ..." su - postgres -c "psql --command \"\password ${USERNAME_FUSIONPBX}"\" } cmd_crontab_fusionpbx() { updatedb xml_cdr_bin=$(find /usr/share/nginx -type f -name v_xml_cdr_import.php) php_bin=$(which php) cat << EOF * * * * * root ${php_bin} ${xml_cdr_bin} >/dev/null 2>&1 EOF } cmd_ulogd_fusionpbx() { cat << 'EOF' [global] logfile=/var/log/ulogd/ulogd.log loglevel=5 rmem=131071 bufsize=150000 plugin="/usr/lib64/ulogd/ulogd_inppkt_NFLOG.so" plugin="/usr/lib64/ulogd/ulogd_inppkt_ULOG.so" plugin="/usr/lib64/ulogd/ulogd_inpflow_NFCT.so" plugin="/usr/lib64/ulogd/ulogd_filter_IFINDEX.so" plugin="/usr/lib64/ulogd/ulogd_output_SYSLOG.so" plugin="/usr/lib64/ulogd/ulogd_output_LOGEMU.so" plugin="/usr/lib64/ulogd/ulogd_raw2packet_BASE.so" plugin="/usr/lib64/ulogd/ulogd_filter_PRINTPKT.so" plugin="/usr/lib64/ulogd/ulogd_filter_IP2STR.so" # Write log to "/var/log/messages" with SYSLOG option #stack=log1:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,emu1:SYSLOG #stack=log2:NFLOG,base2:BASE,ifi2:IFINDEX,ip2str1:IP2STR,print2:PRINTPKT,emu2:SYSLOG # Write log through plugin LOGEMU plugin stack=log1:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,emu1:LOGEMU stack=log2:NFLOG,base2:BASE,ifi1:IFINDEX,ip2str1:IP2STR,print1:PRINTPKT,emu2:LOGEMU [log1] group=2 numeric_label=1 [log2] group=3 numeric_label=0 [emu1] file="/var/log/firewalld_log/firewalld_accept.log" sync=1 [emu2] file="/var/log/firewalld_log/firewalld_drop.log" sync=1 EOF } cmd_nginx_fusionpbx() { cat << 'EOF' server { listen 82; #listen 443 default ssl; #server_name fusionpbx; access_log /var/log/nginx/fusionpbx.access_log; error_log /var/log/nginx/fusionpbx.error_log; root /usr/share/nginx/fusionpbx; #ssl_certificate /etc/ssl/fusionpbx.ssl.crt; #ssl_certificate_key /etc/ssl/fusionpbx.ssl.key.nopass; location / { root /usr/share/nginx/fusionpbx; index index.php; } #grandstream rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=\$1; #aastra #rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=\$1 last; #yealink common rewrite "^.*/(y[0-9]{12})(\.cfg)?$" /app/provision/index.php?file=\$1\$2; #yealink mac rewrite "^.*/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=\$1 last; location ~ \.php$ { if (!-f $request_filename) { return 404; } fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /resources/ { root /usr/share/nginx/fusionpbx; allow all; fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ .ht { deny all; } location ~^.+.(db)$ { deny all; } } EOF } cmd_yum_repo_fusionpbx() { cat << 'EOF' [networklab-F22-Server] name = VoIP - NetworkLab baseurl = http://ftpsrv01.networklab.ca/fedora/22/RPMS/$basearch enabled = 1 protect = 0 gpgcheck = 1 gpgkey = http://ftpsrv01.networklab.ca/fedora/22/RPMS/keys/RPM-GPG-KEY-NetworkLab-F22-Server [networklab-F22-Server-noarch] name = VoIP Noarch - NetworkLab baseurl = http://ftpsrv01.networklab.ca/fedora/22/RPMS/noarch enabled = 1 protect = 0 gpgcheck = 1 gpgkey = http://ftpsrv01.networklab.ca/fedora/22/RPMS/keys/RPM-GPG-KEY-NetworkLab-F22-Server EOF } cmd_snmp_fusionpbx() { cat << "EOF" rocommunity public syslocation ${SUPPORTNAME} syscontact ${SUPPORTEMAIL} EOF } cmd_odbc_fusionpbx() { cat << EOF [myodbc3] Driver = ${find_psql_lib} Description = Connector/ODBC 3.51 Driver DSN SERVER = ${DB_HOST} PORT = 5432 USER = ${USERNAME_FUSIONPBX} Password = Database = ${DBNAME_FREESWITCH} ReadOnly = No Servertype = postgres DSN = myodbc3 [myodbc4] Driver = ${find_psql_lib} Description = Connector/ODBC 3.51 Driver DSN SERVER = ${DB_HOST} PORT = 5432 USER = ${USERNAME_FUSIONPBX} Password = Database = ${DBNAME_FUSIONPBX} ReadOnly = No Servertype = postgres DSN = myodbc4 [Default] Driver = PostgreSQL Description = PostgreSQL Data Source Server = 127.0.0.1 Port = 5432 UserName = feeswitch Password = EOF } cmd_odbc_fusionpbx_p2() { cat << EOF [ODBC] Trace = Yes TraceFile = /var/log/pgsql-trace.log EOF } cmd_fail2ban_fusionpbx() { cat << "EOF" [INCLUDES] before = paths-fedora.conf [DEFAULT] ignoreip = 127.0.0.1/8 ignorecommand = bantime = 7200 findtime = 600 maxretry = 3 backend = auto usedns = warn logencoding = auto enabled = false filter = %(__name__)s destemail = ${user_email} sender = fail2ban@localhost mta = sendmail protocol = tcp chain = INPUT port = 0:65535 banaction = firewallcmd-ipset action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"] action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"] action_blocklist_de = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s"] action_badips = badips.py[category="%(name)s", banaction="%(banaction)s"] action = %(action_)s [freeswitch] enabled = true port = 5060,5061,5081,5082 action = %(action_mwl)s logpath = /var/log/freeswitch/freeswitch.log maxretry = 3 [nginx-http-auth] enabled = true action = %(action_mwl)s port = 82,http,https logpath = %(nginx_error_log)s [nginx-botsearch] enabled = true action = %(action_mwl)s port = 82,http,https logpath = %(nginx_error_log)s maxretry = 2 [php-url-fopen] enabled = true action = %(action_mwl)s port = 82,http,https bantime = 86400 logpath = %(nginx_access_log)s maxretry = 2 EOF } cmd_postgres_hba_fusionpbx() { cat << 'EOF' # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 ident #host replication postgres ::1/128 ident EOF } cmd_postgres_bdr_hba_fusionpbx() { cat << "EOF" # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 peer # IPv6 local connections: host all all ::1/128 peer hostssl all all ${my_ip}/32 trust host replication postgres ${my_ip}/32 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 ident #host replication postgres ::1/128 ident EOF } cmd_postgres_bdr_conf_fusionpbx() { cat << EOF listen_addresses = "*" shared_preload_libraries = "bdr" wal_level = "logical" track_commit_timestamp = on max_wal_senders = 10 max_replication_slots = 10 ssl = true ssl_ciphers = "HIGH:MEDIUM:+3DES:!aNULL" ssl_cert_file = "/etc/pki/pg_bdr/${my_name}/${my_name}-cert.pem" ssl_key_file = "/etc/pki/pg_bdr/${my_name}/${my_name}-key-nopasswd.pem" ssl_ca_file = "/etc/pki/pg_bdr/ca-cert.pem" ssl_crl_file = "/etc/pki/pg_bdr/ca_rev-list.pem" # max_worker_processes = 20 #log_error_verbosity = verbose #log_min_messages = debug1 #log_line_prefix = 'd=%d p=%p a=%a%q ' #bdr.default_apply_delay=2000 # milliseconds #bdr.log_conflicts_to_table=on #bdr.skip_ddl_replication = off EOF } cmd_postgres_conf_fusionpbx() { cat << 'EOF' listen_addresses = "*" logging_collector = on log_destination = 'stderr' log_directory = 'pg_log' log_filename = 'postgresql-%G-%m-%d-%a.log' log_truncate_on_rotation = off log_rotation_age = 31d client_min_messages = notice log_min_messages = info log_min_error_statement = notice log_min_duration_statement = 1000 log_line_prefix = '%t %u@%r:%d [%p] ' log_timezone = 'US/Eastern' datestyle = 'iso, mdy' timezone = 'US/Eastern' lc_messages = 'en_US.UTF-8' lc_monetary = 'en_US.UTF-8' lc_numeric = 'en_US.UTF-8' lc_time = 'en_US.UTF-8' default_text_search_config = 'pg_catalog.english' EOF } cmd_service_sip-ext() { cat << 'EOF' sip-ext sip ext freeswitch EOF } cmd_service_sip-int() { cat << 'EOF' sip-int sip int freeswitch EOF } cmd_service_chronyd() { cat << 'EOF' chronyd chronyd EOF } cmd_service_snmp() { cat << 'EOF' snmp snmp EOF } cmd_service_www() { cat << 'EOF' www web services EOF } cmd_service_rtp() { cat << 'EOF' rtp rtp freeswitch EOF } cmd_service_xml_rpc() { cat << 'EOF' fs-xml-rpc Freeswitch XML RPC EOF } cmd_sysconfig_freeswitch() { cat << 'EOF' PID_FILE=/var/run/freeswitch/freeswitch.pid FS_USER=freeswitch FS_GROUP=daemon FREESWITCH_PARAMS="-ncwait -nonat -u freeswitch -g daemon -certs /etc/freeswitch/ssl" EOF } cmd_remote_pgsql_p1() { cat << 'EOF' #!/bin/bash dnf_bin=$(which dnf) # Find pgsql staff # Fix contrib rc_n=$(rpm -q postgresql-bdr94-2ndquadrant-fedora >/dev/null 2>&1; echo $?) rc=$(rpm -q postgresql-server >/dev/null 2>&1; echo $?) read -p "Enter user name for fusionpbx database : " fusionpbx_username USERNAME_FUSIONPBX="$fusionpbx_username" read -p "Enter fusionpbx database name: " fusionpbx_dbname DBNAME_FUSIONPBX="$fusionpbx_dbname" read -p "Enter freeswitch database name: " freeswitch_dbname DBNAME_FREESWITCH="$freeswitch_dbname" stty -echo echo -n "Enter $USERNAME_FUSIONPBX database user password: " read psql_passwd stty echo echo DBNAME_USER_PASSWD="$psql_passwd" read -p "Do you want deploy database with BDR (Multi Master Replication)? [Y/n] " bdr_answer if [[ $bdr_answer =~ ^([yY][eE][sS]|[yY])$ ]]; then DB_TYPE="bdr" fi if [[ "$DB_TYPE" = bdr ]] && [[ $rc_n -ne 0 ]]; then "$dnf_bin" install -y http://packages.2ndquadrant.com/postgresql-bdr94-2ndquadrant/yum-repo-rpms/postgresql-bdr94-2ndquadrant-fedora-1.0-2.noarch.rpm "$dnf_bin" install -y postgresql-bdr94-bdr postgresql-bdr94-contrib pgtune else "$dnf_bin" install -y postgresql-bdr94-bdr postgresql-bdr94-contrib pgtune fi if [[ "$DB_TYPE" != bdr ]] && [[ $rc -ne 0 ]]; then "$dnf_bin" -y install postgresql-server postgresql-contrib pgtune fi default_interface=$(ip -o route get 8.8.8.8 | awk '{print $5}') get_zone=$(firewall-cmd --get-zone-of-interface=$default_interface) service_file_array=( $(find /etc/firewalld/services -maxdepth 1 -type f -name '*.xml') ) find_psql_data_dir=$(find /var/lib/pgsql -type d -name data) find_psql_service_file=$(find /usr/lib/systemd/system -type f -name postgresql*.service) find_psql_db94_setup=$(find /usr -type f -name postgresql94-setup) my_ip=$(ip -o route get 8.8.8.8 | awk '{print $7}') my_name=$(hostname -s) cp /usr/lib/firewalld/services/postgresql.xml /etc/firewalld/services for file in "${service_file_array[@]##*/}"; do firewall-cmd --permanent --zone "$get_zone" --add-service "${file%.xml}" done firewall-cmd --reload EOF } cmd_remote_pgsql_p2() { cat << 'EOF' cmd_create_db02() { echo "Database setup ..." if [[ "$DB_TYPE" != bdr ]]; then postgresql-setup --initdb echo "PgSQL already initialized continue ..." systemctl restart postgresql.service systemctl status postgresql.service mv ${find_psql_data_dir}/pg_hba.conf ${find_psql_data_dir}/pg_hba.conf.orig mv ${find_psql_data_dir}/postgresql.conf ${find_psql_data_dir}/postgresql.conf.orig psql_hba_config > ${find_psql_data_dir}/pg_hba.conf psql_config > ${find_psql_data_dir}/postgresql.conf pgtune -c 600 -i ${find_psql_data_dir}/postgresql.conf >/tmp/pgtune.conf mv ${find_psql_data_dir}/postgresql.conf{,.bak} cp /tmp/pgtune.conf ${find_psql_data_dir}/postgresql.conf chown -R postgres:postgres ${find_psql_data_dir} systemctl restart postgresql.service su - postgres -c "echo \"*:*:*:${USERNAME_FUSIONPBX}:${DBNAME_USER_PASSWD}\" > ~/.pgpass; chmod 600 ~/.pgpass" cmd_create_db su - postgres -c 'rm -f ~/.pgpass' else updatedb ${find_psql_db94_setup} initdb mv ${find_psql_data_dir}/pg_hba.conf ${find_psql_data_dir}/pg_hba.conf.orig mv ${find_psql_data_dir}/postgresql.conf ${find_psql_data_dir}/postgresql.conf.orig echo "Setting up SSL certificate for BDR ..." curl --silent -o /usr/sbin/CertMng http://ftpsrv01.networklab.ca/scripts/CertMng chmod +x /usr/sbin/CertMng CertMng --CASetup /etc/pki/pg_bdr find_cert_cnf=$(find /etc/pki/pg_bdr -maxdepth 1 -type f -name '*.cnf') CertMng --GenCert ${find_cert_cnf##*/} rm -f /usr/sbin/CertMng private_key="/etc/pki/pg_bdr/${my_name}/${my_name}-key-nopasswd.pem" chmod 600 "$private_key" cmd_postgres_bdr_conf_fusionpbx > ${find_psql_data_dir}/postgresql.conf cmd_postgres_conf_fusionpbx >> ${find_psql_data_dir}/postgresql.conf cmd_postgres_bdr_hba_fusionpbx > ${find_psql_data_dir}/pg_hba.conf pgtune -c 600 -i ${find_psql_data_dir}/postgresql.conf >/tmp/pgtune.conf mv ${find_psql_data_dir}/postgresql.conf{,.bak} cp /tmp/pgtune.conf ${find_psql_data_dir}/postgresql.conf chown -R postgres:postgres ${find_psql_data_dir} /etc/pki/pg_bdr systemctl restart postgresql-9.4.service su - postgres -c "echo \"*:*:*:${USERNAME_FUSIONPBX}:${DBNAME_USER_PASSWD}\" > ~/.pgpass; chmod 600 ~/.pgpass" cmd_create_db curl --silent -u fusionpbx_Admin:dron12345 --silent -o /tmp/freeswitch-pgsql-bdr-1.6.5.sql http://ftpsrv01.networklab.ca/misc/freeswitch-pgsql-bdr-1.6.5.sql su - postgres -c "psql --command 'CREATE EXTENSION pgcrypto' -d ${DBNAME_FREESWITCH} -w --no-password" chown postgres:postgres /tmp/freeswitch-pgsql-bdr-1.6.5.sql sed -i "s/freeswitch/${USERNAME_FUSIONPBX}/" /tmp/freeswitch-pgsql-bdr-1.6.5.sql su - postgres -c "psql -d ${DBNAME_FREESWITCH} -w --no-password -f /tmp/freeswitch-pgsql-bdr-1.6.5.sql -L /tmp/sql.log" su - postgres -c 'rm -f ~/.pgpass' rm -f /tmp/freeswitch-pgsql-bdr-1.6.5.sql echo -ne "\e[31mI added to pg_hba.conf file only myself please add rest replication members.\e[0m\n" sleep 4 fi } EOF } cmd_remote_pgsql_p3() { cat << 'EOF' cmd_create_db() { su - postgres -c "createuser -w --no-password -E -s -e ${USERNAME_FUSIONPBX}" su - postgres -c "createdb -w --no-password -E UTF8 -O ${USERNAME_FUSIONPBX} ${DBNAME_FREESWITCH}" su - postgres -c "createdb -w --no-password -E UTF8 -O ${USERNAME_FUSIONPBX} ${DBNAME_FUSIONPBX}" echo "Setting up passwords for user Postgres ..." su - postgres -c "psql --command '\password postgres'" echo "Setting up passwords for database user ${USERNAME_FUSIONPBX} ..." su - postgres -c "psql --command \"\password ${USERNAME_FUSIONPBX}"\" } EOF } cmd_remote_pgsql_p4() { cat << 'EOF' cmd_postgres_bdr_conf_fusionpbx() { printf "%s" "listen_addresses = '*' shared_preload_libraries = 'bdr' wal_level = 'logical' track_commit_timestamp = on max_wal_senders = 10 max_replication_slots = 10 ssl = true ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' ssl_cert_file = "\'/etc/pki/pg_bdr/${my_name}/${my_name}-cert.pem\'" ssl_key_file = "\'/etc/pki/pg_bdr/${my_name}/${my_name}-key-nopasswd.pem\'" ssl_ca_file = "\'/etc/pki/pg_bdr/ca-cert.pem\'" ssl_crl_file = "\'/etc/pki/pg_bdr/ca_rev-list.pem\'" # max_worker_processes = 20 # # #log_error_verbosity = verbose # # #log_min_messages = debug1 # # #log_line_prefix = 'd=%d p=%p a=%a%q ' # # #bdr.default_apply_delay=2000 # milliseconds # # #bdr.log_conflicts_to_table=on # # #bdr.skip_ddl_replication = off " } EOF } cmd_remote_pgsql_p5() { cat << 'EOF' psql_config() { printf "%s" "logging_collector = on log_destination = 'stderr' log_directory = 'pg_log' log_filename = 'postgresql-%G-%m-%d-%a.log' log_truncate_on_rotation = off log_rotation_age = 31d client_min_messages = notice log_min_messages = info log_min_error_statement = notice log_min_duration_statement = 1000 log_line_prefix = '%t %u@%r:%d [%p]' log_timezone = 'US/Eastern' datestyle = 'iso, mdy' timezone = 'US/Eastern' lc_messages = 'en_US.UTF-8' lc_monetary = 'en_US.UTF-8' lc_numeric = 'en_US.UTF-8' lc_time = 'en_US.UTF-8' default_text_search_config = 'pg_catalog.english' " } EOF } cmd_remote_pgsql_p6() { cat << 'EOF' cmd_postgres_conf_fusionpbx() { printf "%s" "logging_collector = on log_destination = 'stderr' log_directory = 'pg_log' log_filename = 'postgresql-%G-%m-%d-%a.log' log_truncate_on_rotation = off log_rotation_age = 31d client_min_messages = notice log_min_messages = info log_min_error_statement = notice log_min_duration_statement = 1000 log_line_prefix = '%t %u@%r:%d [%p] ' log_timezone = 'US/Eastern' datestyle = 'iso, mdy' timezone = 'US/Eastern' lc_messages = 'en_US.UTF-8' lc_monetary = 'en_US.UTF-8' lc_numeric = 'en_US.UTF-8' lc_time = 'en_US.UTF-8' default_text_search_config = 'pg_catalog.english' " } EOF } cmd_remote_pgsql_p7() { cat << 'EOF' cmd_postgres_bdr_hba_fusionpbx() { printf "%s" " # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust hostssl all all ${my_ip}/32 trust host replication postgres ${my_ip}/32 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 ident #host replication postgres ::1/128 ident " } EOF } cmd_remote_pgsql_p8() { cat << 'EOF' psql_hba_config() { printf '%s' ' # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 ident #host replication postgres ::1/128 ident ' } EOF }