summaryrefslogtreecommitdiff
path: root/net/asterisk22/files/asterisk.in
diff options
context:
space:
mode:
Diffstat (limited to 'net/asterisk22/files/asterisk.in')
-rw-r--r--net/asterisk22/files/asterisk.in86
1 files changed, 86 insertions, 0 deletions
diff --git a/net/asterisk22/files/asterisk.in b/net/asterisk22/files/asterisk.in
new file mode 100644
index 000000000000..5fab82c5700e
--- /dev/null
+++ b/net/asterisk22/files/asterisk.in
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+# 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_group (string): Group asterisk runs as
+# Default is %%ASTERISK_GROUP%%
+# 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
+# asterisk_umask (string): File creation mode mask to run asterisk with
+#
+
+. /etc/rc.subr
+
+name=asterisk
+rcvar=asterisk_enable
+desc="Asterisk PBX server"
+
+load_rc_config $name
+
+: ${asterisk_enable:=NO}
+: ${asterisk_user:=%%ASTERISK_USER%%}
+: ${asterisk_group:=%%ASTERISK_GROUP%%}
+: ${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
+
+pidfile="${asterisk_pidfile}"
+
+command="%%PREFIX%%/sbin/asterisk"
+command_args="${asterisk_args} -F -U ${asterisk_user}"
+
+asterisk_precmd()
+{
+ local rundir=${asterisk_pidfile%/*}
+ if [ ! -d $rundir ] ; then
+ install -d -m 0750 -o "${asterisk_user}" -g "${asterisk_group}" "$rundir"
+ fi
+ if [ -n "${asterisk_umask}" ]; then
+ umask ${asterisk_umask}
+ 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 -rx '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 -rx 'reload'
+}
+
+run_rc_command "$1"