Merge pull request #260 from micmac1/yate-master
[feed/telephony.git] / net / kamailio-5.x / Makefile
1 #
2 # Copyright (C) 2017 - 2018 OpenWrt.org
3 # Copyright (C) 2017 - 2018 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:=kamailio5
12 PKG_VERSION:=5.0.4
13 PKG_RELEASE:=2
14
15 PKG_SOURCE_URL:=https://www.kamailio.org/pub/kamailio/$(PKG_VERSION)/src
16 PKG_SOURCE:=kamailio-$(PKG_VERSION)$(PKG_VARIANT)_src.tar.gz
17 PKG_HASH:=71f1b560721f9c2bed9f7cbd3b4c08d8defd2daa8fd28ce55d3938781a654a13
18 PKG_USE_MIPS16:=0
19
20 PKG_LICENSE:=GPL-2.0+
21 PKG_LICENSE_FILES:=COPYING
22 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
23
24 include $(INCLUDE_DIR)/nls.mk
25 include $(INCLUDE_DIR)/package.mk
26
27 TARGET_CFLAGS += $(FPIC) -DVERSION_NODATE=1
28 PREBUILT_STAMP=$(STAGING_DIR)/stamp/.$(PKG_NAME)_prebuilt
29 TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components 1 $(TAR_OPTIONS)
30
31 INCL_MODULES:=
32
33 define Package/kamailio5/Default
34 SECTION:=net
35 CATEGORY:=Network
36 SUBMENU:=Telephony
37 URL:=http://www.kamailio.org/
38 DEPENDS:=$(ICONV_DEPENDS) +libncurses +libpthread +libreadline +libxml2
39 endef
40
41 define Package/kamailio5
42 $(call Package/kamailio5/Default)
43 TITLE:=Mature and flexible open source SIP server, v$(PKG_VERSION)
44 MENU:=1
45 endef
46
47 define Package/kamailio5/conffiles
48 /etc/default/kamailio
49 /etc/kamailio/kamailio.cfg
50 /etc/kamailio/dictionary.kamailio
51 /etc/kamailio/kamctlrc
52 endef
53
54 define Package/kamailio5/install
55 $(INSTALL_DIR) $(1)/usr/sbin
56 $(INSTALL_BIN) \
57 $(PKG_INSTALL_DIR)/usr/sbin/kam{ailio,cmd,ctl,dbctl} \
58 $(1)/usr/sbin/
59 $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
60 $(INSTALL_BIN) \
61 $(PKG_INSTALL_DIR)/usr/lib/kamailio/lib*.so* \
62 $(1)/usr/lib/kamailio/
63 $(INSTALL_DIR) $(1)/etc/kamailio
64 $(CP) \
65 $(PKG_BUILD_DIR)/etc/{dictionary.kamailio,kamailio.cfg,kamailio-basic.cfg} \
66 $(1)/etc/kamailio/
67 $(CP) \
68 $(PKG_BUILD_DIR)/utils/kamctl/kamctlrc \
69 $(1)/etc/kamailio/
70 $(INSTALL_DIR) $(1)/etc/default
71 $(CP) \
72 ./files/kamailio.default \
73 $(1)/etc/default/kamailio
74 $(INSTALL_DIR) $(1)/etc/init.d
75 $(INSTALL_BIN) \
76 ./files/kamailio.init \
77 $(1)/etc/init.d/kamailio
78 $(INSTALL_DIR) $(1)/usr/lib/kamailio
79 $(CP) \
80 $(PKG_INSTALL_DIR)/usr/lib/kamailio/kamctl \
81 $(1)/usr/lib/kamailio/
82 endef
83
84 define Package/kamailio5/install/dbfiles
85 $(INSTALL_DIR) $(1)/usr/share/kamailio/$(2)
86 $(CP) $(PKG_INSTALL_DIR)/usr/share/kamailio/$(2)/* $(1)/usr/share/kamailio/$(2)/
87 endef
88
89 define Package/kamailio5/install/module
90 $(INSTALL_DIR) $(1)/usr/lib/kamailio/modules
91 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/kamailio/modules/$(2).so* $(1)/usr/lib/kamailio/modules/
92 endef
93
94 define BuildKamailio5Module
95 define Package/kamailio5-mod-$(subst _,-,$(1))
96 $$(call Package/kamailio5/Default)
97 TITLE:=$(2) for Kamailio5
98 DEPENDS:=kamailio5 $(patsubst +%,+PACKAGE_kamailio5-mod-$(subst _,-,$(1)):%,$(4))
99 ifneq ($$(CONFIG_PACKAGE_kamailio5-mod-$(subst _,-,$(1))),)
100 INCL_MODULES+=$(1)
101 endif
102 endef
103
104 define Package/kamailio5-mod-$(subst _,-,$(1))/install
105 $(call Package/kamailio5/install/module,$$(1),$(1))
106 $(foreach d,$(5),$(call Package/kamailio5/install/dbfiles,$$(1),$(d));)
107 endef
108 $$(eval $$(call BuildPackage,kamailio5-mod-$(subst _,-,$(1))))
109 endef
110
111 PKG_MAKE_ARGS:= \
112 prefix=/ \
113 cfg_dir=/etc/kamailio/ \
114 bin_dir=/usr/sbin/ \
115 data_dir=/usr/share/kamailio/ \
116 lib_dir=/usr/lib/kamailio/ \
117 modules_dir=/usr/lib/kamailio/ \
118 group_include="standard" \
119 include_modules="$$(INCL_MODULES)" \
120 cfg_target:=/etc/kamailio/ \
121 TLS_HOOKS=1 \
122 extra_defs="-DUSE_PTHREAD_MUTEX " \
123 CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
124 LOCALBASE="$(STAGING_DIR)/usr" \
125 SYSBASE="$(STAGING_DIR)/usr" \
126 PCREDEFS:="$(TARGET_CPPFLAGS)" \
127 PCRELIBS:="$(TARGET_LDFLAGS)" \
128 CROSS_COMPILE=$(TARGET_CROSS) \
129 CC="$(TARGET_CC)" \
130 ARCH="$(ARCH)" \
131 DESTDIR=$(PKG_INSTALL_DIR) \
132 EXTRA_LIBS="-L$(STAGING_DIR)/usr/lib/" \
133 quiet=verbose
134
135 define Build/Compile
136 $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) all
137 $(MAKE) -C $(PKG_BUILD_DIR) $(PKG_MAKE_ARGS) install
138 endef
139
140 $(eval $(call BuildPackage,kamailio5))
141
142 ################################
143 # Kamailio module parameters
144 # Params:
145 # 1 - Module name
146 # 2 - Module title
147 # 3 - Module description
148 # 4 - Dependencies
149 # 5 - Kamailio DB files
150 ################################
151
152 $(eval $(call BuildKamailio5Module,acc,Accounting,,+kamailio5-mod-tm))
153 $(eval $(call BuildKamailio5Module,alias_db,Database-backend aliases,,+kamailio5-mod-db-sqlite))
154 $(eval $(call BuildKamailio5Module,app_lua,Execute embedded Lua scripts,,+liblua))
155 $(eval $(call BuildKamailio5Module,async,Asynchronous SIP handling functions,,+kamailio5-mod-tm +kamailio5-mod-tmx))
156 $(eval $(call BuildKamailio5Module,auth,Authentication Framework,,))
157 $(eval $(call BuildKamailio5Module,auth_db,Database-backend authentication,,+kamailio5-mod-auth +kamailio5-mod-db-sqlite))
158 $(eval $(call BuildKamailio5Module,auth_diameter,Diameter authentication,,+kamailio5-mod-sl))
159 $(eval $(call BuildKamailio5Module,auth_identity,Identity authentication,,+libopenssl +libcurl))
160 $(eval $(call BuildKamailio5Module,auth_xkeys,Shared-key authentication,,+kamailio5-mod-auth))
161 $(eval $(call BuildKamailio5Module,avp,Functions for handling AVPs,,))
162 $(eval $(call BuildKamailio5Module,avpops,AVP operation,,))
163 $(eval $(call BuildKamailio5Module,benchmark,Config benchmark,,))
164 $(eval $(call BuildKamailio5Module,blst,Blacklisting API for config,,))
165 $(eval $(call BuildKamailio5Module,cfgutils,Config utilities,,))
166 $(eval $(call BuildKamailio5Module,cfg_db,Load parameters from database,,+kamailio5-mod-db-sqlite))
167 $(eval $(call BuildKamailio5Module,cfg_rpc,Update parameters via RPC,,))
168 $(eval $(call BuildKamailio5Module,cnxcc,Limit call duration,,+kamailio5-mod-dialog +libhiredis +libevent2))
169 $(eval $(call BuildKamailio5Module,corex,Legacy functions,,))
170 $(eval $(call BuildKamailio5Module,ctl,BINRPC transport interface,,))
171 $(eval $(call BuildKamailio5Module,db_flatstore,fast write-only text DB-backend,,))
172 $(eval $(call BuildKamailio5Module,db_mysql,MySQL DB-backend,,+libmysqlclient,mysql))
173 $(eval $(call BuildKamailio5Module,db_postgres,PostgreSQL DB-backend,,@!arc +libpq,postgres))
174 $(eval $(call BuildKamailio5Module,db_sqlite,SQLite DB-backend,,+libsqlite3,db_sqlite))
175 $(eval $(call BuildKamailio5Module,db_text,Text DB-backend,,,dbtext/kamailio))
176 $(eval $(call BuildKamailio5Module,db_unixodbc,UnixODBC DB-backend,,+unixodbc))
177 $(eval $(call BuildKamailio5Module,debugger,Interactive config file debugger,,))
178 $(eval $(call BuildKamailio5Module,dialog,Dialog support,,+kamailio5-mod-rr +kamailio5-mod-tm))
179 $(eval $(call BuildKamailio5Module,dialplan,Dialplan management,,))
180 $(eval $(call BuildKamailio5Module,dispatcher,Dispatcher,,))
181 $(eval $(call BuildKamailio5Module,diversion,Diversion header insertion,,))
182 $(eval $(call BuildKamailio5Module,domain,Multi-domain support,,))
183 $(eval $(call BuildKamailio5Module,domainpolicy,Domain policy,,))
184 $(eval $(call BuildKamailio5Module,drouting,Dynamic routing module,,))
185 $(eval $(call BuildKamailio5Module,enum,ENUM lookup,,))
186 $(eval $(call BuildKamailio5Module,evapi,push event details via tcp,,+libev))
187 $(eval $(call BuildKamailio5Module,exec,External exec,,))
188 $(eval $(call BuildKamailio5Module,group,Database-backend user-groups,,))
189 $(eval $(call BuildKamailio5Module,h350,H.350,,+kamailio5-mod-ldap +libopenldap))
190 $(eval $(call BuildKamailio5Module,htable,Hash Table,,))
191 $(eval $(call BuildKamailio5Module,imc,IM conferencing,,+kamailio5-mod-db-mysql +kamailio5-mod-tm))
192 $(eval $(call BuildKamailio5Module,ipops,IP and IPv6 operations,,))
193 $(eval $(call BuildKamailio5Module,jansson,Access to JSON attributes,,+jansson))
194 $(eval $(call BuildKamailio5Module,janssonrpcc,Alternative JSONRPC server,,+kamailio5-mod-jansson +libevent2))
195 $(eval $(call BuildKamailio5Module,json,Access to JSON document attributes,,+libjson-c))
196 $(eval $(call BuildKamailio5Module,jsonrpcs,JSONRPC server over HTTP,,+kamailio5-mod-json +libevent2))
197 $(eval $(call BuildKamailio5Module,kex,Core extensions,,))
198 $(eval $(call BuildKamailio5Module,lcr,Least Cost Routing,,+kamailio5-mod-tm +libpcre))
199 $(eval $(call BuildKamailio5Module,ldap,LDAP connector,,+libopenldap))
200 $(eval $(call BuildKamailio5Module,maxfwd,Max-Forward processor,,))
201 $(eval $(call BuildKamailio5Module,mediaproxy,Automatic NAT traversal,,+kamailio5-mod-dialog))
202 $(eval $(call BuildKamailio5Module,msilo,SIP message silo,,+kamailio5-mod-tm))
203 $(eval $(call BuildKamailio5Module,msrp,MSRP routing engine,,+kamailio5-mod-tls))
204 $(eval $(call BuildKamailio5Module,nathelper,NAT helper,,+kamailio5-mod-usrloc))
205 $(eval $(call BuildKamailio5Module,nat_traversal,NAT traversal,,+kamailio5-mod-dialog +kamailio5-mod-sl +kamailio5-mod-tm))
206 $(eval $(call BuildKamailio5Module,nosip,non-sip package handling,,+kamailio5-mod-rr))
207 $(eval $(call BuildKamailio5Module,path,SIP path insertion,,+kamailio5-mod-rr))
208 $(eval $(call BuildKamailio5Module,pdt,Prefix-to-Domain translator,,))
209 $(eval $(call BuildKamailio5Module,permissions,Permissions control,,))
210 $(eval $(call BuildKamailio5Module,pike,Flood detector,,))
211 $(eval $(call BuildKamailio5Module,presence,Presence server,,+kamailio5-mod-sl +kamailio5-mod-tm +libxml2))
212 $(eval $(call BuildKamailio5Module,presence_dialoginfo,Dialog Event presence,,+kamailio5-mod-presence))
213 $(eval $(call BuildKamailio5Module,presence_mwi,MWI presence,,+kamailio5-mod-presence))
214 $(eval $(call BuildKamailio5Module,presence_xml,XCAP presence,,+kamailio5-mod-presence +kamailio5-mod-xcap-client))
215 $(eval $(call BuildKamailio5Module,pua,Presence User Agent,,+kamailio5-mod-tm +libxml2))
216 $(eval $(call BuildKamailio5Module,pua_bla,Bridged Line Appearence PUA,,+kamailio5-mod-presence +kamailio5-mod-pua +kamailio5-mod-usrloc))
217 $(eval $(call BuildKamailio5Module,pua_dialoginfo,Dialog Event PUA,,+kamailio5-mod-dialog +kamailio5-mod-pua))
218 $(eval $(call BuildKamailio5Module,pua_usrloc,PUA User Location,,+kamailio5-mod-pua +kamailio5-mod-usrloc))
219 $(eval $(call BuildKamailio5Module,pua_xmpp,PUA XMPP,,+kamailio5-mod-presence +kamailio5-mod-pua +kamailio5-mod-xmpp))
220 $(eval $(call BuildKamailio5Module,pv,Pseudo-Variables,,))
221 $(eval $(call BuildKamailio5Module,qos,QoS control,,+kamailio5-mod-dialog))
222 $(eval $(call BuildKamailio5Module,ratelimit,Traffic shapping,,))
223 $(eval $(call BuildKamailio5Module,regex,Regular Expression,,+libpcre))
224 $(eval $(call BuildKamailio5Module,registrar,SIP Registrar,,+kamailio5-mod-usrloc))
225 $(eval $(call BuildKamailio5Module,rls,Resource List Server,,+kamailio5-mod-presence +kamailio5-mod-pua +kamailio5-mod-tm +libxml2))
226 $(eval $(call BuildKamailio5Module,rr,Record-Route and Route,,))
227 $(eval $(call BuildKamailio5Module,rtimer,Routing Timer,,))
228 $(eval $(call BuildKamailio5Module,rtpengine,RTP engine,,+kamailio5-mod-tm))
229 $(eval $(call BuildKamailio5Module,rtpproxy,RTP proxy,,+kamailio5-mod-tm))
230 $(eval $(call BuildKamailio5Module,sanity,SIP sanity checks,,+kamailio5-mod-sl))
231 $(eval $(call BuildKamailio5Module,sctp,SCTP support,,+libsctp))
232 $(eval $(call BuildKamailio5Module,sipcapture,SIP capture,,))
233 $(eval $(call BuildKamailio5Module,siptrace,SIP trace,,))
234 $(eval $(call BuildKamailio5Module,siputils,SIP utilities,,+kamailio5-mod-sl))
235 $(eval $(call BuildKamailio5Module,sl,Stateless replier,,))
236 $(eval $(call BuildKamailio5Module,sms,SIP-to-SMS IM gateway,,+kamailio5-mod-tm))
237 $(eval $(call BuildKamailio5Module,speeddial,Per-user speed-dial controller,,))
238 $(eval $(call BuildKamailio5Module,sqlops,SQL operations,,))
239 $(eval $(call BuildKamailio5Module,statistics,Script statistics,,))
240 $(eval $(call BuildKamailio5Module,stun,STUN server support,,))
241 $(eval $(call BuildKamailio5Module,sst,SIP Session Timer,,+kamailio5-mod-dialog +kamailio5-mod-sl))
242 $(eval $(call BuildKamailio5Module,tcpops,TCP options tweaking operations,,))
243 $(eval $(call BuildKamailio5Module,textops,Text operations,,))
244 $(eval $(call BuildKamailio5Module,tls,TLS operations,,+libopenssl))
245 $(eval $(call BuildKamailio5Module,topoh,Topology hiding,,+kamailio5-mod-rr))
246 $(eval $(call BuildKamailio5Module,tm,Transaction,,))
247 $(eval $(call BuildKamailio5Module,tmx,Transaction module extensions,,))
248 $(eval $(call BuildKamailio5Module,uac,User Agent Client,,+kamailio5-mod-tm))
249 $(eval $(call BuildKamailio5Module,uac_redirect,User Agent Client redirection,,+kamailio5-mod-tm))
250 $(eval $(call BuildKamailio5Module,uri_db,Database-backend SIP URI checking,,))
251 $(eval $(call BuildKamailio5Module,userblacklist,User blacklists,,))
252 $(eval $(call BuildKamailio5Module,usrloc,User location,,))
253 $(eval $(call BuildKamailio5Module,utils,Misc utilities,,+libcurl +libxml2))
254 $(eval $(call BuildKamailio5Module,uuid,UUID utilities,,+libuuid))
255 $(eval $(call BuildKamailio5Module,xcap_client,XCAP Client,,+libcurl))
256 $(eval $(call BuildKamailio5Module,xlog,Advanced logger,,))
257 $(eval $(call BuildKamailio5Module,xmlrpc,XML RPC module,,+libxml2))
258 $(eval $(call BuildKamailio5Module,xmpp,SIP-to-XMPP Gateway,,+kamailio5-mod-tm +libexpat))