2 # Copyright (C) 2014 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
14 PKG_SOURCE_URL
:=http
://www.kamailio.org
/pub
/kamailio
/$(PKG_VERSION
)/src
/
15 PKG_SOURCE
:=kamailio-
$(PKG_VERSION
)$(PKG_VARIANT
)_src.
tar.gz
16 PKG_MD5SUM
:=519d1dfbddf7dbead3a020321582d471
20 PKG_LICENSE_FILES
:=COPYING
21 PKG_MAINTAINER
:=Jiri Slachta
<slachta@cesnet.cz
>
26 include $(INCLUDE_DIR
)/nls.mk
27 include $(INCLUDE_DIR
)/package.mk
29 TARGET_CFLAGS
+= $(FPIC
)
30 PREBUILT_STAMP
=$(STAGING_DIR
)/stamp
/.
$(PKG_NAME
)_prebuilt
31 TAR_CMD
:=$(HOST_TAR
) -C
$(PKG_BUILD_DIR
) --strip-components
1 $(TAR_OPTIONS
)
33 define Package
/kamailio3
/Default
37 URL
:=http
://www.kamailio.org
/
38 DEPENDS
:=$(ICONV_DEPENDS
) +libncurses
+libpthread
+libreadline
41 define Package
/kamailio3
42 $(call Package
/kamailio3
/Default
)
43 TITLE
:=Mature and flexible open source SIP server
, v3.3.x
47 define Package
/kamailio3-example
48 $(call Package
/kamailio3
/Default
)
49 TITLE
:=Kamailio3 example config
52 +kamailio3-mod-maxfwd \
53 +kamailio3-mod-mi-fifo \
55 +kamailio3-mod-registrar \
58 +kamailio3-mod-siputils \
59 +kamailio3-mod-textops \
61 +kamailio3-mod-uri-db \
62 +kamailio3-mod-usrloc \
66 define Package
/kamailio3-example
/conffiles
67 /etc
/kamailio
/kamailio.cfg
70 define Package
/kamailio3-tools
71 $(call Package
/kamailio3
/Default
)
72 TITLE
:=Kamailio3 control tools
76 define Package
/kamailio3-tools
/conffiles
77 /etc
/kamailio
/kamctlrc
80 define Package
/kamailio3
/install
81 $(INSTALL_DIR
) $(1)/usr
/sbin
83 $(PKG_INSTALL_DIR
)/usr
/sbin
/kamailio \
86 $(PKG_INSTALL_DIR
)/usr
/sbin
/sercmd \
88 $(INSTALL_DIR
) $(1)/usr
/lib
/kamailio
/modules
89 $(INSTALL_DIR
) $(1)/usr
/lib
/kamailio
/modules_k
90 $(INSTALL_DIR
) $(1)/usr
/lib
/kamailio
/modules_s
92 $(PKG_INSTALL_DIR
)/usr
/lib
/kamailio
/lib
*.so
* \
93 $(1)/usr
/lib
/kamailio
/
96 define Package
/kamailio3-example
/install
97 $(INSTALL_DIR
) $(1)/etc
/kamailio
99 $(PKG_INSTALL_DIR
)/etc
/kamailio
/kamailio.cfg \
101 $(SED
) 's,$(PKG_INSTALL_DIR),,g' \
102 $(1)/etc
/kamailio
/kamailio.cfg
103 $(SED
) 's,//lib/kamailio,/usr/lib/kamailio,g' \
104 $(1)/etc
/kamailio
/kamailio.cfg
105 $(INSTALL_DIR
) $(1)/etc
/init.d
106 $(INSTALL_BIN
) .
/files
/kamailio.init
$(1)/etc
/init.d
/kamailio
109 define Package
/kamailio3-tools
/install
110 $(INSTALL_DIR
) $(1)/etc
/kamailio
112 $(PKG_BUILD_DIR
)/utils
/kamctl
/kamctlrc \
114 $(INSTALL_DIR
) $(1)/usr
/sbin
116 $(PKG_INSTALL_DIR
)/usr
/sbin
/kam
{ctl
,dbctl
} \
118 $(INSTALL_DIR
) $(1)/usr
/lib
/kamailio
120 $(PKG_INSTALL_DIR
)/usr
/lib
/kamailio
/kamctl \
121 $(1)/usr
/lib
/kamailio
/
125 define Package
/kamailio3-mod-
$(1)
126 $$(call Package
/kamailio3
/Default
)
127 TITLE
:= kamailio3
$(3) module
128 DEPENDS
:=kamailio3
$$(foreach m
,$(4),+kamailio3-mod-
$$m) $(5)
131 define Package
/kamailio3-mod-
$(1)/install
132 [ -z
"$(2)" ] ||
$(INSTALL_DIR
) $$(1)/usr
/lib
/kamailio
/$(6)
133 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/kamailio
/$(6)/$(2).so
$$(1)/usr
/lib
/kamailio
/$(6)/
137 KAM_MODULES
+=kamailio3-mod-
$(1)
140 $(eval
$(call BuildPlugin
,acc
,acc
,Accounting
,tm
,,modules_k
))
141 #$(eval $(call BuildPlugin,acc-radius,acc_radius,Accounting for RADIUS backend,acc,+libradiusclient-ng @BROKEN,modules_k))
142 $(eval
$(call BuildPlugin
,alias-db
,alias_db
,Database-backend aliases
,db-sqlite
,,modules_k
))
143 $(eval
$(call BuildPlugin
,auth
,auth
,Authentication Framework
,,,modules
))
144 $(eval
$(call BuildPlugin
,auth-db
,auth_db
,Database-backend authentication
,auth db-sqlite
,,modules_k
))
145 $(eval
$(call BuildPlugin
,auth-diameter
,auth_diameter
,Diameter-backend authentication
,sl
,,modules_k
))
146 #$(eval $(call BuildPlugin,auth-radius,auth_radius,RADIUS-backend authentication,auth,+libradiusclient-ng @BROKEN,modules_k))
147 $(eval
$(call BuildPlugin
,avpops
,avpops
,AVP operation
,,,modules
))
148 $(eval
$(call BuildPlugin
,benchmark
,benchmark
,Config benchmark
,,,modules_k
))
149 $(eval
$(call BuildPlugin
,cfgutils
,cfgutils
,Config utilities
,,,modules_k
))
150 $(eval
$(call BuildPlugin
,cfg-db
,cfg_db
,Load core and module parameters from database
,db-sqlite
,,modules
))
151 $(eval
$(call BuildPlugin
,cfg-rpc
,cfg_rpc
,Update core and module parameters at runtime via RPC interface
,,,modules
))
152 #$(eval $(call BuildPlugin,cpl-c,cpl-c,Call Processing language interpreter,tm sl usrloc,+libxml2,modules_k))
153 $(eval
$(call BuildPlugin
,ctl
,ctl
,BINRPC transport interface
,,,modules
))
154 #$(eval $(call BuildPlugin,db-berkeley,db_berkeley,Berkeley DB Database-backend,,,modules))
155 $(eval
$(call BuildPlugin
,db-flatstore
,db_flatstore
,Fast writing-only text database-backed
,,,modules
))
156 #$(eval $(call BuildPlugin,db-mysql,db_mysql,MySQL database-backend,,+libmysqlclient @BROKEN,modules))
157 $(eval
$(call BuildPlugin
,db-postgres
,db_postgres
,PostgreSQL Database-backend
,,+libpq
,modules
))
158 $(eval
$(call BuildPlugin
,db-sqlite
,db_sqlite
,Sqlite DB support
,,+libsqlite3
,modules_k
))
159 $(eval
$(call BuildPlugin
,db-text
,db_text
,Text database-backend
,,,modules_k
))
160 $(eval
$(call BuildPlugin
,db-unixodbc
,db_unixodbc
,UnixODBC Database-backend
,,+unixodbc
,modules_k
))
161 $(eval
$(call BuildPlugin
,dialog
,dialog
,Dialog support
,rr tm
,,modules_k
))
162 $(eval
$(call BuildPlugin
,dialplan
,dialplan
,Dialplan management
,,+libpcre
,modules
))
163 $(eval
$(call BuildPlugin
,dispatcher
,dispatcher
,Dispatcher
,,,modules_s
))
164 $(eval
$(call BuildPlugin
,diversion
,diversion
,Diversion header insertion
,,,modules_s
))
165 $(eval
$(call BuildPlugin
,domain
,domain
,Multi-domain support
,,,modules_k
))
166 $(eval
$(call BuildPlugin
,domainpolicy
,domainpolicy
,Domain policy
,,,modules_k
))
167 $(eval
$(call BuildPlugin
,enum
,enum
,ENUM lookup
,,,modules
))
168 $(eval
$(call BuildPlugin
,exec
,exec
,External exec
,,,modules_k
))
169 $(eval
$(call BuildPlugin
,group
,group
,Database-backend user-groups
,,,modules_k
))
170 $(eval
$(call BuildPlugin
,h350
,h350
,H
.350,ldap
,+libopenldap
,modules_k
))
171 $(eval
$(call BuildPlugin
,htable
,htable
,Hash Table
,,,modules_k
))
172 #$(eval $(call BuildPlugin,imc,imc,IM conferencing,db-mysql tm,,modules_k))
173 $(eval
$(call BuildPlugin
,ipops
,ipops
,IP and IPv6 operations module
,,,modules
))
174 $(eval
$(call BuildPlugin
,kex
,kex
,Core extensions
,,,modules_k
))
175 $(eval
$(call BuildPlugin
,lcr
,lcr
,Least Cost Routing
,tm
,+libpcre
,modules
))
176 $(eval
$(call BuildPlugin
,ldap
,ldap
,LDAP connector
,,+libopenldap
,modules_k
))
177 $(eval
$(call BuildPlugin
,maxfwd
,maxfwd
,Max-Forward processor
,,,modules_k
))
178 $(eval
$(call BuildPlugin
,mediaproxy
,mediaproxy
,Automatic NAT traversal
,dialog
,,modules
))
179 $(eval
$(call BuildPlugin
,mi-datagram
,mi_datagram
,Datagram support for Management Interface
,,,modules_k
))
180 $(eval
$(call BuildPlugin
,mi-fifo
,mi_fifo
,FIFO support for Management Interface
,,,modules_k
))
181 #$(eval $(call BuildPlugin,mi-xmlrpc,mi_xmlrpc,XML-RPC support for Management Interface,,+xmlrpc-c,modules_k))
182 $(eval
$(call BuildPlugin
,mi-rpc
,mi_rpc
,RPC support for Management Interface
,,,modules
))
183 #$(eval $(call BuildPlugin,misc_radius,misc_radius,Generic RADIUS,,+libradiusclient-ng @BROKEN,modules_k))
184 $(eval
$(call BuildPlugin
,msilo
,msilo
,SIP message silo
,tm
,,modules_k
))
185 $(eval
$(call BuildPlugin
,nat_traversal
,nat_traversal
,NAT traversal
,dialog sl tm
,,modules_k
))
186 $(eval
$(call BuildPlugin
,nathelper
,nathelper
,NAT traversal helper
,,+rtpproxy
,modules_k
))
187 #$(eval $(call BuildPlugin,osp,osp,OSP peering,auth rr sl tm textops,+libosp,modules_k))
188 $(eval
$(call BuildPlugin
,path
,path
,SIP path insertion
,rr
,,modules_k
))
189 $(eval
$(call BuildPlugin
,pdt
,pdt
,Prefix-to-Domain translator
,,,modules_k
))
190 #$(eval $(call BuildPlugin,peering,peering,Perring,,+libradiusclient-ng @BROKEN,modules))
191 #$(eval $(call BuildPlugin,perl,perl,Perl,sl,+perl,modules_k))
192 #$(eval $(call BuildPlugin,perlvdb,perlvdb,Perl Virtual DB,perl,,modules_k))
193 $(eval
$(call BuildPlugin
,permissions
,permissions
,Permissions control
,,,modules_k
))
194 $(eval
$(call BuildPlugin
,pike
,pike
,Flood detector
,,,modules_k
))
195 $(eval
$(call BuildPlugin
,presence
,presence
,Presence server
,sl tm
,+libxml2
,modules_k
))
196 $(eval
$(call BuildPlugin
,presence-dialoginfo
,presence_dialoginfo
,Dialog Event presence
,presence
,,modules_k
))
197 $(eval
$(call BuildPlugin
,presence-mwi
,presence_mwi
,Message Waiting Indication presence
,presence
,,modules_k
))
198 $(eval
$(call BuildPlugin
,presence-xml
,presence_xml
,XCAP presence
,presence xcap-client
,,modules_k
))
199 $(eval
$(call BuildPlugin
,pua
,pua
,Presence User Agent
,tm
,+libxml2
,modules_k
))
200 $(eval
$(call BuildPlugin
,pua-bla
,pua_bla
,Bridged Line Appearence PUA
,presence pua usrloc
,,modules_k
))
201 $(eval
$(call BuildPlugin
,pua-dialoginfo
,pua_dialoginfo
,Dialog Event PUA
,dialog pua
,,modules_k
))
202 $(eval
$(call BuildPlugin
,pua-mi
,pua_mi
,PUA Management Interface
,pua
,,modules_k
))
203 $(eval
$(call BuildPlugin
,pua-usrloc
,pua_usrloc
,PUA User Location
,pua usrloc
,,modules_k
))
204 $(eval
$(call BuildPlugin
,pua-xmpp
,pua_xmpp
,PUA XMPP
,presence pua xmpp
,,modules_k
))
205 #$(eval $(call BuildPlugin,purple,purple,Multi-protocol IM gateway,presence pua,+libpurple,modules_k))
206 $(eval
$(call BuildPlugin
,pv
,pv
,Pseudo-Variables
,,,modules_k
))
207 $(eval
$(call BuildPlugin
,qos
,qos
,QoS control
,dialog
,,modules_k
))
208 $(eval
$(call BuildPlugin
,ratelimit
,ratelimit
,Traffic shapping
,,,modules
))
209 $(eval
$(call BuildPlugin
,regex
,regex
,Regular Expression
,,+libpcre
,modules_k
))
210 $(eval
$(call BuildPlugin
,registrar
,registrar
,SIP Registrar
,usrloc
,,modules_k
))
211 $(eval
$(call BuildPlugin
,rls
,rls
,Resource List Server
,presence pua tm
,+libxml2
,modules_k
))
212 $(eval
$(call BuildPlugin
,rr
,rr
,Record-Route and Route
,,,modules_k
))
213 $(eval
$(call BuildPlugin
,rtimer
,rtimer
,Routing Timer
,,,modules_k
))
214 $(eval
$(call BuildPlugin
,rtpproxy
,rtpproxy
,RTP proxy
,tm
,,modules
))
215 $(eval
$(call BuildPlugin
,sanity
,sanity
,SIP sanity checks
,sl
,,modules
))
216 #$(eval $(call BuildPlugin,seas,seas,SIP Express Application Server,tm,,modules_k))
217 $(eval
$(call BuildPlugin
,sipcapture
,sipcapture
,SIP capture module
,,,modules
))
218 $(eval
$(call BuildPlugin
,siptrace
,siptrace
,SIP trace
,,,modules_k
))
219 $(eval
$(call BuildPlugin
,siputils
,siputils
,SIP utilities
,sl
,,modules_k
))
220 $(eval
$(call BuildPlugin
,sl
,sl
,Stateless replier
,,,modules
))
221 $(eval
$(call BuildPlugin
,sms
,sms
,SIP-to-SMS IM gateway
,tm
,,modules
))
222 #$(eval $(call BuildPlugin,snmpstats,snmpstats,SNMP,presence usrloc,+libnetsnmp,modules_k))
223 $(eval
$(call BuildPlugin
,speeddial
,speeddial
,Per-user speed-dial controller
,,,modules_k
))
224 $(eval
$(call BuildPlugin
,sqlops
,sqlops
,SQL operations
,,,modules_k
))
225 $(eval
$(call BuildPlugin
,statistics
,statistics
,Script statistics
,,,modules_k
))
226 $(eval
$(call BuildPlugin
,sst
,sst
,SIP Session Timer
,dialog sl
,,modules_k
))
227 $(eval
$(call BuildPlugin
,textops
,textops
,Text operations
,,,modules_k
))
228 $(eval
$(call BuildPlugin
,tls
,tls
,TLS operations
,,+libopenssl
,modules
))
229 $(eval
$(call BuildPlugin
,tm
,tm
,Transaction
,,,modules
))
230 $(eval
$(call BuildPlugin
,tmx
,tmx
,Transaction module extensions
,,,modules_k
))
231 $(eval
$(call BuildPlugin
,uac
,uac
,User Agent Client
,tm
,,modules_k
))
232 $(eval
$(call BuildPlugin
,uac-redirect
,uac_redirect
,User Agent Client redirection
,tm
,,modules_k
))
233 $(eval
$(call BuildPlugin
,uri-db
,uri_db
,Database-backend SIP URI checking
,,,modules_k
))
234 $(eval
$(call BuildPlugin
,userblacklist
,userblacklist
,User blacklists
,,,modules_k
))
235 $(eval
$(call BuildPlugin
,usrloc
,usrloc
,User location
,,,modules_k
))
236 $(eval
$(call BuildPlugin
,utils
,utils
,Misc utilities
,,+libcurl
+libxml2
,modules
))
237 $(eval
$(call BuildPlugin
,xcap-client
,xcap_client
,XCAP Client
,,+libcurl
,modules_k
))
238 $(eval
$(call BuildPlugin
,xlog
,xlog
,Advanced logger
,,,modules_k
))
239 $(eval
$(call BuildPlugin
,xmpp
,xmpp
,SIP-to-XMPP Gateway
,tm
,+libexpat
,modules_k
))
243 cfg_dir
=/etc
/kamailio
/ \
245 data_dir
=/var
/lib
/kamailio
/ \
246 lib_dir
=/usr
/lib
/kamailio
/ \
247 modules_dir
=/usr
/lib
/kamailio
/ \
248 include_modules
="$(INCL_MODULES)" \
249 cfg_target
:=/etc
/kamailio
/ \
251 extra_defs
="-DUSE_PTHREAD_MUTEX " \
252 CFLAGS
="$(TARGET_CFLAGS)" \
253 LOCALBASE
="$(STAGING_DIR)/usr" \
254 SYSBASE
="$(STAGING_DIR)/usr" \
255 PCREDEFS
:="$(TARGET_CPPFLAGS)" \
256 PCRELIBS
:="$(TARGET_LDFLAGS)" \
257 CROSS_COMPILE
=$(TARGET_CROSS
) \
260 DESTDIR
=$(PKG_INSTALL_DIR
) \
264 $(MAKE
) -C
$(PKG_BUILD_DIR
) $(PKG_MAKE_ARGS
) \
265 EXTRA_LIBS
=-L
$(STAGING_DIR
)/usr
/lib
/ \
267 $(MAKE
) -C
$(PKG_BUILD_DIR
) $(PKG_MAKE_ARGS
) \
271 $(eval
$(call BuildPackage
,kamailio3
))
272 $(eval
$(call BuildPackage
,kamailio3-example
))
273 $(eval
$(call BuildPackage
,kamailio3-tools
))
274 $(foreach m
,$(KAM_MODULES
),$(eval
$(call BuildPackage
,$(m
))))