diff options
Diffstat (limited to 'net/asterisk22/files/asterisk.in')
-rw-r--r-- | net/asterisk22/files/asterisk.in | 86 |
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" |