#!/bin/sh /etc/rc.common # Copyright (C) 2014 CESNET, z.s.p.o # Copyright (C) 2018 OpenWrt.org START=90 NAME=rtpproxy COMMAND="/usr/bin/$NAME" USE_PROCD=1 #PROCD_DEBUG=1 LOGGER="/usr/bin/logger -t $NAME" LOG_ERR="$LOGGER -p user.err -s" run_instance() { procd_open_instance procd_set_param command $COMMAND procd_append_param command \ $1 \ -p "/var/run/$NAME-$2.pid" \ -f # forward stderr to logd procd_set_param stderr 1 procd_close_instance $LOGGER instance $2 has started } check_param() { local param="$1" local value="$2" local default_value="$3" if [ "$value" != "" ]; then rtpproxy_options=$rtpproxy_options" $param $value" else if [ "$default_value" != "" ]; then rtpproxy_options=$rtpproxy_options" $param $default_value" fi fi } check_special_param() { local param="$1" if [ "$param" != "" ]; then rtpproxy_options=$rtpproxy_options" $param" fi } handle_instance() { local site="$1" local socket opts ipaddr ip6addr rtpproxy_options log_level config_get socket "$site" socket config_get opts "$site" opts config_get ipaddr "$site" ipaddr config_get ip6addr "$site" ip6addr config_get user "$site" user config_get log_level "$site" log_level check_param "-s" "$socket" check_param "-l" "$ipaddr" check_param "-6" "$ip6addr" check_param "-u" "$user" "nobody" check_param "-d" "$log_level" "DBUG" check_special_param "$opts" run_instance "$rtpproxy_options" "$site" } start_service() { local enabled config_load $NAME config_get_bool enabled global enabled 0 if [ "$enabled" -eq 1 ]; then config_foreach handle_instance instance else $LOG_ERR service not enabled $LOG_ERR edit /etc/config/$NAME fi }