Merge pull request #534 from micmac1/fs_rename
[feed/telephony.git] / net / freeswitch / files / freeswitch.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2017 - 2018 OpenWrt.org
3
4 START=90
5
6 USE_PROCD=1
7
8 #PROCD_DEBUG=1
9
10 NAME=freeswitch
11 COMMAND=/usr/bin/$NAME
12
13 LOGGER="/usr/bin/logger -p user.err -s -t $NAME --"
14
15 start_service() {
16 dir_etc=/etc/$NAME
17 dir_localstate=/var/lib/$NAME
18 dir_run=/var/run/$NAME
19
20 config_load $NAME
21
22 config_get_bool enabled general enabled 0
23 if [ $enabled -eq 0 ]; then
24 $LOGGER service not enabled in /etc/config/$NAME
25 exit 1
26 fi
27
28 config_get_bool log_stderr general log_stderr 1
29 config_get_bool log_stdout general log_stdout 1
30
31 config_get dir_cache directories cache /tmp/$NAME/cache
32 config_get dir_db directories db /tmp/$NAME/db
33 config_get dir_log directories log /tmp/$NAME/log
34 config_get dir_recordings directories recordings /tmp/$NAME/recordings
35 config_get dir_storage directories storage /tmp/$NAME/storage
36 config_get dir_temp directories temp /tmp/$NAME/temp
37
38 config_get options general options
39
40 for i in "$dir_localstate" "$dir_run"; do
41 if ! [ -e "$i" ]; then
42 mkdir -m 0750 -p "$i"
43 [ -d "$i" ] && chown $NAME:$NAME "$i"
44 fi
45 done
46
47 command -v su >/dev/null
48 ret=$?
49 if [ 0 != "$ret" ]; then
50 $LOGGER utility \"su\" not available
51 $LOGGER will not attempt to create directories
52 else
53 for i in "$dir_cache" \
54 "$dir_db" \
55 "$dir_log" \
56 "$dir_recordings" \
57 "$dir_storage" \
58 "$dir_temp";
59 do
60 if ! [ -e "$i" ]; then
61 su -s /bin/sh -c "mkdir -m 0750 -p \"$i\"" $NAME
62 fi
63 done
64 fi
65
66 procd_open_instance
67 # starting with full path seems cleaner judging by 'ps' output
68 procd_set_param command $COMMAND
69 # need to specify all or none of -conf, -log, and -db
70 procd_append_param command \
71 -cache "$dir_cache" \
72 -conf "$dir_etc" \
73 -db "$dir_db" \
74 -g "$NAME" \
75 -log "$dir_log" \
76 -recordings "$dir_recordings" \
77 -run "$dir_run" \
78 -storage "$dir_storage" \
79 -temp "$dir_temp" \
80 -u "$NAME" \
81 $options \
82 -c
83 # forward stderr to logd
84 procd_set_param stderr $log_stderr
85 # same for stdout
86 procd_set_param stdout $log_stdout
87 procd_close_instance
88 }