[fusion] Weekly backup 2026-06-08 — 27 files changed, 1794 insertions(+)

This commit is contained in:
FusionPBX Backup
2026-06-08 23:12:54 -05:00
parent ab245ba5e0
commit 9c09ca5032
27 changed files with 1794 additions and 0 deletions
Binary file not shown.
+37
View File
@@ -0,0 +1,37 @@
--
-- PostgreSQL database cluster dump
--
\restrict h5jdeiwpfVhsdbBfFLUSJhRcoYBsgYhwuNKbaQZVQYpKMdMfuVHD9IB6V4eNr1T
SET default_transaction_read_only = off;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
--
-- Roles
--
CREATE ROLE fusionpbx;
ALTER ROLE fusionpbx WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'SCRAM-SHA-256$4096:JOYKSj+lfw3sxgcuge2NEQ==$k1piq39UiU0yXVkXwXp4kq6uf1R+x4f1OJjXkJCWRE8=:iEQk9HFcFZ4tZOtuZ2hWHbCQCv1CFbe+rQsHNk7Nqx0=';
CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS;
--
-- User Configurations
--
\unrestrict h5jdeiwpfVhsdbBfFLUSJhRcoYBsgYhwuNKbaQZVQYpKMdMfuVHD9IB6V4eNr1T
--
-- PostgreSQL database cluster dump complete
--
+146
View File
@@ -0,0 +1,146 @@
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 107.178.2.130 97.154.109.245
[ssh]
enabled = true
port = 22
protocol = ssh
filter = sshd
logpath = /var/log/auth.log
action = iptables-allports[name=sshd, protocol=all]
maxretry = 6
findtime = 60
bantime = 86400
[freeswitch]
enabled = false
port = 5060:5091
protocol = all
filter = freeswitch
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=freeswitch, protocol=all]
maxretry = 10
findtime = 60
bantime = 3600
# sendmail-whois[name=FreeSwitch, dest=root, sender=fail2ban@example.org] #no smtp server installed
[freeswitch-acl]
enabled = false
port = 5060:5091
protocol = all
filter = freeswitch-acl
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=freeswitch-acl, protocol=all]
maxretry = 900
findtime = 60
bantime = 86400
[freeswitch-ip]
enabled = false
port = 5060:5091
protocol = all
filter = freeswitch-ip
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=freeswitch-ip, protocol=all]
maxretry = 1
findtime = 60
bantime = 86400
[auth-challenge-ip]
enabled = false
port = 5060:5091
protocol = all
filter = auth-challenge-ip
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=auth-challenge-ip, protocol=all]
maxretry = 1
findtime = 60
bantime = 86400
[sip-auth-challenge]
enabled = false
port = 5060:5091
protocol = all
filter = sip-auth-challenge
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=sip-auth-challenge, protocol=all]
maxretry = 100
findtime = 60
bantime = 7200
[sip-auth-failure]
enabled = false
port = 5060:5091
protocol = all
filter = sip-auth-failure
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=sip-auth-failure, protocol=all]
maxretry = 6
findtime = 60
bantime = 7200
[fusionpbx-404]
enabled = false
port = 5060:5091
protocol = all
filter = fusionpbx-404
logpath = /var/log/freeswitch/freeswitch.log
#logpath = /usr/local/freeswitch/log/freeswitch.log
action = iptables-allports[name=fusionpbx-404, protocol=all]
maxretry = 6
findtime = 60
bantime = 86400
[fusionpbx]
enabled = true
port = 80,443
protocol = tcp
filter = fusionpbx
logpath = /var/log/auth.log
action = iptables-allports[name=fusionpbx, protocol=all]
# sendmail-whois[name=fusionpbx, dest=root, sender=fail2ban@example.org] #no smtp server installed
maxretry = 20
findtime = 60
bantime = 3600
[fusionpbx-mac]
enabled = true
port = 80,443
protocol = tcp
filter = fusionpbx-mac
logpath = /var/log/syslog
action = iptables-allports[name=fusionpbx-mac, protocol=all]
# sendmail-whois[name=fusionpbx-mac, dest=root, sender=fail2ban@example.org] #no smtp server installed
maxretry = 10
findtime = 60
bantime = 86400
[nginx-404]
enabled = true
port = 80,443
protocol = tcp
filter = nginx-404
logpath = /var/log/nginx/access*.log
action = iptables-allports[name=nginx-404, protocol=all]
bantime = 3600
findtime = 60
maxretry = 300
[nginx-dos]
# Based on apache-badbots but a simple IP check (any IP requesting more than
# 300 pages in 60 seconds, or 5p/s average, is suspicious)
enabled = true
port = 80,443
protocol = tcp
filter = nginx-dos
logpath = /var/log/nginx/access*.log
action = iptables-allports[name=nginx-dos, protocol=all]
findtime = 60
bantime = 86400
maxretry = 800
+439
View File
@@ -0,0 +1,439 @@
<!-- http://wiki.freeswitch.org/wiki/Mod_conference -->
<!-- None of these paths are real if you want any of these options you need to really set them up -->
<configuration name="conference.conf" description="Audio Conference">
<!-- Advertise certain presence on startup . -->
<advertise>
<!--<room name="3001@$${domain}" status="FreeSWITCH"/>-->
</advertise>
<!-- These are the default keys that map when you do not specify a caller control group -->
<!-- Note: none and default are reserved names for group names. Disabled if dist-dtmf member flag is set. -->
<caller-controls>
<group name="default">
<control action="mute" digits=""/>
<control action="deaf mute" digits=""/>
<control action="energy up" digits="9"/>
<control action="energy equ" digits="8"/>
<control action="energy dn" digits="7"/>
<control action="vol talk up" digits="3"/>
<control action="vol talk zero" digits="2"/>
<control action="vol talk dn" digits="1"/>
<control action="vol listen up" digits="6"/>
<control action="vol listen zero" digits="5"/>
<control action="vol listen dn" digits="4"/>
<control action="hangup" digits=""/>
<control action="execute_application" digits="" data="lua app/conference_center/resources/scripts/raise_hand.lua true"/>
<control action="execute_application" digits="" data="lua app/conference_center/resources/scripts/raise_hand.lua false"/>
</group>
<group name="moderator">
<control action="mute" digits=""/>
<control action="deaf mute" digits="*"/>
<control action="energy up" digits="9"/>
<control action="energy equ" digits="8"/>
<control action="energy dn" digits="7"/>
<control action="vol talk up" digits="3"/>
<control action="vol talk zero" digits="2"/>
<control action="vol talk dn" digits="1"/>
<control action="vol listen up" digits="6"/>
<control action="vol listen zero" digits="5"/>
<control action="vol listen dn" digits="4"/>
<control action="hangup" digits=""/>
<control action="execute_application" digits="0" data="lua app/conference_center/resources/scripts/mute.lua non_moderator"/>
<control action="execute_application" digits="*" data="lua app/conference_center/resources/scripts/unmute.lua non_moderator"/>
</group>
<group name="page">
<control action="mute" digits="0"/>
<control action="deaf mute" digits=""/>
<control action="energy up" digits="9"/>
<control action="energy equ" digits="8"/>
<control action="energy dn" digits="7"/>
<control action="vol talk up" digits="3"/>
<control action="vol talk zero" digits="2"/>
<control action="vol talk dn" digits="1"/>
<control action="vol listen up" digits="6"/>
<control action="vol listen zero" digits="5"/>
<control action="vol listen dn" digits="4"/>
<control action="hangup" digits=""/>
</group>
</caller-controls>
<!-- Profiles are collections of settings you can reference by name. -->
<profiles>
<!--If no profile is specified it will default to "default"-->
<profile name="default">
<!-- Directory to drop CDR's
'auto' means $PREFIX/logs/conference_cdr/<conference_uuid>.cdr.xml
a non-absolute path means $PREFIX/logs/<value>/<conference_uuid>.cdr.xml
absolute path means <value>/<conference_uuid>.cdr.xml
-->
<param name="cdr-log-dir" value="auto"/>
<!--<param name="conference-flags" value="wait-mod" />-->
<!-- Domain (for presence) -->
<param name="domain" value=""/>
<!-- Sample Rate-->
<param name="rate" value="8000"/>
<!-- Number of milliseconds per frame -->
<param name="interval" value="20"/>
<!-- Energy level required for audio to be sent to the other users -->
<param name="energy-level" value="15"/>
<param name="auto-gain-level" value="0"/>
<!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
even during silence. dist-dtmf propagates dtmfs to all other members, but channel controls
via dtmf will be disabled. -->
<!--<param name="member-flags" value="waste"/>-->
<!-- Name of the caller control group to use for this profile -->
<param name="caller-controls" value="default"/>
<!-- Name of the caller control group to use for the moderator in this profile -->
<param name="moderator-controls" value="moderator"/>
<!-- TTS Engine to use -->
<!--<param name="tts-engine" value="cepstral"/>-->
<!-- TTS Voice to use -->
<!--<param name="tts-voice" value="david"/>-->
<!-- If TTS is enabled all audio-file params beginning with -->
<!-- 'say:' will be considered text to say with TTS -->
<!-- Override the default path here, after which you use relative paths in the other sound params -->
<!-- Note: The default path is the conference's first caller's sound_prefix -->
<!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
<!-- File to play to acknowledge succees -->
<!--<param name="ack-sound" value="beep.wav"/>-->
<!-- File to play to acknowledge failure -->
<!--<param name="nack-sound" value="beeperr.wav"/>-->
<!-- File to play to acknowledge muted -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<!-- File to play to acknowledge unmuted -->
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<!-- File to play if you are alone in the conference -->
<param name="alone-sound" value="conference/conf-alone.wav"/>
<!-- File to play endlessly (nobody will ever be able to talk) -->
<!--<param name="perpetual-sound" value="perpetual.wav"/>-->
<!-- File to play when you're alone (music on hold)-->
<param name="moh-sound" value="local_stream://default"/>
<!-- File to play when you join the conference -->
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<!-- File to play when you leave the conference -->
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<!-- File to play when you ae ejected from the conference -->
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<!-- File to play when the conference is locked -->
<param name="locked-sound" value="conference/conf-locked.wav"/>
<!-- File to play when the conference is locked during the call-->
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<!-- File to play when the conference is unlocked during the call-->
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<!-- File to play to prompt for a pin -->
<param name="pin-sound" value="conference/conf-pin.wav"/>
<!-- File to play to when the pin is invalid -->
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<!-- Conference pin -->
<!--<param name="pin" value="12345"/>-->
<!--<param name="moderator-pin" value="54321"/>-->
<!-- Max number of times the user can be prompted for PIN -->
<!--<param name="pin-retries" value="3"/>-->
<!-- Default Caller ID Name for outbound calls -->
<param name="caller-id-name" value=""/>
<!-- Default Caller ID Number for outbound calls -->
<param name="caller-id-number" value=""/>
<!-- Suppress start and stop talking events -->
<!-- <param name="suppress-events" value="start-talking,stop-talking"/> -->
<!-- enable comfort noise generation -->
<param name="comfort-noise" value="true"/>
<!-- Uncomment auto-record to toggle recording every conference call. -->
<!-- Another valid value is shout://user:pass@server.com/live.mp3 -->
<!--
<param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
-->
<!-- IVR digit machine timeouts -->
<!-- How much to wait between DTMF digits to match caller-controls -->
<!-- <param name="ivr-dtmf-timeout" value="500"/> -->
<!-- How much to wait for the first DTMF, 0 forever -->
<!-- <param name="ivr-input-timeout" value="0" /> -->
<!-- Delay before a conference is asked to be terminated -->
<!-- <param name="endconf-grace-time" value="120" /> -->
</profile>
<profile name="wait-mod">
<param name="cdr-log-dir" value="auto"/>
<param name="conference-flags" value="wait-mod" />
<param name="domain" value=""/>
<param name="rate" value="8000"/>
<param name="interval" value="20"/>
<param name="energy-level" value="15"/>
<param name="auto-gain-level" value="0"/>
<param name="caller-controls" value="default"/>
<param name="moderator-controls" value="moderator"/>
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="local_stream://default"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value=""/>
<param name="caller-id-number" value=""/>
<param name="comfort-noise" value="true"/>
</profile>
<profile name="wideband">
<param name="domain" value=""/>
<param name="rate" value="16000"/>
<param name="interval" value="20"/>
<param name="energy-level" value="15"/>
<param name="auto-gain-level" value="0"/>
<param name="caller-controls" value="default"/>
<param name="moderator-controls" value="moderator"/>
<!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="local_stream://default"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value=""/>
<param name="caller-id-number" value=""/>
<param name="comfort-noise" value="true"/>
<!--<param name="tts-engine" value="flite"/>-->
<!--<param name="tts-voice" value="kal16"/>-->
</profile>
<profile name="ultrawideband">
<param name="domain" value=""/>
<param name="rate" value="32000"/>
<param name="interval" value="20"/>
<param name="energy-level" value="15"/>
<param name="auto-gain-level" value="0"/>
<param name="caller-controls" value="default"/>
<param name="moderator-controls" value="moderator"/>
<!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="local_stream://default"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value=""/>
<param name="caller-id-number" value=""/>
<param name="comfort-noise" value="true"/>
<!--<param name="tts-engine" value="flite"/>-->
<!--<param name="tts-voice" value="kal16"/>-->
</profile>
<profile name="cdquality">
<param name="domain" value=""/>
<param name="rate" value="48000"/>
<param name="interval" value="10"/>
<param name="energy-level" value="15"/>
<param name="auto-gain-level" value="0"/>
<param name="caller-controls" value="default"/>
<param name="moderator-controls" value="moderator"/>
<!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="local_stream://default"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value=""/>
<param name="caller-id-number" value=""/>
<param name="comfort-noise" value="true"/>
</profile>
<profile name="video-mcu-stereo">
<param name="domain" value="$${domain}"/>
<param name="rate" value="48000"/>
<param name="channels" value="2"/>
<param name="interval" value="20"/>
<param name="energy-level" value="200"/>
<!-- <param name="tts-engine" value="flite"/> -->
<!-- <param name="tts-voice" value="kal16"/> -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value="$${outbound_caller_name}"/>
<param name="caller-id-number" value="$${outbound_caller_id}"/>
<param name="comfort-noise" value="false"/>
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
<param name="video-auto-floor-msec" value="1000"/>
<param name="video-mode" value="mux"/>
<param name="video-layout-name" value="3x3"/>
<param name="video-layout-name" value="group:grid"/>
<param name="video-canvas-size" value="1920x1080"/>
<param name="video-canvas-bgcolor" value="#333333"/>
<param name="video-layout-bgcolor" value="#000000"/>
<param name="video-codec-bandwidth" value="3mb"/>
<param name="video-fps" value="30"/>
<!-- <param name="video-codec-config-profile-name" value="conference"/> -->
</profile>
<profile name="video-mcu-stereo-720">
<param name="domain" value="$${domain}"/>
<param name="rate" value="48000"/>
<param name="channels" value="2"/>
<param name="interval" value="20"/>
<param name="energy-level" value="200"/>
<!-- <param name="tts-engine" value="flite"/> -->
<!-- <param name="tts-voice" value="kal16"/> -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value="$${outbound_caller_name}"/>
<param name="caller-id-number" value="$${outbound_caller_id}"/>
<param name="comfort-noise" value="false"/>
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
<param name="video-auto-floor-msec" value="1000"/>
<param name="video-mode" value="mux"/>
<param name="video-layout-name" value="3x3"/>
<param name="video-layout-name" value="group:grid"/>
<param name="video-canvas-size" value="1280x720"/>
<param name="video-canvas-bgcolor" value="#333333"/>
<param name="video-layout-bgcolor" value="#000000"/>
<param name="video-codec-bandwidth" value="3mb"/>
<param name="video-fps" value="30"/>
</profile>
<profile name="video-mcu-stereo-480">
<param name="domain" value="$${domain}"/>
<param name="rate" value="48000"/>
<param name="channels" value="2"/>
<param name="interval" value="20"/>
<param name="energy-level" value="200"/>
<!-- <param name="tts-engine" value="flite"/> -->
<!-- <param name="tts-voice" value="kal16"/> -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value="$${outbound_caller_name}"/>
<param name="caller-id-number" value="$${outbound_caller_id}"/>
<param name="comfort-noise" value="false"/>
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
<param name="video-auto-floor-msec" value="1000"/>
<param name="video-mode" value="mux"/>
<param name="video-layout-name" value="3x3"/>
<param name="video-layout-name" value="group:grid"/>
<param name="video-canvas-size" value="640x480"/>
<param name="video-canvas-bgcolor" value="#333333"/>
<param name="video-layout-bgcolor" value="#000000"/>
<param name="video-codec-bandwidth" value="3mb"/>
<param name="video-fps" value="30"/>
</profile>
<profile name="video-mcu-stereo-320">
<param name="domain" value="$${domain}"/>
<param name="rate" value="48000"/>
<param name="channels" value="2"/>
<param name="interval" value="20"/>
<param name="energy-level" value="200"/>
<!-- <param name="tts-engine" value="flite"/> -->
<!-- <param name="tts-voice" value="kal16"/> -->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="alone-sound" value="conference/conf-alone.wav"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="pin-sound" value="conference/conf-pin.wav"/>
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
<param name="caller-id-name" value="$${outbound_caller_name}"/>
<param name="caller-id-number" value="$${outbound_caller_id}"/>
<param name="comfort-noise" value="false"/>
<param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
<param name="video-auto-floor-msec" value="1000"/>
<param name="video-mode" value="mux"/>
<param name="video-layout-name" value="3x3"/>
<param name="video-layout-name" value="group:grid"/>
<param name="video-canvas-size" value="480x320"/>
<param name="video-canvas-bgcolor" value="#333333"/>
<param name="video-layout-bgcolor" value="#000000"/>
<param name="video-codec-bandwidth" value="3mb"/>
<param name="video-fps" value="30"/>
</profile>
<profile name="sla">
<param name="domain" value=""/>
<param name="rate" value="16000"/>
<param name="interval" value="20"/>
<param name="caller-controls" value="none"/>
<param name="energy-level" value="200"/>
<param name="moh-sound" value="silence"/>
<param name="comfort-noise" value="true"/>
</profile>
<profile name="page">
<param name="domain" value=""/>
<param name="rate" value="8000"/>
<param name="interval" value="20"/>
<param name="energy-level" value="300"/>
<param name="caller-controls" value="page"/>
<param name="moderator-controls" value="moderator"/>
<!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>-->
<param name="muted-sound" value="conference/conf-muted.wav"/>
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
<param name="locked-sound" value="conference/conf-locked.wav"/>
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
<param name="caller-id-name" value=""/>
<param name="caller-id-number" value=""/>
<param name="comfort-noise" value="true"/>
<param name="terminate-on-silence" value="30"/>
</profile>
</profiles>
</configuration>
@@ -0,0 +1,9 @@
<configuration name="event_socket.conf" description="Socket Client">
<settings>
<param name="nat-map" value="false"/>
<param name="listen-ip" value="127.0.0.1"/>
<param name="listen-port" value="8021"/>
<param name="password" value="ClueCon"/>
<!--<param name="apply-inbound-acl" value="lan"/>-->
</settings>
</configuration>
@@ -0,0 +1,29 @@
<configuration name="logfile.conf" description="File Logging">
<settings>
<!-- true to auto rotate on HUP, false to open/close -->
<param name="rotate-on-hup" value="true"/>
</settings>
<profiles>
<profile name="default">
<settings>
<!-- File to log to -->
<!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
<!-- At this length in bytes rotate the log file (0 for never) -->
<param name="rollover" value="10485760"/>
<!-- Maximum number of log files to keep before wrapping -->
<!-- If this parameter is enabled, the log filenames will not include a date stamp -->
<param name="maximum-rotate" value="10"/>
<!-- Uncomment to prefix all log lines by the session's uuid -->
<param name="uuid" value="true" />
</settings>
<mappings>
<!--
name can be a file name, function name or 'all'
value is one or more of debug,info,notice,warning,err,crit,alert,all
Please see comments in console.conf.xml for more information
-->
<map name="all" value="debug,info,notice,warning,err,crit,alert"/>
</mappings>
</profile>
</profiles>
</configuration>
+65
View File
@@ -0,0 +1,65 @@
<configuration name="lua.conf" description="LUA Configuration">
<settings>
<!--
Specify local directories that will be searched for LUA modules
These entries will be pre-pended to the LUA_CPATH environment variable
-->
<!--
<param name="module-directory" value="/usr/local/lib/lua/5.2/?.so"/>
<param name="module-directory" value="/usr/local/lib/lua/5.2/?"/>
<param name="module-directory" value="/usr/lib/x86_64-linux-gnu/lua/5.2/?.so"/>
-->
<!--
Specify local directories that will be searched for LUA scripts
These entries will be pre-pended to the LUA_PATH environment variable
-->
<!-- <param name="script-directory" value="/usr/local/lua/?.lua"/> -->
<param name="script-directory" value="$${script_dir}/?.lua"/>
<!--
Deliver XML from lua with the XML Handler
-->
<param name="xml-handler-script" value="app.lua xml_handler"/>
<param name="xml-handler-bindings" value="configuration,dialplan,directory,languages"/>
<!--
The following options identifies a lua script that is launched
at startup and may live forever in the background.
You can define multiple lines, one for each script you
need to run.
-->
<!-- FusionPBX: Support BLF for call flow -->
<!-- There 2 way to handle this
1 - Monitor - ignore SUBSCRIBE and just send NOTIFY each X seconds
2 - Event handler - handle each SUBSCRIBE request
-->
<!--<param name="startup-script" value="call_flow_monitor.lua"/>-->
<!--<param name="startup-script" value="blf_subscribe.lua flow"/>-->
<!-- FusionPBX: Support BLF for DND -->
<!--<param name="startup-script" value="blf_subscribe.lua dnd"/>-->
<!-- FusionPBX: Support BLF for Call Forward -->
<!--<param name="startup-script" value="blf_subscribe.lua forward"/>-->
<!-- FusionPBX: Support BLF for Call Center Agents -->
<!--<param name="startup-script" value="blf_subscribe.lua agent"/>-->
<!-- FusionPBX: Support BLF for Voicemail -->
<!--<param name="startup-script" value="blf_subscribe.lua voicemail"/>-->
<!-- FusionPBX: Support MWI indicator-->
<!-- There 2 way to handle this
1 - Monitor - ignore SUBSCRIBE and just send NOTIFY each X seconds
2 - Event handler - handle each SUBSCRIBE request
-->
<!--<param name="startup-script" value="app/voicemail/resources/scripts/mwi.lua"/>-->
<!--<param name="startup-script" value="app/voicemail/resources/scripts/mwi_subscribe.lua"/>-->
<!-- Subscribe to events -->
<!--<hook event="PHONE_FEATURE_SUBSCRIBE" subclass="" script="app.lua feature_event"/>-->
</settings>
</configuration>
@@ -0,0 +1,78 @@
<configuration name="modules.conf" description="Modules">
<modules>
<!-- Applications -->
<load module="mod_commands"/>
<!-- Languages -->
<load module="mod_lua"/>
<!-- Endpoints -->
<load module="mod_sofia"/>
<!-- Loggers -->
<load module="mod_logfile"/>
<load module="mod_syslog"/>
<load module="mod_console"/>
<!-- Applications -->
<load module="mod_curl"/>
<load module="mod_valet_parking"/>
<load module="mod_conference"/>
<load module="mod_enum"/>
<load module="mod_rtc"/>
<load module="mod_sms"/>
<load module="mod_fsv"/>
<load module="mod_esf"/>
<load module="mod_hash"/>
<load module="mod_expr"/>
<load module="mod_spandsp"/>
<load module="mod_callcenter"/>
<load module="mod_dptools"/>
<load module="mod_av"/>
<load module="mod_db"/>
<load module="mod_fifo"/>
<!-- Codecs -->
<load module="mod_b64"/>
<load module="mod_g723_1"/>
<load module="mod_g729"/>
<load module="mod_amr"/>
<!-- Databases -->
<load module="mod_pgsql"/>
<!-- Dialplan Interfaces -->
<load module="mod_dialplan_xml"/>
<!-- Endpoints -->
<load module="mod_loopback"/>
<!-- Event Handlers -->
<load module="mod_event_socket"/>
<!-- File Format Interfaces -->
<load module="mod_sndfile"/>
<load module="mod_native_file"/>
<!-- Formats -->
<load module="mod_png"/>
<!-- Say -->
<load module="mod_say_es_ar"/>
<load module="mod_say_en"/>
<load module="mod_say_fr"/>
<load module="mod_say_es"/>
<!-- Streams / Files -->
<load module="mod_shout"/>
<load module="mod_tone_stream"/>
<load module="mod_local_stream"/>
<!-- XML Interfaces -->
<load module="mod_xml_cdr"/>
<load module="mod_signalwire"/>
</modules>
</configuration>
@@ -0,0 +1,19 @@
<configuration name="sofia.conf" description="sofia Endpoint">
<global_settings>
<param name="log-level" value="0"/>
<!-- <param name="auto-restart" value="false"/> -->
<param name="debug-presence" value="0"/>
<!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> -->
</global_settings>
<!--
The rabbit hole goes deep. This includes all the
profiles in the sip_profiles directory that is up
one level from this directory.
-->
<profiles>
<X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/>
</profiles>
</configuration>
+170
View File
@@ -0,0 +1,170 @@
<configuration name="switch.conf" description="Core Configuration">
<cli-keybindings>
<key name="1" value="help"/>
<key name="2" value="status"/>
<key name="3" value="show channels"/>
<key name="4" value="show calls"/>
<key name="5" value="sofia status"/>
<key name="6" value="reloadxml"/>
<key name="7" value="console loglevel 0"/>
<key name="8" value="console loglevel 7"/>
<key name="9" value="sofia status profile internal"/>
<key name="10" value="sofia profile internal siptrace on"/>
<key name="11" value="sofia profile internal siptrace off"/>
<key name="12" value="version"/>
</cli-keybindings>
<default-ptimes>
<!-- Set this to override the 20ms assumption of various codecs in the sdp with no ptime defined -->
<!-- <codec name="G729" ptime="40"/> -->
</default-ptimes>
<settings>
<!-- Colorize the Console -->
<param name="colorize-console" value="true"/>
<!-- Run the timer at 20ms by default and drop down as needed unless you set 1m-timer=true which was previous default -->
<!-- <param name="1ms-timer" value="true"/> -->
<!--
Set the Switch Name for HA environments.
When setting the switch name, it will override the system hostname for all DB and CURL requests
allowing cluster environments such as RHCS to have identical FreeSWITCH configurations but run
as different hostnames.
-->
<!-- <param name="switchname" value="freeswitch"/> -->
<!-- Maximum number of simultaneous DB handles open -->
<param name="max-db-handles" value="50"/>
<!-- Maximum number of seconds to wait for a new DB handle before failing -->
<param name="db-handle-timeout" value="10"/>
<!-- Minimum idle CPU before refusing calls -->
<!-- <param name="min-idle-cpu" value="25"/> -->
<!--
Max number of sessions to allow at any given time.
NOTICE: If you're driving 28 T1's in a single box you should set this to 644*2 or 1288
this will ensure you're able to use the entire DS3 without a problem. Otherwise you'll
be 144 channels short of always filling that DS3 up which can translate into waste.
-->
<param name="max-sessions" value="1000"/>
<!--Most channels to create per second -->
<param name="sessions-per-second" value="30"/>
<!-- Default Global Log Level - value is one of debug,info,notice,warning,err,crit,alert -->
<param name="loglevel" value="debug"/>
<!-- Set the core DEBUG level (0-10) -->
<!-- <param name="debug-level" value="10"/> -->
<!-- SQL Buffer length within rage of 32k to 10m -->
<!-- <param name="sql-buffer-len" value="1m"/> -->
<!-- Maximum SQL Buffer length must be greater than sql-buffer-len -->
<!-- <param name="max-sql-buffer-len" value="2m"/> -->
<!--
The min-dtmf-duration specifies the minimum DTMF duration to use on
outgoing events. Events shorter than this will be increased in duration
to match min_dtmf_duration. You cannot configure a dtmf duration on a
profile that is less than this setting. You may increase this value,
but cannot set it lower than 400. This value cannot exceed
max-dtmf-duration. -->
<param name="min-dtmf-duration" value="640"/>
<!--
The max-dtmf-duration caps the playout of a DTMF event at the specified
duration. Events exceeding this duration will be truncated to this
duration. You cannot configure a duration on a profile that exceeds
this setting. This setting can be lowered, but cannot exceed 192000.
This setting cannot be set lower than min_dtmf_duration. -->
<!-- <param name="max-dtmf-duration" value="192000"/> -->
<!--
The default_dtmf_duration specifies the DTMF duration to use on
originated DTMF events or on events that are received without a
duration specified. This value can be increased or lowered. This
value is lower-bounded by min_dtmf_duration and upper-bounded by
max-dtmf-duration\. -->
<!-- <param name="default-dtmf-duration" value="2000"/> -->
<!--
If you want to send out voicemail notifications via Windows you'll need to change the mailer-app
variable to the setting below:
<param name="mailer-app" value="msmtp"/>
Do not change mailer-app-args.
You will also need to download a sendmail clone for Windows (msmtp). This version works without issue:
http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32.
You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in
%USERPROFILE%\Application Data\ called "msmtprc.txt". Below is a sample copy of this file:
###################################
# The SMTP server of the provider.
account provider
host smtp.myisp.com
from john@myisp.com
auth login
user johndoe
password mypassword
# Set a default account
account default : provider
###################################
-->
<!--<param name="mailer-app" value="sendmail"/>-->
<!--<param name="mailer-app-args" value="-t"/>-->
<param name="mailer-app" value="/usr/bin/php /var/www/fusionpbx/secure/v_mailto.php"/>
<param name="mailer-app-args" value="-t"/>
<param name="dump-cores" value="yes"/>
<!-- Enable verbose channel events to include every detail about a channel on every event -->
<!-- <param name="verbose-channel-events" value="no"/> -->
<!-- Enable clock nanosleep -->
<!-- <param name="enable-clock-nanosleep" value="true"/> -->
<!-- Enable monotonic timing -->
<!-- <param name="enable-monotonic-timing" value="true"/> -->
<!-- NEEDS DOCUMENTATION -->
<!-- <param name="enable-softtimer-timerfd" value="true"/> -->
<!-- <param name="enable-cond-yield" value="true"/> -->
<!-- <param name="enable-timer-matrix" value="true"/> -->
<!-- <param name="threaded-system-exec" value="true"/> -->
<!-- <param name="tipping-point" value="0"/> -->
<!-- <param name="timer-affinity" value="disabled"/> -->
<!-- NEEDS DOCUMENTATION -->
<!-- RTP port range -->
<!-- <param name="rtp-start-port" value="16384"/> -->
<!-- <param name="rtp-end-port" value="32768"/> -->
<!-- <param name="rtp-enable-zrtp" value="true"/> -->
<!-- <param name="core-db-dsn" value="$${dsn}" /> -->
<!--
Allow to specify the sqlite db at a different location (In this example, move it to ramdrive for
better performance on most linux distro (note, you loose the data if you reboot))
-->
<!-- <param name="core-db-name" value="/dev/shm/core.db" /> -->
<!-- The system will create all the db schemas automatically, set this to false to avoid this behaviour -->
<param name="auto-create-schemas" value="true"/>
<!-- <param name="auto-clear-sql" value="true"/> -->
<!-- <param name="enable-early-hangup" value="true"/> -->
<!-- <param name="core-dbtype" value="MSSQL"/> -->
<!-- Allow multiple registrations to the same account in the central registration table -->
<!-- <param name="multiple-registrations" value="true"/> -->
<!-- Event handler uses event queue when set to true. False uses a threaded solution. -->
<param name="events-use-dispatch" value="false"/>
<!-- SWITCH default is 1. Use this number of thread on startup. -->
<param name="initial-event-threads" value="8"/>
</settings>
</configuration>
+21
View File
@@ -0,0 +1,21 @@
[default]
; Things you're used to....
exten => music,n,Dial(SIP/1234@conference.freeswitch.org|120)
exten => _1XXXXX,n,set(cool=${EXTEN})
exten => _1XXXXX,n,set(myvar=true)
exten => _1XXXXX,n,Goto(default|music)
exten => 2137991400/1000,n,Goto(default|music)
; Some new magic you can do....
exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,enum($1)
exten => ~^(18(0{2}|8{2}|7{2}|6{2})\d{7})$,n,bridge(${enum_auto_route})
; instead of exten, put anything about the call you would rather match on.
; either the names of a field in caller_profile or a string of variables to expand.
caller_id_number => 2137991400,n,Goto(default|music)
${sip_from_user} => bill,n,Goto(default|music)
+70
View File
@@ -0,0 +1,70 @@
<?xml version="1.0"?>
<!--
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
This is the FreeSWITCH default config. Everything you see before you now traverses
down into all the directories including files which include more files. The default
config comes out of the box already working in most situations as a PBX. This will
allow you to get started testing and playing with various things in FreeSWITCH.
Before you start to modify this default please visit this wiki page:
http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Some_stuff_to_try_out.21
If all else fails you can read our FAQ located at:
http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
-->
<document type="freeswitch/xml">
<!--#comment
All comments starting with #command will be preprocessed and never sent to the xml parser
Valid instructions:
#include ==> Include another file to this exact point
(partial xml should be encased in <include></include> tags)
#set ==> Set a global variable (can be expanded during preprocessing with $$ variables)
(note the double $$ which denotes preprocessor variables)
#comment ==> A general comment such as this
The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.xml.fsxml
Don't modify it while freeswitch is running cos it is mem mapped in most cases =D
The same can be achieved with the <X-PRE-PROCESS> tag where the attrs 'cmd' and 'data' are
parsed in the same way.
-->
<!--#comment
vars.xml contains all the #set directives for the preprocessor.
-->
<X-PRE-PROCESS cmd="include" data="vars.xml"/>
<section name="configuration" description="Various Configuration">
<X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/>
</section>
<section name="dialplan" description="Regex/XML Dialplan">
<X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/>
</section>
<section name="chatplan" description="Regex/XML Chatplan">
<X-PRE-PROCESS cmd="include" data="chatplan/*.xml"/>
</section>
<!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
<!-- mod_sofia is reliant on the user data for authorization -->
<section name="directory" description="User Directory">
<X-PRE-PROCESS cmd="include" data="directory/*.xml"/>
</section>
<!-- languages section -->
<section name="languages" description="Language Management">
<X-PRE-PROCESS cmd="include" data="languages/de/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/el/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/en/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/es/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/fr/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/he/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/pt/*.xml"/>
<X-PRE-PROCESS cmd="include" data="languages/ru/*.xml"/>
</section>
</document>
+91
View File
@@ -0,0 +1,91 @@
<!-- Codecs -->
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA" />
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA" />
<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true" />
<!-- Defaults -->
<X-PRE-PROCESS cmd="set" data="call_debug=false" />
<X-PRE-PROCESS cmd="set" data="console_loglevel=info" />
<X-PRE-PROCESS cmd="set" data="default_areacode=208" />
<X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)" />
<X-PRE-PROCESS cmd="set" data="use_profile=internal" />
<X-PRE-PROCESS cmd="set" data="default_language=en" />
<X-PRE-PROCESS cmd="set" data="default_dialect=us" />
<X-PRE-PROCESS cmd="set" data="default_voice=callie" />
<X-PRE-PROCESS cmd="set" data="record_ext=wav" />
<X-PRE-PROCESS cmd="set" data="default_country=US" />
<X-PRE-PROCESS cmd="set" data="default_countrycode=1" />
<X-PRE-PROCESS cmd="set" data="default_exitcode=011" />
<!-- IP Address -->
<X-PRE-PROCESS cmd="set" data="external_sip_ip=134.209.72.226" />
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=134.209.72.226" />
<!-- Music on Hold -->
<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://default" />
<!-- Ringtones -->
<X-PRE-PROCESS cmd="set" data="pl-ring=%(1000,4000,425)" />
<X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440)" />
<X-PRE-PROCESS cmd="set" data="pt-ring=%(1000,5000,400)" />
<X-PRE-PROCESS cmd="set" data="hk-ring=%(400,200,440,480);%(400,3000,440,480)" />
<X-PRE-PROCESS cmd="set" data="hu-ring=%(1250,3750,425)" />
<X-PRE-PROCESS cmd="set" data="il-ring=%(1000,3000,400)" />
<X-PRE-PROCESS cmd="set" data="in-ring=%(400,200,425,375);%(400,2000,425,375)" />
<X-PRE-PROCESS cmd="set" data="jp-ring=%(1000,2000,420,380)" />
<X-PRE-PROCESS cmd="set" data="ko-ring=%(1000,2000,440,480)" />
<X-PRE-PROCESS cmd="set" data="pk-ring=%(1000,2000,400)" />
<X-PRE-PROCESS cmd="set" data="ro-ring=%(1850,4150,475,425)" />
<X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425)" />
<X-PRE-PROCESS cmd="set" data="it-ring=%(1000,4000,425)" />
<X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425)" />
<X-PRE-PROCESS cmd="set" data="sa-ring=%(1200,4600,425)" />
<X-PRE-PROCESS cmd="set" data="tr-ring=%(2000,4000,450)" />
<X-PRE-PROCESS cmd="set" data="uk-ring=%(400,200,400,450);%(400,2000,400,450)" />
<X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440,480)" />
<X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)" />
<X-PRE-PROCESS cmd="set" data="au-ring=%(400,200,383,417);%(400,2000,383,417)" />
<X-PRE-PROCESS cmd="set" data="be-ring=%(1000,3000,425)" />
<X-PRE-PROCESS cmd="set" data="ca-ring=%(2000,4000,440,480)" />
<X-PRE-PROCESS cmd="set" data="cn-ring=%(1000,4000,450)" />
<X-PRE-PROCESS cmd="set" data="cy-ring=%(1500,3000,425)" />
<X-PRE-PROCESS cmd="set" data="cz-ring=%(1000,4000,425)" />
<X-PRE-PROCESS cmd="set" data="de-ring=%(1000,4000,425)" />
<X-PRE-PROCESS cmd="set" data="dk-ring=%(1000,4000,425)" />
<X-PRE-PROCESS cmd="set" data="dz-ring=%(1500,3500,425)" />
<X-PRE-PROCESS cmd="set" data="eg-ring=%(2000,1000,475,375)" />
<X-PRE-PROCESS cmd="set" data="fi-ring=%(1000,4000,425)" />
<!-- Security -->
<X-PRE-PROCESS cmd="set" data="disable_system_api_commands=true" />
<X-PRE-PROCESS cmd="set" data="disable_system_app_commands=true" />
<!-- SIP -->
<X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1,tlsv1.1,tlsv1.2" />
<X-PRE-PROCESS cmd="set" data="unroll_loops=true" />
<!-- SIP Profile: External -->
<X-PRE-PROCESS cmd="set" data="external_ssl_enable=false" />
<X-PRE-PROCESS cmd="set" data="external_ssl_dir=$${conf_dir}/tls" />
<!-- SIP Profile: Internal -->
<X-PRE-PROCESS cmd="set" data="internal_ssl_dir=$${conf_dir}/tls" />
<X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false" />
<!-- Sound -->
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie" />
<!-- Tones -->
<X-PRE-PROCESS cmd="set" data="vacant-uk-tone=%(330,15,950);%(330,15,1400);%(330,1000,1800)" />
<X-PRE-PROCESS cmd="set" data="busy-us-tone=%(500,500,480,620)" />
<X-PRE-PROCESS cmd="set" data="busy-us-tone-3x=%(500,500,480,620);%(500,500,480,620);%(500,500,480,620)" />
<X-PRE-PROCESS cmd="set" data="busy-au-tone=v=-13;%(375,375,420);v=-23;%(375,375,420)" />
<X-PRE-PROCESS cmd="set" data="bong-us-tone=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)" />
<X-PRE-PROCESS cmd="set" data="vacant-us-tone=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)" />
<!-- XMPP -->
<X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps" />
<X-PRE-PROCESS cmd="set" data="bind_server_ip=auto" />
<X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc" />
+40
View File
@@ -0,0 +1,40 @@
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
eth0:
accept-ra: false
addresses:
- 2604:A880:0400:00D1:0000:0004:7377:4001/64
- 134.209.72.226/20
- 10.10.0.5/16
match:
macaddress: fa:01:e4:87:a2:9b
mtu: 1500
nameservers:
addresses:
- 67.207.67.2
- 67.207.67.3
search: []
routes:
- to: ::/0
via: 2604:A880:0400:00D1:0000:0000:0000:0001
- to: 0.0.0.0/0
via: 134.209.64.1
set-name: eth0
eth1:
addresses:
- 10.116.0.3/20
match:
macaddress: 32:a5:04:32:aa:0b
mtu: 1500
nameservers:
addresses:
- 67.207.67.2
- 67.207.67.3
search: []
set-name: eth1
+1
View File
@@ -0,0 +1 @@
fusion
+15
View File
@@ -0,0 +1,15 @@
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
# /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.0.1 localhost
127.0.1.1 fusion.orbishosting.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
+341
View File
@@ -0,0 +1,341 @@
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 80M;
client_body_buffer_size 128k;
location / {
root /var/www/fusionpbx;
index index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
}
# Allow the upgrade routines to run longer than normal
location = /core/upgrade/index.php {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 15m;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
}
# Disable viewing .htaccess & .htpassword & .db & .git
location ~ .htaccess {
deny all;
}
location ~ .htpassword {
deny all;
}
location ~^.+.(db)$ {
deny all;
}
location ~ /\.git {
deny all;
}
location ~ /\.lua {
deny all;
}
location ~ /\. {
deny all;
}
}
server {
if ($host = fusion.orbishosting.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen [::]:80;
listen 80;
server_name fusion.orbishosting.com 134.209.72.226;
#redirect letsencrypt to dehydrated
location ^~ /.well-known/acme-challenge {
default_type "text/plain";
auth_basic "off";
alias /var/www/dehydrated;
}
#rewrite rule - send to https with an exception for provisioning
if ($uri !~* ^.*(provision|xml_cdr|firmware).*$) {
rewrite ^(.*) https://$host$1 permanent;
break;
}
#REST api
if ($uri ~* ^.*/api/.*$) {
rewrite ^(.*)/api/(.*)$ $1/api/index.php?rewrite_uri=$2 last;
break;
}
#algo
rewrite "^.*/provision/algom([A-Fa-f0-9]{12})\.conf" /app/provision/?mac=$1&file=algom%7b%24mac%7d.conf last;
#avaya
rewrite "^.*/provision/J100Supgrade.txt" /resources/templates/provision/avaya/J100Supgrade.txt last;
rewrite "^.*/provision/([A-Fa-f0-9]{12}).txt?$" /app/provision/index.php?mac=$1 last;
#mitel
rewrite "^.*/provision/MN_([A-Fa-f0-9]{12})\.cfg" /app/provision/index.php?mac=$1&file=MN_%7b%24mac%7d.cfg last;
rewrite "^.*/provision/MN_Generic.cfg" /app/provision/index.php?mac=08000f000000&file=MN_Generic.cfg last;
#grandstream
rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=$1;
rewrite "^.*/provision/([A-Fa-f0-9]{12})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
rewrite "^.*/provision/(phonebook\.xml)?$" /app/provision/index.php?file=$1 last;
rewrite "^.*/provision/phonebook.xml$" /app/provision/?mac=$1&file=phonebook.xml;
#aastra
rewrite "^.*/provision/aastra.cfg$" /app/provision/?mac=$1&file=aastra.cfg;
#rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=$1 last;
#yealink
rewrite "^.*/provision/(y[0-9]{12})(\.cfg|\.boot)?$" /app/provision/index.php?file=$1$2;
rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.boot)$" /app/provision/index.php?mac=$1&file=%7b%24mac%7d.boot;
rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=$1 last;
#polycom
rewrite "^.*/provision/000000000000.cfg$" "/app/provision/?mac=$1&file={%24mac}.cfg";
#rewrite "^.*/provision/sip_330(\.(ld))$" /includes/firmware/sip_330.$2;
rewrite "^.*/provision/features.cfg$" /app/provision/?mac=$1&file=features.cfg;
rewrite "^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$" /app/provision/?mac=$1&file=sip.cfg;
rewrite "^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$" /app/provision/?mac=$1;
rewrite "^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$" "/app/provision/?mac=$1&file={%24mac}-registration.cfg";
rewrite "^.*/provision/([A-Fa-f0-9]{12})-directory.xml$" "/app/provision/?mac=$1&file={%24mac}-directory.xml";
#cisco
rewrite "^.*/provision/file/(.*\.(xml|cfg))" /app/provision/?file=$1 last;
rewrite "^.*/provision/directory\.xml$" /app/provision/?file=directory.xml;
#Escene
rewrite "^.*/provision/([0-9]{1,11})_Extern.xml$" "/app/provision/?ext=$1&file={%24mac}_extern.xml" last;
rewrite "^.*/provision/([0-9]{1,11})_Phonebook.xml$" "/app/provision/?ext=$1&file={%24mac}_phonebook.xml" last;
#Vtech
rewrite "^.*/provision/VCS754_([A-Fa-f0-9]{12})\.cfg$" /app/provision/?mac=$1;
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
#Digium
rewrite "^.*/provision/([A-Fa-f0-9]{12})-contacts\.cfg$" "/app/provision/?mac=$1&file={%24mac}-contacts.cfg";
rewrite "^.*/provision/([A-Fa-f0-9]{12})-smartblf\.cfg$" "/app/provision/?mac=$1&file={%24mac}-smartblf.cfg";
#Snom
rewrite "^.*/provision/.*-([A-Fa-f0-9]{12})\.?(cfg|htm)?$" /app/provision/index.php?mac=$1;
rewrite "^.*/provision/C520-WiMi_([A-Fa-f0-9]{12})\.cfg$" /app/provision/index.php?mac=$1;
rewrite "^.*/provision/([A-Fa-f0-9]{12})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 80M;
client_body_buffer_size 128k;
location / {
root /var/www/fusionpbx;
index index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 15m;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
}
# Allow the upgrade routines to run longer than normal
location = /core/upgrade/index.php {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 15m;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
}
# Disable viewing .htaccess & .htpassword & .db & .git
location ~ .htaccess {
deny all;
}
location ~ .htpassword {
deny all;
}
location ~^.+.(db)$ {
deny all;
}
location ~ /\.git {
deny all;
}
location ~ /\.lua {
deny all;
}
location ~ /\. {
deny all;
}
}
server {
listen [::]:443 ssl;
listen 443 ssl;
#listen 443 ssl http2;
server_name fusion.orbishosting.com 134.209.72.226;
ssl_certificate /etc/letsencrypt/live/fusion.orbishosting.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/fusion.orbishosting.com/privkey.pem; # managed by Certbot
#ssl_protocols TLSv1.2 TLSv1.3;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA:AES256-SHA;
ssl_session_cache shared:SSL:40m;
ssl_session_timeout 2h;
ssl_session_tickets off;
#redirect websockets to port 8080
location /websockets/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
#redirect letsencrypt to dehydrated
location ^~ /.well-known/acme-challenge {
default_type "text/plain";
auth_basic "off";
alias /var/www/dehydrated;
}
#REST api
if ($uri ~* ^.*/api/.*$) {
rewrite ^(.*)/api/(.*)$ $1/api/index.php?rewrite_uri=$2 last;
break;
}
#message media
rewrite "^/app/messages/media/(.*)/(.*)" /app/messages/message_media.php?id=$1&action=download last;
#algo
rewrite "^.*/provision/algom([A-Fa-f0-9]{12})\.conf" /app/provision/?mac=$1&file=algom%7b%24mac%7d.conf last;
#avaya
rewrite "^.*/provision/J100Supgrade.txt" /resources/templates/provision/avaya/J100Supgrade.txt last;
rewrite "^.*/provision/([A-Fa-f0-9]{12}).txt?$" /app/provision/index.php?mac=$1 last;
#mitel
rewrite "^.*/provision/MN_([A-Fa-f0-9]{12})\.cfg" /app/provision/index.php?mac=$1&file=MN_%7b%24mac%7d.cfg last;
rewrite "^.*/provision/MN_Generic.cfg" /app/provision/index.php?mac=08000f000000&file=MN_Generic.cfg last;
#grandstream
rewrite "^.*/provision/cfg([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/?mac=$1;
rewrite "^.*/provision/([A-Fa-f0-9]{12})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
rewrite "^.*/provision/(phonebook\.xml)?$" /app/provision/index.php?file=$1 last;
rewrite "^.*/provision/phonebook.xml$" /app/provision/?mac=$1&file=phonebook.xml;
#aastra
rewrite "^.*/provision/aastra.cfg$" /app/provision/?mac=$1&file=aastra.cfg;
#rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(cfg))?$" /app/provision/?mac=$1 last;
#yealink
rewrite "^.*/provision/(y[0-9]{12})(\.cfg|\.boot)?$" /app/provision/index.php?file=$1$2;
rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.boot)$" /app/provision/index.php?mac=$1&file=%7b%24mac%7d.boot;
rewrite "^.*/provision/([A-Fa-f0-9]{12})(\.(xml|cfg))?$" /app/provision/index.php?mac=$1 last;
#polycom
rewrite "^.*/provision/000000000000.cfg$" "/app/provision/?mac=$1&file={%24mac}.cfg";
#rewrite "^.*/provision/sip_330(\.(ld))$" /includes/firmware/sip_330.$2;
rewrite "^.*/provision/features.cfg$" /app/provision/?mac=$1&file=features.cfg;
rewrite "^.*/provision/([A-Fa-f0-9]{12})-sip.cfg$" /app/provision/?mac=$1&file=sip.cfg;
rewrite "^.*/provision/([A-Fa-f0-9]{12})-phone.cfg$" /app/provision/?mac=$1;
rewrite "^.*/provision/([A-Fa-f0-9]{12})-registration.cfg$" "/app/provision/?mac=$1&file={%24mac}-registration.cfg";
rewrite "^.*/provision/([A-Fa-f0-9]{12})-directory.xml$" "/app/provision/?mac=$1&file={%24mac}-directory.xml";
#cisco
rewrite "^.*/provision/file/(.*\.(xml|cfg))" /app/provision/?file=$1 last;
rewrite "^.*/provision/directory\.xml$" /app/provision/?file=directory.xml;
#Escene
rewrite "^.*/provision/([0-9]{1,11})_Extern.xml$" "/app/provision/?ext=$1&file={%24mac}_extern.xml" last;
rewrite "^.*/provision/([0-9]{1,11})_Phonebook.xml$" "/app/provision/?ext=$1&file={%24mac}_phonebook.xml" last;
#Vtech
rewrite "^.*/provision/VCS754_([A-Fa-f0-9]{12})\.cfg$" /app/provision/?mac=$1;
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
#Digium
rewrite "^.*/provision/([A-Fa-f0-9]{12})-contacts\.cfg$" "/app/provision/?mac=$1&file={%24mac}-contacts.cfg";
rewrite "^.*/provision/([A-Fa-f0-9]{12})-smartblf\.cfg$" "/app/provision/?mac=$1&file={%24mac}-smartblf.cfg";
#Snom
rewrite "^.*/provision/.*-([A-Fa-f0-9]{12})\.?(cfg|htm)?$" /app/provision/index.php?mac=$1;
rewrite "^.*/provision/C520-WiMi_([A-Fa-f0-9]{12})\.cfg$" /app/provision/index.php?mac=$1;
rewrite "^.*/provision/([A-Fa-f0-9]{12})/directory\.xml$" /app/provision/?mac=$1&file=directory.xml;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 80M;
client_body_buffer_size 128k;
location / {
root /var/www/fusionpbx;
index index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 15m;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
}
# Allow the upgrade routines to run longer than normal
location = /core/upgrade/index.php {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 15m;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/fusionpbx$fastcgi_script_name;
}
# Disable viewing .htaccess & .htpassword & .db & .git
location ~ .htaccess {
deny all;
}
location ~ .htpassword {
deny all;
}
location ~^.+.(db)$ {
deny all;
}
location ~ /\.git {
deny all;
}
location ~ /\.lua {
deny all;
}
location ~ /\. {
deny all;
}
}
+1
View File
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNYf4z78s4+K4HoiUiHoqPbCCEFngCAXKP7mGwhCAc86TTbAosTpAnG1HycPzb2s2B3K3geQPUzQzcLvWdBX8hJM8IamvAZ/WXPtOszWTuVnaYM6BQY7ldIdXi3a+xscWr+M8dM6OexXqdCAy66HXmgl98+Cg2uEbxCFelH81/5d3cuoCXllpvUawyYZe5UjFjPeBpPc/QyhDxG4ovYYpcCeHbzLXc9jIfawjwJTDcYfeXVHFisMdSUp0+eXndRM1TybeSOfT4oQbuijdsy4IQo0md5fRYgZuXxHMIgy7obNB3OPf9szgbWTEWK6jNFhkQHIZXPSRxSM9L1a0RkarQk+xqTf96wTJL/Uz6hSyImYjhtPvcOoBRejaQaK96HuWGe3At96+I6WjvJNEDM/jF9tosp2nbdhcGRitYmxREdv7M8AYM393MKT94BBrulr6tI504+0dDTH7IaojYc8SBAtu1TrUwinLA9zQ35Ney5Ry/Mr7tNOLU1Ni3lkqNRWysEjWxEizM/1sK7u2fbAzx3kE+TRpyzmFv6gSiGHqjs5j/tG6daK7Hv6OvbHSWwV/pW6CKslJWFAsa5tVv+Fw8cXdcMMyb6/CYTUtcFMgcF0hhtsd1g6YfnOWRGLcUxFe9odiayhMlstne/dqeyvQCjStrzOxUT5ta9L9JZifDkQ== root@pve
+17
View File
@@ -0,0 +1,17 @@
[Unit]
Description=Active Calls Websocket Service
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/active_calls/resources/service/active_calls.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
+17
View File
@@ -0,0 +1,17 @@
[Unit]
Description=Active Conferences Websocket Service
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/active_conferences/resources/service/active_conferences.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
+28
View File
@@ -0,0 +1,28 @@
; Author: Mark J Crane <markjcrane@fusionpbx.com>
; cp /var/www/fusionpbx/app/email_queue/resources/service/debian.service /etc/systemd/system/email_queue.service
; systemctl daemon-reload
; systemctl enable email_queue
; systemctl start email_queue
[Unit]
Description=FusionPBX Email Queue
Wants=network-online.target
Requires=network.target local-fs.target
;Requires=network.target local-fs.target postgresql.service
After=network.target network-online.target local-fs.target
;After=network.target network-online.target local-fs.target postgresql.service
StartLimitIntervalSec=0
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/email_queue/resources/service/email_queue.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
TimeoutSec=55s
Restart=always
[Install]
WantedBy=multi-user.target
+29
View File
@@ -0,0 +1,29 @@
; Author: Mark J Crane <markjcrane@fusionpbx.com>
; cp /var/www/fusionpbx/app/event_guard/resources/service/debian.service /etc/systemd/system/event_guard.service
; systemctl daemon-reload
; systemctl enable event_guard
; systemctl start event_guard
[Unit]
Description=FusionPBX Event Guard
Wants=network-online.target
Requires=network.target local-fs.target
;Requires=network.target local-fs.target postgresql.service
After=network.target network-online.target local-fs.target
;After=network.target network-online.target local-fs.target postgresql.service
StartLimitIntervalSec=0
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/event_guard/resources/service/event_guard.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=root
Group=root
TimeoutSec=55s
Restart=always
[Install]
WantedBy=multi-user.target
+28
View File
@@ -0,0 +1,28 @@
; Author: Mark J Crane <markjcrane@fusionpbx.com>
; cp /var/www/fusionpbx/app/fax_queue/resources/service/debian.service /etc/systemd/system/fax_queue.service
; systemctl daemon-reload
; systemctl enable fax_queue
; systemctl start fax_queue
[Unit]
Description=FusionPBX FAX Queue
Wants=network-online.target
Requires=network.target local-fs.target
;Requires=network.target local-fs.target postgresql.service
After=network.target network-online.target local-fs.target
;After=network.target network-online.target local-fs.target postgresql.service
StartLimitIntervalSec=0
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/fax_queue/resources/service/fax_queue.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
TimeoutSec=55s
Restart=always
[Install]
WantedBy=multi-user.target
+27
View File
@@ -0,0 +1,27 @@
; Author: Mark J Crane <markjcrane@fusionpbx.com>
; cp /var/www/fusionpbx/app/system/resources/service/debian.service /etc/systemd/system/system_status.service
; systemctl daemon-reload
; systemctl enable --now system_status
[Unit]
Description=FusionPBX System Dashboard Information Service
Wants=network-online.target
Requires=network.target local-fs.target
;Requires=network.target local-fs.target postgresql.service
After=network.target network-online.target local-fs.target
;After=network.target network-online.target local-fs.target postgresql.service
StartLimitIntervalSec=0
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/system/resources/service/system_status.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
TimeoutSec=55s
Restart=always
[Install]
WantedBy=multi-user.target
+24
View File
@@ -0,0 +1,24 @@
#
# Install with:
#
# cp debian-transcribe_queue.service /etc/systemd/system/transcribe_queue.service
# systemctl daemon-reload
# systemctl enable --now transcribe_queue.service
#
[Unit]
Description=Audio Transcribe Queue Service
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/transcribe/resources/service/transcribe_queue.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
+24
View File
@@ -0,0 +1,24 @@
#
# Install with:
#
# cp debian-websockets.service /etc/systemd/system/websockets.service
# systemctl daemon-reload
# systemctl enable --now websockets.service
#
[Unit]
Description=Websocket Router Service
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/core/websockets/resources/service/websockets.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
Restart=always
RestartSec=5
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
+28
View File
@@ -0,0 +1,28 @@
; Author: Mark J Crane <markjcrane@fusionpbx.com>
; cp /var/www/fusionpbx/app/xml_cdr/resources/service/debian.service /etc/systemd/system/xml_cdr.service
; systemctl daemon-reload
; systemctl enable xml_cdr
; systemctl start xml_cdr
[Unit]
Description=FusionPBX xml_cdr
Wants=network-online.target
Requires=network.target local-fs.target
;Requires=network.target local-fs.target postgresql.service
After=network.target network-online.target local-fs.target
;After=network.target network-online.target local-fs.target postgresql.service
StartLimitIntervalSec=0
[Service]
WorkingDirectory=/var/www/fusionpbx
ExecStart=/usr/bin/php /var/www/fusionpbx/app/xml_cdr/resources/service/xml_cdr.php
RuntimeDirectory=fusionpbx
RuntimeDirectoryMode=0755
RuntimeDirectoryPreserve=yes
User=www-data
Group=www-data
TimeoutSec=55s
Restart=always
[Install]
WantedBy=multi-user.target