aboutsummaryrefslogtreecommitdiff
path: root/net/asterisk16/files/asterisk.in
diff options
context:
space:
mode:
Diffstat (limited to 'net/asterisk16/files/asterisk.in')
-rw-r--r--net/asterisk16/files/asterisk.in81
1 files changed, 81 insertions, 0 deletions
diff --git a/net/asterisk16/files/asterisk.in b/net/asterisk16/files/asterisk.in
new file mode 100644
index 000000000000..87127d3e9b32
--- /dev/null
+++ b/net/asterisk16/files/asterisk.in
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: asterisk
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable asterisk:
+#
+# asterisk_enable (bool): Set it to "YES" to enable asterisk
+# Default is "NO"
+# asterisk_user (string): User asterisk runs as
+# Default is %%ASTERISK_USER%%
+# asterisk_args (string): Extra argumeents to pass to asterisk at startup
+# Default is "-n"
+# asterisk_pidfile (string): Location of the asterisk pid file
+# Default is /var/run/asterisk/asterisk.pid
+# asterisk_stopsleep (int): Number of seconds to sleep before sending stop command
+# Default is 0, which disables it
+#
+
+. /etc/rc.subr
+
+name=asterisk
+rcvar=asterisk_enable
+desc="Asterisk PBX server"
+
+load_rc_config $name
+
+: ${asterisk_enable:=NO}
+: ${asterisk_user:=%%ASTERISK_USER%%}
+: ${asterisk_args=-n}
+: ${asterisk_pidfile:=/var/run/asterisk/asterisk.pid}
+: ${asterisk_stopsleep:=0}
+
+extra_commands=reload
+
+start_precmd=asterisk_precmd
+stop_cmd=asterisk_stop
+reload_cmd=asterisk_reload
+
+command="%%PREFIX%%/sbin/asterisk"
+command_args="${asterisk_args} -F -U ${asterisk_user}"
+pidfile=${asterisk_pidfile}
+
+asterisk_precmd()
+{
+ local rundir=${asterisk_pidfile%/*}
+ if [ ! -d $rundir ] ; then
+ install -d -m 0755 -o asterisk -g asterisk $rundir
+ fi
+}
+
+asterisk_stop()
+{
+ if [ -z "$rc_pid" ]; then
+ [ -n "$rc_fast" ] && return 0
+ _run_rc_notrunning
+ return 1
+ fi
+ echo 'Stopping asterisk.'
+ if [ ${asterisk_stopsleep} -gt 0 ]; then
+ sleep ${asterisk_stopsleep}
+ fi
+ $command -nqrx 'core stop now'
+ wait_for_pids $rc_pid
+}
+
+asterisk_reload()
+{
+ if [ -z "$rc_pid" ]; then
+ _run_rc_notrunning
+ return 1
+ fi
+ echo 'Reloading asterisk.'
+ $command -nqrx 'reload'
+}
+
+run_rc_command "$1"