|
|
|
@ -179,12 +179,33 @@ start() { |
|
|
|
if [[ $MODULE == 1 ]] |
|
|
|
then |
|
|
|
echo "Loading module for in-kernel packet forwarding" |
|
|
|
rmmod xt_MEDIAPROXY 2> /dev/null |
|
|
|
rmmod xt_RTPENGINE 2> /dev/null |
|
|
|
modprobe xt_RTPENGINE |
|
|
|
iptables -N rtpengine |
|
|
|
iptables -t filter -A INPUT -j rtpengine |
|
|
|
iptables -I rtpengine -p udp -j RTPENGINE --id $TABLE |
|
|
|
ip6tables -I rtpengine -p udp -j RTPENGINE --id $TABLE |
|
|
|
temp=`firewall-cmd --state 2>/dev/null` |
|
|
|
if [[ $? == 0 ]] |
|
|
|
then |
|
|
|
# Using firewalld |
|
|
|
# Need to check if the INPUT_prefilter chain is present (permanently) |
|
|
|
firewall-cmd --permanent --direct --query-chain ipv4 filter INPUT_prefilter > /dev/null |
|
|
|
if [[ $? != 0 ]] |
|
|
|
then |
|
|
|
firewall-cmd --permanent --direct --add-chain ipv4 filter INPUT_prefilter |
|
|
|
firewall-cmd --permanent --direct --passthrough ipv4 -t filter -I INPUT -j INPUT_prefilter |
|
|
|
firewall-cmd --reload |
|
|
|
fi |
|
|
|
|
|
|
|
firewall-cmd --direct --add-chain ipv4 filter rtpengine |
|
|
|
firewall-cmd --direct --add-rule ipv4 filter INPUT_prefilter 0 -j rtpengine |
|
|
|
firewall-cmd --direct --add-rule ipv4 filter rtpengine 0 -p udp -j RTPENGINE --id $TABLE |
|
|
|
firewall-cmd --direct --add-rule ipv6 filter rtpengine 0 -p udp -j RTPENGINE --id $TABLE |
|
|
|
firewall-cmd --reload |
|
|
|
else |
|
|
|
iptables -N rtpengine |
|
|
|
# We insert the rtpengine rule at the top of the input chain |
|
|
|
iptables -t filter -I INPUT_prefilter -j rtpengine |
|
|
|
iptables -I rtpengine -p udp -j RTPENGINE --id $TABLE |
|
|
|
ip6tables -I rtpengine -p udp -j RTPENGINE --id $TABLE |
|
|
|
fi |
|
|
|
|
|
|
|
cat <<EOF > "$cachefile" |
|
|
|
CUR_TABLE=$TABLE |
|
|
|
@ -208,11 +229,21 @@ stop() { |
|
|
|
. "$cachefile" |
|
|
|
echo "Unloading module for in-kernel packet forwarding" |
|
|
|
echo "del $TABLE" > /proc/rtpengine/control |
|
|
|
iptables -D rtpengine -p udp -j RTPENGINE --id $CUR_TABLE |
|
|
|
ip6tables -D rtpengine -p udp -j RTPENGINE --id $CUR_TABLE |
|
|
|
iptables -t filter -D INPUT -j rtpengine |
|
|
|
iptables -X rtpengine |
|
|
|
# rmmod xt_RTPENGINE |
|
|
|
temp=`firewall-cmd --state 2>/dev/null` |
|
|
|
if [[ $? == 0 ]] |
|
|
|
then |
|
|
|
firewall-cmd --direct --remove-rules ipv4 filter rtpengine |
|
|
|
firewall-cmd --direct --remove-rules ipv6 filter rtpengine |
|
|
|
firewall-cmd --direct --remove-rule ipv4 filter INPUT_prefilter 0 -j rtpengine |
|
|
|
firewall-cmd --direct --remove-chain ipv4 filter rtpengine |
|
|
|
firewall-cmd --reload |
|
|
|
else |
|
|
|
iptables -D rtpengine -p udp -j RTPENGINE --id $CUR_TABLE |
|
|
|
ip6tables -D rtpengine -p udp -j RTPENGINE --id $CUR_TABLE |
|
|
|
iptables -t filter -D INPUT -j rtpengine |
|
|
|
iptables -X rtpengine |
|
|
|
fi |
|
|
|
rmmod xt_RTPENGINE |
|
|
|
rm -f $cachefile |
|
|
|
fi |
|
|
|
|
|
|
|
|