2 # Copyright (C) 2020 Sebastian Kemper <sebastian_ml@gmx.net>
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/kernel.mk
15 PKG_SOURCE
:=$(PKG_NAME
)-mr
$(PKG_VERSION
).
tar.gz
16 PKG_SOURCE_URL
:=https
://codeload.github.com
/sipwise
/rtpengine
/tar.gz
/mr
$(PKG_VERSION
)?
17 PKG_HASH
:=5c2814fb191aca40b60ca666a7614004d4ba224e194509a57aae56967d13ecf7
19 PKG_BUILD_DIR
:=$(KERNEL_BUILD_DIR
)/$(PKG_NAME
)-$(BUILD_VARIANT
)/$(PKG_NAME
)-mr
$(PKG_VERSION
)
22 PKG_LICENSE_FILES
:=LICENSE
24 PKG_MAINTAINER
:=Sebastian Kemper
<sebastian_ml@gmx.net
>
26 # When building in parallel, some files (like streambuf.c or dtmflib.c)
27 # are generated multiple times by the rtpengine build system.
28 # Intermittently they then contain garbage, leading to redefinition
32 PKG_BUILD_DEPENDS
:=gperf
/host
34 include $(INCLUDE_DIR
)/package.mk
35 include $(INCLUDE_DIR
)/nls.mk
50 ENGINE_DEPENDS_TRANSCODING
:= \
57 RECORDING_DEPENDS
:= \
63 RTPENGINE_USERID
:=$(PKG_NAME
)=378:$(PKG_NAME
)=378
65 define Package
/rtpengine
/Default
66 URL
:=https
://github.com
/sipwise
/rtpengine
69 define Package
/rtpengine
/Template
70 $(call Package
/rtpengine
/Default
)
71 TITLE
:=Sipwise RTP Engine
75 USERID
:=$(RTPENGINE_USERID
)
78 define Package
/rtpengine
/description
/Template
79 The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP
80 based media traffic. It
's meant to be used with the Kamailio SIP proxy
81 and forms a drop-in replacement for any of the other available RTP and
85 define Package/rtpengine
86 $(call Package/rtpengine/Template)
89 $(patsubst +%,+PACKAGE_rtpengine:%,$(ENGINE_DEPENDS_TRANSCODING)) \
93 define Package/rtpengine/conffiles
96 /etc/rtpengine/rtpengine.conf
99 define Package/rtpengine/description
100 $(call Package/rtpengine/description/Template)
102 Please consider installing kmod-ipt-rtpengine.
106 define Package/rtpengine/install
107 $(INSTALL_DIR) $(1)/usr/bin
108 $(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/rtpengine $(1)/usr/bin
110 $(INSTALL_DIR) $(1)/etc/init.d
111 $(INSTALL_BIN) ./files/rtpengine.init $(1)/etc/init.d/rtpengine
113 $(INSTALL_DIR) $(1)/etc/config
114 $(INSTALL_CONF) ./files/rtpengine.conf $(1)/etc/config/rtpengine
116 $(INSTALL_DIR) $(1)/etc/rtpengine
117 $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine.sample.conf \
118 $(1)/etc/rtpengine/rtpengine.conf
120 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
121 $(INSTALL_BIN) ./files/rtpengine.hotplug \
122 $(1)/etc/hotplug.d/iface/90-rtpengine
125 define Package/rtpengine-no-transcode
126 $(call Package/rtpengine/Template)
127 TITLE+= (no transcoding)
128 VARIANT:=no-transcode
131 $(patsubst +%,+PACKAGE_rtpengine-no-transcode:%,$(ENGINE_DEPENDS)) \
135 Package/rtpengine-no-transcode/conffiles=$(Package/rtpengine/conffiles)
137 define Package/rtpengine-no-transcode/description
138 $(call Package/rtpengine/description/Template)
140 This package comes without transcoding support.
142 Please consider installing kmod-ipt-rtpengine.
146 Package/rtpengine-no-transcode/install=$(Package/rtpengine/install)
148 define Package/rtpengine-recording
149 $(call Package/rtpengine/Default)
150 TITLE:=Sipwise RTP Recording Daemon
154 USERID:=$(RTPENGINE_USERID)
155 DEPENDS:=$(patsubst +%,+PACKAGE_rtpengine-recording:%,$(RECORDING_DEPENDS))
158 define Package/rtpengine-recording/conffiles
159 /etc/config/rtpengine-recording
160 /etc/rtpengine/rtpengine-recording.conf
163 define Package/rtpengine-recording/install
164 $(INSTALL_DIR) $(1)/usr/bin
166 $(PKG_BUILD_DIR)/recording-daemon/rtpengine-recording \
169 $(INSTALL_DIR) $(1)/etc/init.d
170 $(INSTALL_BIN) ./files/rtpengine-recording.init \
171 $(1)/etc/init.d/rtpengine-recording
173 $(INSTALL_DIR) $(1)/etc/config
174 $(INSTALL_CONF) ./files/rtpengine-recording.conf \
175 $(1)/etc/config/rtpengine-recording
177 $(INSTALL_DIR) $(1)/etc/rtpengine
178 $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine-recording.sample.conf \
179 $(1)/etc/rtpengine/rtpengine-recording.conf
182 define Package/iptables-mod-rtpengine
183 $(call Package/rtpengine/Default)
184 TITLE:=Sipwise rtpengine iptables extension
188 DEPENDS:=+PACKAGE_iptables-mod-rtpengine:libxtables
191 define Package/iptables-mod-rtpengine/install
192 $(INSTALL_DIR) $(1)/usr/lib/iptables
194 $(PKG_BUILD_DIR)/iptables-extension/libxt_RTPENGINE.so \
195 $(1)/usr/lib/iptables
198 define KernelPackage/ipt-rtpengine
199 $(call Package/rtpengine/Default)
200 TITLE:=Sipwise rtpengine netfilter module
201 SUBMENU:=Netfilter Extensions
202 FILES:=$(PKG_BUILD_DIR)/kernel-module/xt_RTPENGINE.$(LINUX_KMOD_SUFFIX)
203 AUTOLOAD:=$(call AutoProbe,xt_RTPENGINE)
205 +PACKAGE_kmod-ipt-rtpengine:kmod-crypto-hash \
206 +PACKAGE_kmod-ipt-rtpengine:kmod-ipt-core
207 MODPARAMS.xt_RTPENGINE := \
208 proc_uid=$(PKG_NAME) \
212 define KernelPackage/ipt-rtpengine/description
213 Netfilter kernel module for rtpengine
217 MAKE_VARS+=RTPENGINE_VERSION=$(PKG_VERSION)
219 ifeq ($(BUILD_VARIANT),no-transcode)
220 MAKE_VARS+=with_transcoding=no
223 # rtpengine uses Debian's dpkg utility programs if it can find them. But
224 # we don't want build host flags to leak into our cross-compile.
226 $(call Build
/Prepare
/Default
)
228 cd
"$(PKG_BUILD_DIR)" && \
229 $(FIND
) .
-maxdepth
2 -name
"*Makefile" | \
231 '/shell which dpkg-/s/dpkg/OpenWrt-has-no-dpkg/' {}
235 define Build
/Configure
240 ifneq ($(CONFIG_PACKAGE_kmod-ipt-rtpengine
),)
241 RTPENGINE_VERSION
=$(PKG_VERSION
) $(MAKE
) \
242 -C
$(PKG_BUILD_DIR
)/kernel-module \
244 ARCH
=$(LINUX_KARCH
) \
245 CROSS_COMPILE
=$(TARGET_CROSS
)
248 ifneq ($(CONFIG_PACKAGE_iptables-mod-rtpengine
),)
249 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/iptables-extension
)
252 ifneq ($(CONFIG_PACKAGE_rtpengine
)$(CONFIG_PACKAGE_rtpengine-no-transcode
),)
253 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/daemon
)
256 ifneq ($(CONFIG_PACKAGE_rtpengine-recording
),)
257 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/recording-daemon
)
262 define Build
/InstallDev
265 $(eval
$(call BuildPackage
,rtpengine-no-transcode
))
266 $(eval
$(call KernelPackage
,ipt-rtpengine
))
267 $(eval
$(call BuildPackage
,iptables-mod-rtpengine
))
268 $(eval
$(call BuildPackage
,rtpengine
))
269 $(eval
$(call BuildPackage
,rtpengine-recording
))