summaryrefslogtreecommitdiffstats
path: root/net/asterisk/files/asterisk.init
blob: 256a3cf727125c2fe3745a017c33e4c7e374d4f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/sh /etc/rc.common
# Copyright (C) 2014 OpenWrt.org

START=99

USE_PROCD=1

#PROCD_DEBUG=1

NAME=asterisk
COMMAND=/usr/sbin/$NAME

LOGGER="/usr/bin/logger -p user.err -s -t $NAME --"

start_service() {

  dbdir=/var/lib/asterisk/astdb
  logdir=/var/log/asterisk
  cdrcsvdir=$logdir/cdr-csv
  rundir=/var/run/asterisk
  spooldir=/var/spool/asterisk
  varlibdir=/var/lib/asterisk

  config_load $NAME

  config_get_bool enabled general enabled 0
  if [ $enabled -eq 0 ]; then
    $LOGGER service not enabled in /etc/config/$NAME
    exit 1
  fi

  config_get_bool log_stderr general log_stderr 1
  config_get_bool log_stdout general log_stdout 1

  config_get options general options

  for i in \
    "$logdir" \
    "$cdrcsvdir" \
    "$rundir" \
    "$spooldir" \
    "$varlibdir" \
    "$dbdir"
  do
    if ! [ -e "$i" ]; then
      mkdir -m 0750 -p "$i"
      [ -d "$i" ] && chown $NAME:$NAME "$i"
    fi
  done

  procd_open_instance
  procd_set_param command $COMMAND
  procd_append_param command \
    -G "$NAME" \
    -U "$NAME" \
    $options \
    -f
  # forward stderr to logd
  procd_set_param stderr $log_stderr
  # same for stdout
  procd_set_param stdout $log_stdout
  procd_close_instance

}