config rtpproxy global
option enabled 0 # 0 - disabled, 1 - enabled
-config instance 'site1'
- option socket 'udp:127.0.0.1:7723' # socket
+config instance 'site1'
+ option socket 'udp:127.0.0.1:7723' # socket
option ipaddr '127.0.0.1' # IPv4 address
option ip6addr '2001:0db8:0000:0000:0000:0000:1428:57ab' # IPv6 address
option user 'nobody' # userid to run rtpproxy instance from
option log_level 'INFO' # DBUG, INFO, WARN, ERR or CRIT
option opts '' # additional options for rtpproxy instance
-
-config instance 'site2'
- option socket 'udp:127.0.0.1:7724'
- option ipaddr '192.168.1.1'
- option log_level 'DBUG'
+
+config instance 'site2'
+ option socket 'udp:127.0.0.1:7724'
+ option ipaddr 'lan/wan' # Bridge mode. 'lan' and 'wan' will be
+ option user 'nobody' # translated to IPv4 addresses by init
+ option log_level 'DBUG' # script. Handy if using dynamic IPs. Can
+ option opts '' # also be used with single interfaces.
+ # Translation for both 'ipaddr' and
+ # 'ip6addr' supported.
config rtpproxy 'hotplug'
#option interface 'wan' # uncomment to enable hotplug
$LOGGER instance $2 has started
}
+check_ip() {
+ local tmp_addr
+
+ if [ "$1" = "ipaddr" ]; then
+ network_get_ipaddr tmp_addr "$2" || tmp_addr="$2"
+ else
+ network_get_ipaddr6 tmp_addr "$2" || tmp_addr="$2"
+ fi
+
+ echo "$tmp_addr"
+}
+
+check_ipaddr() {
+ local value="$1"
+ local type="$2"
+ local param="$3"
+ local one two
+
+ [ -z "$value" ] && {
+ $LOG_ERR empty $type entry
+ exit 1
+ }
+
+ # Bail if more than 1 slash.
+ [ $(echo "$value" | awk -F "/" '{print NF-1}') -gt 1 ] && {
+ $LOG_ERR init script does not understand $type entry \""$value"\"
+ exit 1
+ }
+
+ IFS="/" read one two << EOF
+$value
+EOF
+
+ one="$(check_ip "$type" "$one")"
+ if [ -n "$two" ]; then
+ two="$(check_ip "$type" "$two")"
+ rtpproxy_options=$rtpproxy_options" $param $one/$two"
+ else
+ rtpproxy_options=$rtpproxy_options" $param $one"
+ fi
+}
+
check_param() {
local param="$1"
local value="$2"
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"
+ [ -n "$ipaddr" ] && check_ipaddr "$ipaddr" ipaddr '-l'
+ [ -n "$ip6addr" ] && check_ipaddr "$ip6addr" ip6addr '-6'
+
run_instance "$rtpproxy_options" "$site"
}
config_get_bool enabled global enabled 0
if [ "$enabled" -eq 1 ]; then
+ . /lib/functions/network.sh
config_foreach handle_instance instance
else
$LOG_ERR service not enabled