kamailio: backport and move to PCRE2
[feed/telephony.git] / net / kamailio / Makefile
1 #
2 # Copyright (C) 2017 OpenWrt.org
3 # Copyright (C) 2017 Jiri Slachta
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=kamailio
12 PKG_VERSION:=5.7.2
13 PKG_RELEASE:=2
14
15 PKG_SOURCE_URL:=https://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src
16 PKG_SOURCE:=kamailio-$(PKG_VERSION)_src.tar.gz
17 PKG_HASH:=72c9a067da8d6fa920d3737d98cd7f66c321f80cbe1076e2d5a392b422503122
18 PKG_BUILD_FLAGS:=no-mips16
19
20 PKG_LICENSE:=GPL-2.0+
21 PKG_LICENSE_FILES:=COPYING
22 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
23
24 PKG_INSTALL:=1
25
26 PKG_BUILD_PARALLEL:=1
27
28 MODULES_AVAILABLE:= \
29 acc \
30 acc_diameter \
31 acc_json \
32 alias_db \
33 app_jsdt \
34 app_lua \
35 app_lua_sr \
36 app_python3 \
37 app_ruby \
38 app_sqlang \
39 async \
40 auth \
41 auth_db \
42 auth_diameter \
43 auth_ephemeral \
44 auth_identity \
45 auth_xkeys \
46 avp \
47 avpops \
48 benchmark \
49 blst \
50 call_control \
51 call_obj \
52 carrierroute \
53 cdp \
54 cdp_avp \
55 cfgutils \
56 cfg_db \
57 cfg_rpc \
58 cfgt \
59 cnxcc \
60 corex \
61 counters \
62 cplc \
63 crypto \
64 ctl \
65 db2_ldap \
66 db2_ops \
67 db_berkeley \
68 db_cluster \
69 db_flatstore \
70 db_mysql \
71 db_postgres \
72 db_redis \
73 db_sqlite \
74 db_text \
75 db_unixodbc \
76 debugger \
77 dialog \
78 dialplan \
79 dispatcher \
80 diversion \
81 dlgs \
82 dmq \
83 dmq_usrloc \
84 domain \
85 domainpolicy \
86 drouting \
87 enum \
88 erlang \
89 evapi \
90 evrexec \
91 exec \
92 group \
93 gzcompress \
94 h350 \
95 htable \
96 http_client \
97 imc \
98 ims_auth \
99 ims_charging \
100 ims_dialog \
101 ims_diameter_server \
102 ims_icscf \
103 ims_ipsec_pcscf \
104 ims_isc \
105 ims_ocs \
106 ims_qos \
107 ims_registrar_pcscf \
108 ims_registrar_scscf \
109 ims_usrloc_pcscf \
110 ims_usrloc_scscf \
111 ipops \
112 jansson \
113 janssonrpcc \
114 json \
115 jsonrpcs \
116 keepalive \
117 kemix \
118 kex \
119 lcr \
120 ldap \
121 log_custom \
122 lost \
123 lrkproxy \
124 mangler \
125 matrix \
126 maxfwd \
127 mediaproxy \
128 misctest \
129 mohqueue \
130 mqueue \
131 msilo \
132 msrp \
133 mtree \
134 nathelper \
135 nat_traversal \
136 ndb_redis \
137 nosip \
138 outbound \
139 p_usrloc \
140 path \
141 pdb \
142 pdt \
143 permissions \
144 pike \
145 pipelimit \
146 posops \
147 prefix_route \
148 presence \
149 presence_conference \
150 presence_dialoginfo \
151 presence_mwi \
152 presence_profile \
153 presence_reginfo \
154 presence_xml \
155 pua \
156 pua_bla \
157 pua_dialoginfo \
158 pua_json \
159 pua_reginfo \
160 pua_rpc \
161 pua_usrloc \
162 pua_xmpp \
163 pv \
164 pv_headers \
165 qos \
166 ratelimit \
167 regex \
168 registrar \
169 rls \
170 rr \
171 rtimer \
172 rtjson \
173 rtpengine \
174 rtpproxy \
175 sanity \
176 sca \
177 sctp \
178 sdpops \
179 seas \
180 secfilter \
181 sipcapture \
182 sipdump \
183 siprepo \
184 sipt \
185 siptrace \
186 siputils \
187 sl \
188 slack \
189 sms \
190 smsops \
191 snmpstats \
192 speeddial \
193 sqlops \
194 ss7ops \
195 statistics \
196 statsc \
197 statsd \
198 stun \
199 sst \
200 tcpops \
201 textops \
202 textopsx \
203 timer \
204 tls \
205 tmrec \
206 topoh \
207 topos \
208 topos_redis \
209 tm \
210 tmx \
211 tsilo \
212 uac \
213 uac_redirect \
214 uid_auth_db \
215 uid_avp_db \
216 uid_domain \
217 uid_gflags \
218 uid_uri_db \
219 uri_db \
220 userblocklist \
221 usrloc \
222 utils \
223 uuid \
224 websocket \
225 xcap_client \
226 xcap_server \
227 xhttp \
228 xhttp_pi \
229 xhttp_prom \
230 xhttp_rpc \
231 xlog \
232 xmlops \
233 xmlrpc \
234 xmpp \
235 xprint
236
237 PKG_CONFIG_DEPENDS:= \
238 $(patsubst %,CONFIG_PACKAGE_kamailio-mod-%,$(subst _,-,$(MODULES_AVAILABLE)))
239
240 include $(INCLUDE_DIR)/nls.mk
241 include $(INCLUDE_DIR)/package.mk
242 include $(INCLUDE_DIR)/kernel.mk
243 include $(TOPDIR)/feeds/packages/lang/python/python3-version.mk
244
245 # Build reproducibly
246 TARGET_CFLAGS += -DVERSION_NODATE=1
247
248 PREBUILT_STAMP=$(STAGING_DIR)/stamp/.kamailio_prebuilt
249 TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
250
251 INCL_MODULES:=
252
253 define Package/kamailio/Default
254 SECTION:=net
255 CATEGORY:=Network
256 SUBMENU:=Telephony
257 URL:=http://www.kamailio.org/
258 DEPENDS:=$(ICONV_DEPENDS) +libncurses +libpthread +libreadline +libxml2
259 endef
260
261 define Package/kamailio
262 $(call Package/kamailio/Default)
263 TITLE:=Mature and flexible open source SIP server, v$(PKG_VERSION)
264 USERID:=kamailio=380:kamailio=380
265 MENU:=1
266 endef
267
268 define Package/kamailio/conffiles
269 /etc/config/kamailio
270 /etc/init.d/kamailio
271 /etc/kamailio/kamailio.cfg
272 /etc/kamailio/kamctlrc
273 endef
274
275 define Package/kamailio/install
276 $(foreach c,kamailio.cfg kamctlrc,$(call Package/kamailio/install/conffile,$(1),$(c));)
277 $(INSTALL_DIR) $(1)/usr/sbin
278 $(INSTALL_BIN) \
279 $(PKG_INSTALL_DIR)/usr/sbin/kam{ailio,cmd,ctl,dbctl} \
280 $(1)/usr/sbin/
281 $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
282 $(CP) \
283 $(PKG_INSTALL_DIR)/usr/lib/kamailio/lib{srdb1,srdb2}.so* \
284 $(1)/usr/lib/kamailio/
285 $(INSTALL_DIR) $(1)/etc/config
286 $(INSTALL_CONF) \
287 ./files/kamailio.conf \
288 $(1)/etc/config/kamailio
289 $(INSTALL_DIR) $(1)/etc/init.d
290 $(INSTALL_BIN) \
291 ./files/kamailio.init \
292 $(1)/etc/init.d/kamailio
293 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
294 $(INSTALL_BIN) \
295 ./files/kamailio.hotplug \
296 $(1)/etc/hotplug.d/iface/99-kamailio
297 $(CP) \
298 $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
299 $(1)/usr/lib/kamailio/
300 endef
301
302 define Package/kamailio/postinst
303 #!/bin/sh
304 if [ -z "$${IPKG_INSTROOT}" ]; then
305 echo
306 echo "o-------------------------------------------------------------------o"
307 echo "| Kamailio note |"
308 echo "o-------------------------------------------------------------------o"
309 echo "| Edit /etc/config/kamailio to change basic init configuration. |"
310 echo "o-------------------------------------------------------------=^_^=-o"
311 echo
312 fi
313 exit 0
314 endef
315
316 define Package/kamailio/install/conffile
317 $(INSTALL_DIR) $(1)/etc/kamailio
318 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/kamailio/$(2) $(1)/etc/kamailio
319 endef
320
321 define Package/kamailio/install/dbfiles
322 $(INSTALL_DIR) $(1)/usr/share/kamailio/$(2)
323 $(CP) $(PKG_INSTALL_DIR)/usr/share/kamailio/$(2)/* $(1)/usr/share/kamailio/$(2)/
324 endef
325
326 define Package/kamailio/install/module
327 $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
328 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/kamailio/modules/$(2).so* $(1)/usr/lib/kamailio/modules/
329 endef
330
331 define Package/kamailio-lib-libkamailio-ims
332 $(call Package/kamailio/Default)
333 TITLE:=Kamailio IMS library
334 DEPENDS:=kamailio
335 endef
336
337 define Package/kamailio-lib-libkamailio-ims/install
338 $(INSTALL_DIR) $(1)/usr/lib/kamailio
339 $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/libkamailio_ims.so* \
340 $(1)/usr/lib/kamailio
341 endef
342
343 define Package/kamailio-lib-libtrie
344 $(call Package/kamailio/Default)
345 TITLE:=Kamailio digital tree library
346 DEPENDS:=kamailio
347 endef
348
349 define Package/kamailio-lib-libtrie/install
350 $(INSTALL_DIR) $(1)/usr/lib/kamailio
351 $(CP) $(PKG_INSTALL_DIR)/usr/lib/kamailio/libtrie.so* \
352 $(1)/usr/lib/kamailio
353 endef
354
355 define Package/kamailio-util-kambdb-recover
356 $(call Package/kamailio/Default)
357 TITLE:=Kamailio Berkeley DB recovery utility
358 DEPENDS:=kamailio +PACKAGE_kamailio-util-kambdb-recover:kamailio-mod-db-berkeley
359 endef
360
361 define Package/kamailio-util-kambdb-recover/install
362 $(INSTALL_DIR) $(1)/usr/sbin
363 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kambdb_recover $(1)/usr/sbin
364 endef
365
366 define BuildKamailioModule
367 define Package/kamailio-mod-$(subst _,-,$(1))
368 $$(call Package/kamailio/Default)
369 TITLE:=$(2) for Kamailio
370 DEPENDS:=kamailio $(patsubst +%,+PACKAGE_kamailio-mod-$(subst _,-,$(1)):%,$(4))
371 ifneq ($$(CONFIG_PACKAGE_kamailio-mod-$(subst _,-,$(1))),)
372 INCL_MODULES+=$(1)
373 endif
374 endef
375 define Package/kamailio-mod-$(subst _,-,$(1))/conffiles
376 $(subst $(space),$(newline),$(foreach c,$(6),/etc/kamailio/$(c)))
377 endef
378 define Package/kamailio-mod-$(subst _,-,$(1))/description
379 $(subst \n,$(newline),$(3))
380 endef
381 define Package/kamailio-mod-$(subst _,-,$(1))/install
382 $(call Package/kamailio/install/module,$$(1),$(1))
383 $(foreach c,$(6),$(call Package/kamailio/install/conffile,$$(1),$(c));)
384 $(foreach d,$(5),$(call Package/kamailio/install/dbfiles,$$(1),$(d));)
385 ifeq ($(1),snmpstats)
386 $(INSTALL_DIR) $$(1)/usr/share/snmp/mibs
387 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/* \
388 $$(1)/usr/share/snmp/mibs
389 endif
390 endef
391 $$(eval $$(call BuildPackage,kamailio-mod-$(subst _,-,$(1))))
392 endef
393
394 # Kamailio always builds a baseline of packages. The "standard" group is
395 # the lightest baseline.
396
397 # "uid_gflags" is added to the list of modules to have at least one
398 # module that kicks off the build of the internal libsrdb2. The module
399 # has no other extra dependencies.
400 #
401 # The same is done with:
402 # "ims_diameter_server" -> libkamailio_ims
403 # "carrierroute" -> libtrie
404
405 EXTRA_MODULES:= \
406 $(if $(CONFIG_PACKAGE_kamailio-mod-carrierroute),,carrierroute) \
407 $(if $(CONFIG_PACKAGE_kamailio-mod-ims-diameter-server),,ims_diameter_server) \
408 $(if $(CONFIG_PACKAGE_kamailio-mod-uid-gflags),,uid_gflags)
409
410 # MIPS tweak:
411 #
412 # Kamailio enables use of fast inline assembly locks when ARCH is set to
413 # "mips2". When ARCH is set to "mips" instead, Kamailio assumes it is dealing
414 # with an old 32-bit MIPS CPU without hardware locking support (like R3000).
415 #
416 # When CONFIG_CPU_TYPE matches one of the identifiers in the list below, set
417 # ARCH to "mips2" to get FAST_LOCK support.
418 ifeq ($(call qstrip,$(CONFIG_ARCH)),mips)
419 CPU_MIPS2:=mips32 24kc 34kc 4kec 74kc
420 endif
421
422 MAKE_FLAGS += \
423 OS=linux \
424 OSREL=$(LINUX_UNAME_VERSION) \
425 $(if $(findstring $(call qstrip,$(CONFIG_CPU_TYPE)),$(CPU_MIPS2)),ARCH="mips2",ARCH="$(ARCH)") \
426 CC_EXTRA_OPTS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
427 LD="$(TARGET_CC)" \
428 LD_EXTRA_OPTS="$(TARGET_LDFLAGS)" \
429 LIBDIR=lib \
430 PREFIX=/usr \
431 cfg_prefix="$(PKG_INSTALL_DIR)" \
432 cfg_target=/etc/kamailio \
433 group_include="standard" \
434 include_modules="$$(INCL_MODULES) $(EXTRA_MODULES)" \
435 quiet=verbose \
436 run_prefix=""
437
438 MAKE_VARS += \
439 PYTHON3=python$(PYTHON3_VERSION)
440
441 define Build/Prepare
442 $(call Build/Prepare/Default)
443 # Upstream adds "-funroll-loops" to compiler flags, which increases
444 # binary size significantly. Remove this flag.
445 $(SED) 's/[ ]*-funroll-loops//' $(PKG_BUILD_DIR)/src/Makefile.defs
446 # Also remove -march=arm... flags as they can clash with
447 # CONFIG_TARGET_OPTIMIZATION.
448 $(SED) 's/-march=armv[0-7a-z-]*[ ]*//' $(PKG_BUILD_DIR)/src/Makefile.defs
449 endef
450
451 define Build/Configure
452 endef
453
454 define Build/Compile
455 $(call Build/Compile/Default,cfg)
456 $(call Build/Compile/Default,all)
457 endef
458
459 $(eval $(call BuildPackage,kamailio))
460 $(eval $(call BuildPackage,kamailio-lib-libkamailio-ims))
461 $(eval $(call BuildPackage,kamailio-lib-libtrie))
462 $(eval $(call BuildPackage,kamailio-util-kambdb-recover))
463
464 ################################
465 # Kamailio module parameters
466 # Params:
467 # 1 - Module name
468 # 2 - Module title
469 # 3 - Module description
470 # 4 - Dependencies
471 # 5 - Kamailio DB files
472 # 6 - Configuration files
473 ################################
474
475 $(eval $(call BuildKamailioModule,acc,Accounting,,+kamailio-mod-tm))
476 $(eval $(call BuildKamailioModule,acc_diameter,Accounting for DIAMETER backend,,+kamailio-mod-acc))
477 $(eval $(call BuildKamailioModule,acc_json,Accounting with records exported in JSON format,,+jansson +kamailio-mod-acc))
478 $(eval $(call BuildKamailioModule,alias_db,Database-backend aliases,,))
479 $(eval $(call BuildKamailioModule,app_jsdt,Execute JavaScript scripts,,))
480 $(eval $(call BuildKamailioModule,app_lua,Execute embedded Lua scripts,,+liblua))
481 $(eval $(call BuildKamailioModule,app_lua_sr,Old Lua API,,+kamailio-mod-app-lua,))
482 $(eval $(call BuildKamailioModule,app_python3,Python3 scripting interpreter,,+python3-light))
483 $(eval $(call BuildKamailioModule,app_ruby,Ruby scripting interpreter,,+libruby))
484 $(eval $(call BuildKamailioModule,app_sqlang,Execute Squirrel language scripts,,+libstdcpp))
485 $(eval $(call BuildKamailioModule,async,Asynchronous SIP handling functions,,+kamailio-mod-tm +kamailio-mod-tmx))
486 $(eval $(call BuildKamailioModule,auth,Authentication Framework,,))
487 $(eval $(call BuildKamailioModule,auth_db,Database-backend authentication,,+kamailio-mod-auth))
488 $(eval $(call BuildKamailioModule,auth_diameter,Diameter authentication,,+kamailio-mod-sl))
489 $(eval $(call BuildKamailioModule,auth_ephemeral,Ephemeral credentials,,+libopenssl))
490 $(eval $(call BuildKamailioModule,auth_identity,Identity authentication,,+libopenssl +libcurl))
491 $(eval $(call BuildKamailioModule,auth_xkeys,Shared-key authentication,,+kamailio-mod-auth))
492 $(eval $(call BuildKamailioModule,avp,Functions for handling AVPs,,))
493 $(eval $(call BuildKamailioModule,avpops,AVP operation,,))
494 $(eval $(call BuildKamailioModule,benchmark,Config benchmark,,))
495 $(eval $(call BuildKamailioModule,blst,Blacklisting API for config,,))
496 $(eval $(call BuildKamailioModule,call_control,Call Control,,+kamailio-mod-dialog +kamailio-mod-pv))
497 $(eval $(call BuildKamailioModule,call_obj,Call identification support,,))
498 $(eval $(call BuildKamailioModule,carrierroute,Carrier Route,,+kamailio-lib-libtrie))
499 $(eval $(call BuildKamailioModule,cdp,C Diameter Peer,,))
500 $(eval $(call BuildKamailioModule,cdp_avp,CDP AVP helper module,,+kamailio-mod-cdp))
501 $(eval $(call BuildKamailioModule,cfgutils,Config utilities,,))
502 $(eval $(call BuildKamailioModule,cfg_db,Load parameters from database,,))
503 $(eval $(call BuildKamailioModule,cfg_rpc,Update parameters via RPC,,))
504 $(eval $(call BuildKamailioModule,cfgt,Unit test reporting,,))
505 $(eval $(call BuildKamailioModule,cnxcc,Limit call duration,,+kamailio-mod-dialog +libhiredis +libevent2))
506 $(eval $(call BuildKamailioModule,corex,Legacy functions,,))
507 $(eval $(call BuildKamailioModule,counters,Functions for counter manipulation,,))
508 $(eval $(call BuildKamailioModule,cplc,Call Processing Language interpreter,,+kamailio-mod-sl +kamailio-mod-tm +kamailio-mod-usrloc))
509 $(eval $(call BuildKamailioModule,crypto,Various cryptography tools,,+libopenssl))
510 $(eval $(call BuildKamailioModule,ctl,BINRPC transport interface,,))
511 $(eval $(call BuildKamailioModule,db2_ldap,DBv2 LDAP module,,+libopenldap))
512 $(eval $(call BuildKamailioModule,db2_ops,Run SQL queries from script,,))
513 $(eval $(call BuildKamailioModule,db_berkeley,Berkeley DB backend,,+libdb47))
514 $(eval $(call BuildKamailioModule,db_cluster,Database clustering system,,))
515 $(eval $(call BuildKamailioModule,db_flatstore,fast write-only text DB-backend,,))
516 $(eval $(call BuildKamailioModule,db_mysql,MySQL DB-backend,,+libmysqlclient,mysql))
517 $(eval $(call BuildKamailioModule,db_postgres,PostgreSQL DB-backend,,+libpq,postgres))
518 $(eval $(call BuildKamailioModule,db_redis,Database backend with Redis server,,+libhiredis,db_redis))
519 $(eval $(call BuildKamailioModule,db_sqlite,SQLite DB-backend,,+libsqlite3,db_sqlite))
520 $(eval $(call BuildKamailioModule,db_text,Text DB-backend,,,dbtext/kamailio))
521 $(eval $(call BuildKamailioModule,db_unixodbc,UnixODBC DB-backend,,+unixodbc))
522 $(eval $(call BuildKamailioModule,debugger,Interactive config file debugger,,))
523 $(eval $(call BuildKamailioModule,dialog,Dialog support,,+kamailio-mod-rr +kamailio-mod-tm))
524 $(eval $(call BuildKamailioModule,dialplan,Dialplan management,,+libpcre2))
525 $(eval $(call BuildKamailioModule,dispatcher,Dispatcher,,))
526 $(eval $(call BuildKamailioModule,diversion,Diversion header insertion,,))
527 $(eval $(call BuildKamailioModule,dlgs,Track active calls in stateless mode,,))
528 $(eval $(call BuildKamailioModule,dmq,Distributed Message Queue,,+kamailio-mod-sl +kamailio-mod-tm))
529 $(eval $(call BuildKamailioModule,dmq_usrloc,DMQ USRLOC replication,,+kamailio-mod-dmq +kamailio-mod-usrloc))
530 $(eval $(call BuildKamailioModule,domain,Multi-domain support,,))
531 $(eval $(call BuildKamailioModule,domainpolicy,Domain policy,,))
532 $(eval $(call BuildKamailioModule,drouting,Dynamic routing module,,))
533 $(eval $(call BuildKamailioModule,enum,ENUM lookup,,))
534 $(eval $(call BuildKamailioModule,erlang,Erlang node connector module,,@!USE_MUSL +erlang))
535 $(eval $(call BuildKamailioModule,evapi,push event details via tcp,,+libev))
536 $(eval $(call BuildKamailioModule,evrexec,Execut event routes at startup,,))
537 $(eval $(call BuildKamailioModule,exec,External exec,,))
538 $(eval $(call BuildKamailioModule,group,Database-backend user-groups,,))
539 $(eval $(call BuildKamailioModule,gzcompress,Compress SIP messages,,+zlib))
540 $(eval $(call BuildKamailioModule,h350,H.350,,+kamailio-mod-ldap +libopenldap))
541 $(eval $(call BuildKamailioModule,htable,Hash Table,,))
542 $(eval $(call BuildKamailioModule,http_client,HTTP client using CURL,,+libcurl))
543 $(eval $(call BuildKamailioModule,imc,IM conferencing,,+kamailio-mod-db-mysql +kamailio-mod-tm))
544 $(eval $(call BuildKamailioModule,ims_auth,IMS authentication module,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp +kamailio-mod-tm))
545 $(eval $(call BuildKamailioModule,ims_charging,IMS charging component module,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp +kamailio-mod-tm))
546 $(eval $(call BuildKamailioModule,ims_dialog,IMS dialog tracking module,,+kamailio-mod-rr +kamailio-mod-tm))
547 $(eval $(call BuildKamailioModule,ims_diameter_server,IMS DIAMETER server module,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp))
548 $(eval $(call BuildKamailioModule,ims_icscf,IMS ICSCF component module,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp +kamailio-mod-sl +kamailio-mod-tm))
549 $(eval $(call BuildKamailioModule,ims_ipsec_pcscf,Diameter server implementation,,+kamailio-lib-libkamailio-ims +kamailio-mod-ims-usrloc-pcscf +kamailio-mod-tm +libmnl))
550 $(eval $(call BuildKamailioModule,ims_isc,IMS ISC component module,,+kamailio-lib-libkamailio-ims +kamailio-mod-ims-usrloc-scscf +kamailio-mod-tm))
551 $(eval $(call BuildKamailioModule,ims_ocs,MS OCS component module,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp))
552 $(eval $(call BuildKamailioModule,ims_qos,IMS Diameter Rx interface between PCSCF and PCRF functions,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp +kamailio-mod-ims-dialog +kamailio-mod-ims-usrloc-pcscf +kamailio-mod-tm))
553 $(eval $(call BuildKamailioModule,ims_registrar_pcscf,MS PCSCF registrar module,,+kamailio-lib-libkamailio-ims +kamailio-mod-ims-usrloc-pcscf))
554 $(eval $(call BuildKamailioModule,ims_registrar_scscf,IMS SCSCF registrar module,,+kamailio-lib-libkamailio-ims +kamailio-mod-cdp +kamailio-mod-cdp-avp +kamailio-mod-ims-usrloc-scscf +kamailio-mod-tm))
555 $(eval $(call BuildKamailioModule,ims_usrloc_pcscf,IMS PCSCF usrloc module,,))
556 $(eval $(call BuildKamailioModule,ims_usrloc_scscf,IMS SCSCF usrloc module,,))
557 $(eval $(call BuildKamailioModule,ipops,IP and IPv6 operations,,))
558 $(eval $(call BuildKamailioModule,jansson,Access to JSON attributes,,+jansson))
559 $(eval $(call BuildKamailioModule,janssonrpcc,Alternative JSONRPC server,,+kamailio-mod-jansson +libevent2))
560 $(eval $(call BuildKamailioModule,json,Access to JSON document attributes,,+libjson-c))
561 $(eval $(call BuildKamailioModule,jsonrpcs,JSONRPC server over HTTP,,+libevent2))
562 $(eval $(call BuildKamailioModule,keepalive,SIP keepalive monitoring,,+kamailio-mod-tm,,))
563 $(eval $(call BuildKamailioModule,kemix,KEMI extensions,,,))
564 $(eval $(call BuildKamailioModule,kex,Core extensions,,))
565 $(eval $(call BuildKamailioModule,lcr,Least Cost Routing,,+kamailio-mod-tm +libpcre2))
566 $(eval $(call BuildKamailioModule,ldap,LDAP connector,,+libopenldap))
567 $(eval $(call BuildKamailioModule,log_custom,Logging to custom backends,,))
568 $(eval $(call BuildKamailioModule,lost,HELD and LOST routing,,+kamailio-mod-http-client,))
569 $(eval $(call BuildKamailioModule,lrkproxy,pylrkproxy media stream relay,,,))
570 $(eval $(call BuildKamailioModule,mangler,SDP mangling,,))
571 $(eval $(call BuildKamailioModule,matrix,Matrix operations,,))
572 $(eval $(call BuildKamailioModule,maxfwd,Max-Forward processor,,))
573 $(eval $(call BuildKamailioModule,mediaproxy,Automatic NAT traversal,,+kamailio-mod-dialog))
574 $(eval $(call BuildKamailioModule,misctest,Debugging/testing,This is a debugging/test module. It implements functions (both script\nand rpcs) that can be used to stress the memory allocator or force\nmemory leaks.\n\nWarning: This module should never be used in a production environment.,,,))
575 $(eval $(call BuildKamailioModule,mohqueue,Music on hold queuing system,,+kamailio-mod-rtpproxy +kamailio-mod-sl +kamailio-mod-tm))
576 $(eval $(call BuildKamailioModule,mqueue,Generic message queue system,,))
577 $(eval $(call BuildKamailioModule,msilo,SIP message silo,,+kamailio-mod-tm))
578 $(eval $(call BuildKamailioModule,msrp,MSRP routing engine,,+kamailio-mod-tls))
579 $(eval $(call BuildKamailioModule,mtree,Memory caching system,,))
580 $(eval $(call BuildKamailioModule,nathelper,NAT helper,,+kamailio-mod-usrloc))
581 $(eval $(call BuildKamailioModule,nat_traversal,NAT traversal,,+kamailio-mod-dialog +kamailio-mod-sl +kamailio-mod-tm))
582 $(eval $(call BuildKamailioModule,ndb_redis,Connect to REDIS NoSQL,,+libhiredis))
583 $(eval $(call BuildKamailioModule,nosip,non-sip package handling,,+kamailio-mod-rr))
584 $(eval $(call BuildKamailioModule,outbound,SIP Outbound implementation,,+kamailio-mod-stun +libopenssl))
585 $(eval $(call BuildKamailioModule,p_usrloc,Partitioned USRLOC services,,))
586 $(eval $(call BuildKamailioModule,path,SIP path insertion,,+kamailio-mod-rr))
587 $(eval $(call BuildKamailioModule,pdb,Number portability module,,))
588 $(eval $(call BuildKamailioModule,pdt,Prefix-to-Domain translator,,))
589 $(eval $(call BuildKamailioModule,permissions,Permissions control,,))
590 $(eval $(call BuildKamailioModule,pike,Flood detector,,))
591 $(eval $(call BuildKamailioModule,pipelimit,Traffic shaping policies,,+kamailio-mod-sl))
592 $(eval $(call BuildKamailioModule,posops,Position SIP message buffer ops,The module exports utility functions to work with the position inside the SIP\nmessage buffer. Among them are function to add or remove content at\na specific position.,,,))
593 $(eval $(call BuildKamailioModule,prefix_route,Execute based on prefix,,))
594 $(eval $(call BuildKamailioModule,presence,Presence server,,+kamailio-mod-sl +kamailio-mod-tm,))
595 $(eval $(call BuildKamailioModule,presence_conference,Conference events,,+kamailio-mod-presence))
596 $(eval $(call BuildKamailioModule,presence_dialoginfo,Dialog Event presence,,+kamailio-mod-presence))
597 $(eval $(call BuildKamailioModule,presence_mwi,MWI presence,,+kamailio-mod-presence))
598 $(eval $(call BuildKamailioModule,presence_profile,User profile extensions,,+kamailio-mod-presence))
599 $(eval $(call BuildKamailioModule,presence_reginfo,Registration info,,+kamailio-mod-presence))
600 $(eval $(call BuildKamailioModule,presence_xml,XCAP presence,,+kamailio-mod-presence +kamailio-mod-xcap-client))
601 $(eval $(call BuildKamailioModule,pua,Presence User Agent,,+kamailio-mod-tm,))
602 $(eval $(call BuildKamailioModule,pua_bla,Bridged Line Appearence PUA,,+kamailio-mod-presence +kamailio-mod-pua +kamailio-mod-usrloc))
603 $(eval $(call BuildKamailioModule,pua_dialoginfo,Dialog Event PUA,,+kamailio-mod-dialog +kamailio-mod-pua))
604 $(eval $(call BuildKamailioModule,pua_json,Presence user agent implementation with JSON messages,,+libjson-c))
605 $(eval $(call BuildKamailioModule,pua_reginfo,PUA registration info,,+kamailio-mod-pua +kamailio-mod-usrloc))
606 $(eval $(call BuildKamailioModule,pua_rpc,RPC extensions for PUA,,+kamailio-mod-pua))
607 $(eval $(call BuildKamailioModule,pua_usrloc,PUA User Location,,+kamailio-mod-pua +kamailio-mod-usrloc))
608 $(eval $(call BuildKamailioModule,pua_xmpp,PUA XMPP,,+kamailio-mod-presence +kamailio-mod-pua +kamailio-mod-xmpp))
609 $(eval $(call BuildKamailioModule,pv,Pseudo-Variables,,))
610 $(eval $(call BuildKamailioModule,pv_headers,Flexible SIP header management,,))
611 $(eval $(call BuildKamailioModule,qos,QoS control,,+kamailio-mod-dialog))
612 $(eval $(call BuildKamailioModule,ratelimit,Traffic shapping,,))
613 $(eval $(call BuildKamailioModule,regex,Regular Expression,,+libpcre2))
614 $(eval $(call BuildKamailioModule,registrar,SIP Registrar,,+kamailio-mod-usrloc))
615 $(eval $(call BuildKamailioModule,rls,Resource List Server,,+kamailio-mod-presence +kamailio-mod-pua +kamailio-mod-tm,))
616 $(eval $(call BuildKamailioModule,rr,Record-Route and Route,,))
617 $(eval $(call BuildKamailioModule,rtimer,Routing Timer,,))
618 $(eval $(call BuildKamailioModule,rtjson,SIP routing based on JSON API,,))
619 $(eval $(call BuildKamailioModule,rtpengine,RTP engine,,+kamailio-mod-tm))
620 $(eval $(call BuildKamailioModule,rtpproxy,RTP proxy,,+kamailio-mod-tm))
621 $(eval $(call BuildKamailioModule,sanity,SIP sanity checks,,+kamailio-mod-sl))
622 $(eval $(call BuildKamailioModule,sca,Shared Call Appearances,,+kamailio-mod-sl +kamailio-mod-tm))
623 $(eval $(call BuildKamailioModule,sctp,SCTP support,,+libsctp))
624 $(eval $(call BuildKamailioModule,sdpops,Managing SDP payloads,,))
625 $(eval $(call BuildKamailioModule,seas,Sip Express Application Server,,+kamailio-mod-tm))
626 $(eval $(call BuildKamailioModule,secfilter,Allow/block filters,,,))
627 $(eval $(call BuildKamailioModule,sipcapture,SIP capture,,))
628 $(eval $(call BuildKamailioModule,sipdump,Save SIP traffic,,))
629 $(eval $(call BuildKamailioModule,siprepo,SIP Repo,This module can store and fetch SIP message content in an in-memory hash\ntable.,,,))
630 $(eval $(call BuildKamailioModule,sipt,SIP-T and SIP-I operations,,))
631 $(eval $(call BuildKamailioModule,siptrace,SIP trace,,))
632 $(eval $(call BuildKamailioModule,siputils,SIP utilities,,+kamailio-mod-sl))
633 $(eval $(call BuildKamailioModule,sl,Stateless replier,,))
634 $(eval $(call BuildKamailioModule,slack,Slack integration,This module provides integration with Slack over webhooks.,+libcurl,,))
635 $(eval $(call BuildKamailioModule,sms,SIP-to-SMS IM gateway,,+kamailio-mod-tm))
636 $(eval $(call BuildKamailioModule,smsops,Handle SMS packets in SIP,,))
637 $(eval $(call BuildKamailioModule,snmpstats,SNMP interface for statistics,,+libnetsnmp))
638 $(eval $(call BuildKamailioModule,speeddial,Per-user speed-dial controller,,))
639 $(eval $(call BuildKamailioModule,sqlops,SQL operations,,))
640 $(eval $(call BuildKamailioModule,ss7ops,JSON Operations for SS7 over HEP,,))
641 $(eval $(call BuildKamailioModule,statistics,Script statistics,,))
642 $(eval $(call BuildKamailioModule,statsc,Statistics collector,,))
643 $(eval $(call BuildKamailioModule,statsd,Connector for statsd application,,))
644 $(eval $(call BuildKamailioModule,stun,STUN server support,,))
645 $(eval $(call BuildKamailioModule,sst,SIP Session Timer,,+kamailio-mod-dialog +kamailio-mod-sl))
646 $(eval $(call BuildKamailioModule,tcpops,TCP options tweaking operations,,))
647 $(eval $(call BuildKamailioModule,textops,Text operations,,))
648 $(eval $(call BuildKamailioModule,textopsx,Extra text operations,,))
649 $(eval $(call BuildKamailioModule,timer,Execute routing blocks on core timers,,))
650 $(eval $(call BuildKamailioModule,tls,TLS operations,,+libopenssl,,tls.cfg))
651 $(eval $(call BuildKamailioModule,tmrec,Match time recurrences,,))
652 $(eval $(call BuildKamailioModule,topoh,Topology hiding,,+kamailio-mod-rr))
653 $(eval $(call BuildKamailioModule,topos,Topology stripping module,,+kamailio-mod-rr))
654 $(eval $(call BuildKamailioModule,topos_redis,Redis backend for topos module,,+kamailio-mod-ndb-redis +kamailio-mod-topos))
655 $(eval $(call BuildKamailioModule,tm,Transaction,,))
656 $(eval $(call BuildKamailioModule,tmx,Transaction module extensions,,))
657 $(eval $(call BuildKamailioModule,tsilo,Transaction storage,,+kamailio-mod-registrar +kamailio-mod-sl +kamailio-mod-tm))
658 $(eval $(call BuildKamailioModule,uac,User Agent Client,,+kamailio-mod-tm))
659 $(eval $(call BuildKamailioModule,uac_redirect,User Agent Client redirection,,+kamailio-mod-tm))
660 $(eval $(call BuildKamailioModule,uid_auth_db,Authentication module,,+kamailio-mod-auth))
661 $(eval $(call BuildKamailioModule,uid_avp_db,AVP database operations,,))
662 $(eval $(call BuildKamailioModule,uid_domain,Domains management,,))
663 $(eval $(call BuildKamailioModule,uid_gflags,Global attributes and flags,,))
664 $(eval $(call BuildKamailioModule,uid_uri_db,Database URI operations,,))
665 $(eval $(call BuildKamailioModule,uri_db,Database-backend SIP URI checking,,))
666 $(eval $(call BuildKamailioModule,userblocklist,User blocklists,,+kamailio-lib-libtrie))
667 $(eval $(call BuildKamailioModule,usrloc,User location,,))
668 $(eval $(call BuildKamailioModule,utils,Misc utilities,,+libcurl,))
669 $(eval $(call BuildKamailioModule,uuid,UUID utilities,,+libuuid))
670 $(eval $(call BuildKamailioModule,websocket,WebSocket transport layer,,+kamailio-mod-sl +kamailio-mod-tm +libopenssl +libunistring))
671 $(eval $(call BuildKamailioModule,xcap_client,XCAP Client,,+libcurl))
672 $(eval $(call BuildKamailioModule,xcap_server,XCAP server implementation,,+kamailio-mod-xhttp +kamailio-mod-sl))
673 $(eval $(call BuildKamailioModule,xhttp,Basic HTTP request handling server,,+kamailio-mod-sl))
674 $(eval $(call BuildKamailioModule,xhttp_pi,HTTP provisioning interface,,+kamailio-mod-xhttp,xhttp_pi,pi_framework.xml))
675 $(eval $(call BuildKamailioModule,xhttp_prom,Prometheus metrics,,+kamailio-mod-xhttp,))
676 $(eval $(call BuildKamailioModule,xhttp_rpc,RPC commands handling over HTTP,,+kamailio-mod-xhttp))
677 $(eval $(call BuildKamailioModule,xlog,Advanced logger,,))
678 $(eval $(call BuildKamailioModule,xmlops,XML operations,,))
679 $(eval $(call BuildKamailioModule,xmlrpc,XML RPC module,,,))
680 $(eval $(call BuildKamailioModule,xmpp,SIP-to-XMPP Gateway,,+kamailio-mod-tm +libexpat))
681 $(eval $(call BuildKamailioModule,xprint,Print messages with specifiers,,))