From: Jiri Slachta Date: Mon, 24 Jul 2017 07:48:54 +0000 (+0200) Subject: Merge pull request #164 from guidosarducci/lede-17.01-siproxd-update X-Git-Url: http://git.openwrt.org/?p=feed%2Ftelephony.git;a=commitdiff_plain;h=8dce744b5d6ea90ef0e9431ceb31d0300e1e3a52;hp=3dc2071592264c5c730c7b26e17a2c89143ff2ff Merge pull request #164 from guidosarducci/lede-17.01-siproxd-update siproxd: fixes and version update to 0.8.2 --- diff --git a/net/siproxd/Makefile b/net/siproxd/Makefile index a2d58a8..5b9ad8f 100644 --- a/net/siproxd/Makefile +++ b/net/siproxd/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2014-2015 OpenWrt.org +# Copyright (C) 2014-2017 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=siproxd -PKG_VERSION:=0.8.1 -PKG_RELEASE:=5 +PKG_VERSION:=0.8.2 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/siproxd -PKG_MD5SUM:=1a6f9d13aeb2d650375c9a346ac6cbaf +PKG_HASH:=526ce491b0cc189e2766c62432aff3ebb995e551d7261ea32c02a90c7bf7ccd0 PKG_FIXUP:=autoreconf PKG_INSTALL:=1 @@ -79,11 +79,16 @@ define BuildPlugin endef $(eval $(call BuildPackage,siproxd)) +$(eval $(call BuildPlugin,codecfilter)) $(eval $(call BuildPlugin,defaulttarget)) $(eval $(call BuildPlugin,demo)) $(eval $(call BuildPlugin,fix_bogus_via)) +$(eval $(call BuildPlugin,fix_DTAG)) +$(eval $(call BuildPlugin,fix_fbox_anoncall)) $(eval $(call BuildPlugin,logcall)) $(eval $(call BuildPlugin,prefix)) $(eval $(call BuildPlugin,regex)) $(eval $(call BuildPlugin,shortdial)) +$(eval $(call BuildPlugin,stripheader)) $(eval $(call BuildPlugin,stun)) +$(eval $(call BuildPlugin,siptrunk)) diff --git a/net/siproxd/files/siproxd.config b/net/siproxd/files/siproxd.config index b65148c..be953eb 100644 --- a/net/siproxd/files/siproxd.config +++ b/net/siproxd/files/siproxd.config @@ -1,3 +1,3 @@ config siproxd general - option if_inbound lan - option if_outbound wan + option interface_inbound lan + option interface_outbound wan diff --git a/net/siproxd/files/siproxd.init b/net/siproxd/files/siproxd.init index 1ad6e0f..d122ad1 100644 --- a/net/siproxd/files/siproxd.init +++ b/net/siproxd/files/siproxd.init @@ -7,30 +7,50 @@ START=50 SERVICE_USE_PID=1 siproxd_bin="/usr/sbin/siproxd" -siproxd_conf_dir="/var/etc" +siproxd_conf_dir="/var/etc/siproxd" siproxd_conf_prefix="$siproxd_conf_dir/siproxd-" siproxd_registration_dir="/var/lib/siproxd" +siproxd_registration_prefix="$siproxd_registration_dir/siproxd-" siproxd_pid_dir="/var/run/siproxd" +append_conf_if_set() { + local _val=$(eval "echo \$`echo $1`") + [ -n "$_val" ] && + echo "$1" = "$_val" >> "$siproxd_conf_prefix$cfg.conf" +} + deal_with_lists () { - echo "$2" = "$1" >> "$siproxd_conf_prefix$cfg" + echo "$2" = "$1" >> "$siproxd_conf_prefix$cfg.conf" } start_instance() { local cfg="$1" + local _int_inbound + local _int_outbound + local _dev_inbound + local _dev_outbound + + config_get _int_inbound "$cfg" interface_inbound + config_get _int_outbound "$cfg" interface_outbound + + scan_interfaces + network_get_physdev _dev_inbound $_int_inbound + network_get_physdev _dev_outbound $_int_outbound + + config_load 'siproxd' + config_get if_inbound "$cfg" if_inbound $_dev_inbound + config_get if_outbound "$cfg" if_outbound $_dev_outbound - config_get if_inbound "$cfg" if_inbound - config_get if_outbound "$cfg" if_outbound config_get host_outbound "$cfg" host_outbound config_get hosts_allow_reg "$cfg" hosts_allow_reg config_get hosts_allow_sip "$cfg" hosts_allow_sip config_get hosts_deny_sip "$cfg" hosts_deny_sip config_get sip_listen_port "$cfg" sip_listen_port 5060 config_get_bool daemonize "$cfg" daemonize 1 - config_get silence_log "$cfg" silence_log 4 + config_get silence_log "$cfg" silence_log 1 config_get user "$cfg" user nobody config_get chrootjail "$cfg" chrootjail - config_get registration_file "$cfg" registration_file "$siproxd_registration_dir/siproxd_registrations-$cfg" + config_get registration_file "$cfg" registration_file "$siproxd_registration_prefix$cfg.reg" config_get autosave_registrations "$cfg" autosave_registrations 300 config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid" config_get_bool rtp_proxy_enable "$cfg" rtp_proxy_enable 1 @@ -56,155 +76,123 @@ start_instance() { config_get use_rport "$cfg" use_rport 0 config_get outbound_proxy_host "$cfg" outbound_proxy_host config_get outbound_proxy_port "$cfg" outbound_proxy_port - config_get outbound_domain_name "$cfg" outbound_domain_name - config_get outbound_domain_host "$cfg" outbound_domain_host - config_get outbound_domain_port "$cfg" outbound_domain_port - if [ -f "$siproxd_conf_prefix$cfg" ]; then - rm "$siproxd_conf_prefix$cfg" - fi - if [ -n "$if_inbound" ]; then - echo if_inbound = "$if_inbound" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$if_outbound" ]; then - echo if_outbound = "$if_outbound" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$host_outbound" ]; then - echo host_outbound = "$host_outbound" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$hosts_allow_reg" ]; then - echo hosts_allow_reg = "$hosts_allow_reg" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$hosts_allow_sip" ]; then - echo hosts_allow_sip = "$hosts_allow_sip" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$hosts_deny_sip" ]; then - echo hosts_deny_sip = "$hosts_deny_sip" >> "$siproxd_conf_prefix$cfg" - fi - echo sip_listen_port = "$sip_listen_port" >> "$siproxd_conf_prefix$cfg" - echo daemonize = "$daemonize" >> "$siproxd_conf_prefix$cfg" - echo silence_log = "$silence_log" >> "$siproxd_conf_prefix$cfg" - echo user = "$user" >> "$siproxd_conf_prefix$cfg" + if [ -f "$siproxd_conf_prefix$cfg.conf" ]; then + rm "$siproxd_conf_prefix$cfg.conf" + fi + echo "# auto-generated config file from /etc/config/siproxd" > "$siproxd_conf_prefix$cfg.conf" + + append_conf_if_set if_inbound + append_conf_if_set if_outbound + append_conf_if_set host_outbound + append_conf_if_set hosts_allow_reg + append_conf_if_set hosts_allow_sip + append_conf_if_set hosts_deny_sip + append_conf_if_set sip_listen_port + append_conf_if_set daemonize + append_conf_if_set silence_log + append_conf_if_set user if [ -n "$chrootjail" ]; then if [ ! -d "$chrootjail" ]; then mkdir -p "$chrootjail" chmod 0755 "$chrootjail" fi - echo chrootjail = "$chrootjail" >> "$siproxd_conf_prefix$cfg" - fi - echo registration_file = "$registration_file" >> "$siproxd_conf_prefix$cfg" - echo autosave_registrations = "$autosave_registrations" >> "$siproxd_conf_prefix$cfg" - - echo pid_file = "$pid_file" >> "$siproxd_conf_prefix$cfg" - echo rtp_proxy_enable = "$rtp_proxy_enable" >> "$siproxd_conf_prefix$cfg" - echo rtp_port_low = "$rtp_port_low" >> "$siproxd_conf_prefix$cfg" - echo rtp_port_high = "$rtp_port_high" >> "$siproxd_conf_prefix$cfg" - echo rtp_timeout = "$rtp_timeout" >> "$siproxd_conf_prefix$cfg" - echo rtp_dscp = "$rtp_dscp" >> "$siproxd_conf_prefix$cfg" - echo sip_dscp = "$sip_dscp" >> "$siproxd_conf_prefix$cfg" - echo rtp_input_dejitter = "$rtp_input_dejitter" >> "$siproxd_conf_prefix$cfg" - echo rtp_output_dejitter = "$rtp_output_dejitter" >> "$siproxd_conf_prefix$cfg" - echo tcp_timeout = "$tcp_timeout" >> "$siproxd_conf_prefix$cfg" - echo tcp_connect_timeout = "$tcp_connect_timeout" >> "$siproxd_conf_prefix$cfg" - echo tcp_keepalive = "$tcp_keepalive" >> "$siproxd_conf_prefix$cfg" - echo default_expires = "$default_expires" >> "$siproxd_conf_prefix$cfg" - if [ -n "$proxy_auth_realm" ]; then - echo proxy_auth_realm = "$proxy_auth_realm" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$proxy_auth_passwd" ]; then - echo proxy_auth_passwd = "$proxy_auth_passwd" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$proxy_auth_pwfile" ]; then - echo proxy_auth_pwfile = "$proxy_auth_pwfile" >> "$siproxd_conf_prefix$cfg" - fi - echo debug_level = "$debug_level" >> "$siproxd_conf_prefix$cfg" - echo debug_port = "$debug_port" >> "$siproxd_conf_prefix$cfg" - if [ -n "$mask_host" ]; then - echo mask_host = "$mask_host" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$masked_host" ]; then - echo masked_host = "$masked_host" >> "$siproxd_conf_prefix$cfg" - fi - echo ua_string = "$ua_string" >> "$siproxd_conf_prefix$cfg" - echo use_rport = "$use_rport" >> "$siproxd_conf_prefix$cfg" - if [ -n "$outbound_proxy_host" ]; then - echo outbound_proxy_host = "$outbound_proxy_host" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_proxy_port" ]; then - echo outbound_proxy_port = "$outbound_proxy_port" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_domain_name" ]; then - echo outbound_domain_name = "$outbound_domain_name" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_domain_host" ]; then - echo outbound_domain_host = "$outbound_domain_host" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_domain_port" ]; then - echo outbound_domain_port = "$outbound_domain_port" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set chrootjail + fi + append_conf_if_set registration_file + append_conf_if_set autosave_registrations + + append_conf_if_set pid_file + append_conf_if_set rtp_proxy_enable + append_conf_if_set rtp_port_low + append_conf_if_set rtp_port_high + append_conf_if_set rtp_timeout + append_conf_if_set rtp_dscp + append_conf_if_set sip_dscp + append_conf_if_set rtp_input_dejitter + append_conf_if_set rtp_output_dejitter + append_conf_if_set tcp_timeout + append_conf_if_set tcp_connect_timeout + append_conf_if_set tcp_keepalive + append_conf_if_set default_expires + append_conf_if_set proxy_auth_realm + append_conf_if_set proxy_auth_passwd + append_conf_if_set proxy_auth_pwfile + append_conf_if_set debug_level + append_conf_if_set debug_port + append_conf_if_set mask_host + append_conf_if_set masked_host + append_conf_if_set ua_string + append_conf_if_set use_rport + append_conf_if_set outbound_proxy_host + append_conf_if_set outbound_proxy_port + config_list_foreach "$cfg" 'outbound_domain_name' deal_with_lists "outbound_domain_name" + config_list_foreach "$cfg" 'outbound_domain_host' deal_with_lists "outbound_domain_host" + config_list_foreach "$cfg" 'outbound_domain_port' deal_with_lists "outbound_domain_port" # handle plugins config_get plugindir "$cfg" plugindir "/usr/lib/siproxd/" - echo plugindir = "$plugindir" >> "$siproxd_conf_prefix$cfg" + append_conf_if_set plugindir config_list_foreach "$cfg" 'load_plugin' deal_with_lists "load_plugin" # plugin_demo.so config_get plugin_demo_string "$cfg" plugin_demo_string - if [ -n "$plugin_demo_string" ]; then - echo plugin_demo_string = "$plugin_demo_string" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_demo_string # plugin_shortdial.so config_get plugin_shortdial_akey "$cfg" plugin_shortdial_akey - if [ -n "$plugin_shortdial_akey" ]; then - echo plugin_shortdial_akey = "$plugin_shortdial_akey" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_shortdial_akey config_list_foreach "$cfg" 'plugin_shortdial_entry' deal_with_lists "plugin_shortdial_entry" # plugin_defaulttarget.so config_get_bool plugin_defaulttarget_log "$cfg" plugin_defaulttarget_log - if [ -n "$plugin_defaulttarget_log" ]; then - echo plugin_defaulttarget_log = "$plugin_defaulttarget_log" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_defaulttarget_log config_get plugin_defaulttarget_target "$cfg" plugin_defaulttarget_target - if [ -n "$plugin_defaulttarget_target" ]; then - echo plugin_defaulttarget_target = "$plugin_defaulttarget_target" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_defaulttarget_target # plugin_fix_bogus_via.so config_get plugin_fix_bogus_via_networks "$cfg" plugin_fix_bogus_via_networks - if [ -n "$plugin_fix_bogus_via_networks" ]; then - echo plugin_fix_bogus_via_networks = "$plugin_fix_bogus_via_networks" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_fix_bogus_via_networks # plugin_stun.so config_get plugin_stun_server "$cfg" plugin_stun_server - if [ -n "$plugin_stun_server" ]; then - echo plugin_stun_server = "$plugin_stun_server" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_stun_server config_get plugin_stun_port "$cfg" plugin_stun_port - if [ -n "$plugin_stun_port" ]; then - echo plugin_stun_port = "$plugin_stun_port" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_stun_port config_get plugin_stun_period "$cfg" plugin_stun_period - if [ -n "$plugin_stun_period" ]; then - echo plugin_stun_period = "$plugin_stun_period" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_stun_period # plugin_prefix.so config_get plugin_prefix_akey "$cfg" plugin_prefix_akey - if [ -n "$plugin_prefix_akey" ]; then - echo plugin_prefix_akey = "$plugin_prefix_akey" >> "$siproxd_conf_prefix$cfg" - fi + append_conf_if_set plugin_prefix_akey # plugin_regex.so config_list_foreach "$cfg" 'plugin_regex_desc' deal_with_lists "plugin_regex_desc" config_list_foreach "$cfg" 'plugin_regex_pattern' deal_with_lists "plugin_regex_pattern" config_list_foreach "$cfg" 'plugin_regex_replace' deal_with_lists "plugin_regex_replace" + # plugin_stripheader.so + config_list_foreach "$cfg" 'plugin_stripheader_remove' deal_with_lists "plugin_stripheader_remove" + + # plugin_codecfilter.so + config_list_foreach "$cfg" 'plugin_codecfilter_blacklist' deal_with_lists "plugin_codecfilter_blacklist" + + # plugin_siptrunk.so + config_list_foreach "$cfg" 'plugin_siptrunk_name' deal_with_lists "plugin_siptrunk_name" + config_list_foreach "$cfg" 'plugin_siptrunk_account' deal_with_lists "plugin_siptrunk_account" + config_list_foreach "$cfg" 'plugin_siptrunk_numbers_regex' deal_with_lists "plugin_siptrunk_numbers_regex" + + # plugin_fix_DTAG.so + config_get plugin_fix_DTAG_networks "$cfg" plugin_fix_DTAG_networks + append_conf_if_set plugin_fix_DTAG_networks + + # plugin_fix_fbox_anoncall.so + config_get plugin_fix_fbox_anoncall_networks "$cfg" plugin_fix_fbox_anoncall_networks + append_conf_if_set plugin_fix_fbox_anoncall_networks + SERVICE_PID_FILE="$pid_file" \ - service_start $siproxd_bin --config "$siproxd_conf_prefix$cfg" + service_start $siproxd_bin --config "$siproxd_conf_prefix$cfg.conf" } stop_instance() { @@ -217,14 +205,19 @@ stop_instance() { } start() { - mkdir -m 0755 -p "$siproxd_conf_dir" - mkdir -m 0755 -p "$siproxd_registration_dir" - [ -d "$siproxd_pid_dir" ] || { - mkdir -m 0755 -p "$siproxd_pid_dir" - chmod 0750 "$siproxd_pid_dir" - chown nobody:nogroup "$siproxd_pid_dir" - } + mkdir -p "$siproxd_conf_dir" + chmod 755 "$siproxd_conf_dir" + + mkdir -p "$siproxd_registration_dir" + chmod 700 "$siproxd_registration_dir" + chown nobody:nogroup "$siproxd_registration_dir" + + mkdir -p "$siproxd_pid_dir" + chmod 700 "$siproxd_pid_dir" + chown nobody:nogroup "$siproxd_pid_dir" + include /lib/network + . /lib/functions/network.sh config_load 'siproxd' config_foreach start_instance 'siproxd' } diff --git a/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch b/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch index 20f3b6b..d457eb4 100644 --- a/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch +++ b/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch @@ -1,6 +1,6 @@ --- a/src/Makefile.am +++ b/src/Makefile.am -@@ -77,8 +77,8 @@ plugin_regex_la_LDFLAGS = -module -avoid +@@ -103,8 +103,8 @@ # else Cygwin goes beserk when building...) # sbin_PROGRAMS = siproxd @@ -13,10 +13,10 @@ rtpproxy_relay.c accessctl.c route_processing.c \ --- a/src/Makefile.in +++ b/src/Makefile.in -@@ -326,8 +326,8 @@ plugin_prefix_la_LDFLAGS = -module -avoi +@@ -377,8 +377,8 @@ # - plugin_regex_la_SOURCES = plugin_regex.c - plugin_regex_la_LDFLAGS = -module -avoid-version -shrext '.so' + plugin_fix_fbox_anoncall_la_SOURCES = plugin_fix_fbox_anoncall.c + plugin_fix_fbox_anoncall_la_LDFLAGS = -module -avoid-version -shrext '.so' -siproxd_LDFLAGS = -export-dynamic -siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS) +siproxd_LDFLAGS = -export-dynamic -lltdl diff --git a/net/siproxd/patches/011-include-sys-time.patch b/net/siproxd/patches/011-include-sys-time.patch deleted file mode 100644 index 81fabda..0000000 --- a/net/siproxd/patches/011-include-sys-time.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- siproxd-0.8.1/src/dejitter.c -+++ siproxd-0.8.1/src/dejitter.c -@@ -24,6 +24,7 @@ - - #include - #include -+#include - #include - - #include diff --git a/net/siproxd/patches/100-musl-compat.patch b/net/siproxd/patches/100-musl-compat.patch index 5e0c1da..8d7bf8e 100644 --- a/net/siproxd/patches/100-musl-compat.patch +++ b/net/siproxd/patches/100-musl-compat.patch @@ -1,31 +1,13 @@ --- a/src/resolve.c +++ b/src/resolve.c -@@ -30,6 +30,7 @@ +@@ -28,8 +28,10 @@ + #include + #endif ++#include #include #include +#include #include "log.h" ---- a/src/dejitter.c -+++ b/src/dejitter.c -@@ -21,6 +21,7 @@ - #include "config.h" - - #include -+#include - - #include - #include ---- a/src/plugins.c -+++ b/src/plugins.c -@@ -20,6 +20,8 @@ - - #include "config.h" - -+#include -+ - #include - #include - #include