2 # Copyright (C) 2006-2018 OpenWrt.org
3 # Copyright (C) 2006-2011 SMBPhone
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
9 include $(TOPDIR
)/rules.mk
15 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
16 PKG_SOURCE_URL
:=http
://yate.null.ro
/tarballs
/yate6
/
17 PKG_HASH
:=0ab76015651db8076031277b2003c23bd5d9eb940491801f30a6dc3c226c1817
18 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)
21 PKG_LICENSE_FILES
:=COPYING
22 PKG_MAINTAINER
:=Jiri Slachta
<jiri@slachta.eu
>
28 # Yate currently does not compile with FORTIFY_SOURCE enabled
31 PKG_CONFIG_DEPENDS
:= \
32 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zapcard \
33 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-ilbcwebrtc \
34 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-isaccodec \
35 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pgsqldb \
36 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-mysqld \
37 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-faxchan \
38 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-openssl \
39 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zlibcompress \
42 include $(INCLUDE_DIR
)/uclibc
++.mk
43 include $(INCLUDE_DIR
)/package.mk
45 define Package
/$(PKG_NAME
)/Default
49 URL
:=http
://yate.null.ro
/
52 define Package
/$(PKG_NAME
)
53 $(call Package
/yate
/Default
)
54 DEPENDS
:=+libpthread
$(CXX_DEPENDS
)
55 TITLE
:=Yet Another Telephony Engine
59 define Package
/$(PKG_NAME
)/conffiles
64 define Package
/$(PKG_NAME
)/Default
/description
65 Is a next-generation telephony engine focused on the VoIP and PSTN. It does
66 SIP
, H
.323, IAX
, PSTN
, and more.
69 define Package
/$(PKG_NAME
)-scripts-perl
70 $(call Package
/yate
/Default
)
71 DEPENDS
+= $(PKG_NAME
) \
72 +PACKAGE_
$(PKG_NAME
)-scripts-perl
:$(PKG_NAME
)-mod-extmodule \
73 +PACKAGE_
$(PKG_NAME
)-scripts-perl
:perlbase-data \
75 TITLE
:= Perl module for Yate
78 define Package
/$(PKG_NAME
)-sounds
79 $(call Package
/yate
/Default
)
80 DEPENDS
+= $(PKG_NAME
)
81 TITLE
:= Sounds for Yate
84 define Package
/$(PKG_NAME
)-collection-basic
85 $(call Package
/yate
/Default
)
86 DEPENDS
+= $(PKG_NAME
) \
87 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-sounds \
88 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-dumbchan \
89 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-regfile \
90 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-regexroute \
91 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-rmanager \
92 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-tonegen \
93 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-yrtpchan \
94 +PACKAGE_
$(PKG_NAME
)-collection-basic
:$(PKG_NAME
)-mod-ysipchan
95 TITLE
:= Basic Yate Server
98 # Otherwise yate ignores CPPFLAGS
99 TARGET_CFLAGS
+= $(TARGET_CPPFLAGS
)
102 $(if
$(CONFIG_x86_64
),--enable-sse2
) \
104 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zapcard
),,--disable-dahdi
--disable-zaptel
) \
109 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-ilbcwebrtc
),--enable-ilbc-webrtc
,--disable-ilbc-webrtc
) \
110 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pgsqldb
),--with-libpq
="$(STAGING_DIR)/usr",--without-libpq
) \
111 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-mysqldb
),--with-mysql
=yes
,--with-mysql
=no
) \
115 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-faxchan
),--with-spandsp
="$(STAGING_DIR)/usr/include",--without-spandsp
) \
118 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-openssl
),--with-openssl
,--without-openssl
) \
119 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zlibcompress
),--with-zlib
="$(STAGING_DIR)/usr",--without-zlib
) \
122 --without-coredumper \
126 # The regexp implementation of musl 1.1.19 is not fully compatible with yate
128 --enable-internalregex
130 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-isaccodec
),)
131 CONFIGURE_ARGS
+=$(if
$(CONFIG_SOFT_FLOAT
),--disable-isac-float
--enable-isac-fixed
,--disable-isac-fixed
--enable-isac-float
)
134 --disable-isac-fixed \
138 define Package
/$(PKG_NAME
)/install
139 $(INSTALL_DIR
) $(1)/usr
/lib
141 for yatelib in
"" asn sig mgcp jabber script
; do \
142 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libyate
$$$${yatelib}.so
* $(1)/usr
/lib
;\
145 $(INSTALL_DIR
) $(1)/usr
/bin
146 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/yate
$(1)/usr
/bin
/
147 $(INSTALL_DIR
) $(1)/etc
/$(PKG_NAME
)
148 $(INSTALL_CONF
) $(PKG_INSTALL_DIR
)/etc
/yate
/yate.conf
$(1)/etc
/$(PKG_NAME
)/yate.conf
149 $(INSTALL_DIR
) $(1)/etc
/init.d
150 $(INSTALL_BIN
) .
/files
/yate.init
$(1)/etc
/init.d
/yate
153 define Package
/$(PKG_NAME
)-scripts-perl
/install
154 $(INSTALL_DIR
) $(1)/usr
/share
/yate
/scripts
155 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/share
/yate
/scripts
/Yate.pm
$(1)/usr
/share
/yate
/scripts
/
156 $(INSTALL_BIN
) .
/files
/banbrutes.pl
$(1)/usr
/share
/yate
/scripts
/
159 define Package
/$(PKG_NAME
)-sounds
/install
160 $(INSTALL_DIR
) $(1)/usr
/share
/yate
/sounds
161 $(CP
) $(PKG_INSTALL_DIR
)/usr
/share
/yate
/sounds
/ $(1)/usr
/share
/yate
/
164 define Package
/$(PKG_NAME
)-collection-basic
/install
167 define Build
/InstallDev
168 $(INSTALL_DIR
) $(STAGING_DIR
)/usr
/include
169 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/* $(STAGING_DIR
)/usr
/include/
170 $(INSTALL_DIR
) $(STAGING_DIR
)/usr
/lib
171 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/* $(STAGING_DIR
)/usr
/lib
/
175 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))
176 $(call Package
/yate
/Default
)
177 DEPENDS
:= $(PKG_NAME
) $(patsubst +%,+PACKAGE_
$(PKG_NAME
)-mod-
$(subst _
,-,$(1)):%,$(4))
181 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))/conffiles
182 $(if
$(6),/etc
/yate
/$(1).conf
)
185 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))/description
186 $(3) module for
$(PKG_NAME
)
189 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))/install
190 $$(INSTALL_DIR
) $$(1)/usr
/lib
/yate
/$(2)
191 $$(INSTALL_BIN
) $$(PKG_INSTALL_DIR
)/usr
/lib
/yate
/$(2)/$(1).yate
$$(1)/usr
/lib
/yate
/$(2)/$(1).yate
192 if
[ -f
$$(PKG_INSTALL_DIR
)/etc
/yate
/$(1).conf
]; then \
193 $$(INSTALL_DIR
) $$(1)/etc
/yate
;\
194 $$(INSTALL_CONF
) $$(PKG_INSTALL_DIR
)/etc
/yate
/$(1).conf
$$(1)/etc
/yate
/ ;\
196 $(if
$(5),$(foreach extra_file
,$(5),\
197 $(INSTALL_DIR
) $$(1)$(dir $(extra_file
)) ; \
198 $(CP
) $(PKG_INSTALL_DIR
)$(extra_file
) $$(1)$(extra_file
) ; \
202 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-mod-
$(subst _
,-,$(1))))
205 $(eval
$(call BuildPackage
,$(PKG_NAME
)))
206 $(eval
$(call BuildPackage
,$(PKG_NAME
)-collection-basic
))
207 $(eval
$(call BuildPackage
,$(PKG_NAME
)-scripts-perl
))
208 $(eval
$(call BuildPackage
,$(PKG_NAME
)-sounds
))
210 ############################
212 # 2: client, server or empty
216 # 6: has a config sample (y)
217 # ##########################
218 $(eval
$(call BuildPlugin
,accfile
,server
,SIP or H
.323 client
(from file
),,,y
))
219 $(eval
$(call BuildPlugin
,alsachan
,client
,ALSA Sound Channel
,+alsa-lib
))
220 $(eval
$(call BuildPlugin
,amrnbcodec
,,AMR-NB Codec
,@BROKEN
)) # Missing amr-nb library
221 $(eval
$(call BuildPlugin
,analog
,server
,Analog
(e.g. POTS
) Channel
,,,y
))
222 $(eval
$(call BuildPlugin
,analogdetect
,server
,Analog Data Detector
,))
223 $(eval
$(call BuildPlugin
,analyzer
,,Test Call Generator and AQ Analyzer
,))
224 $(eval
$(call BuildPlugin
,cache
,server
,CNAM and LNP memory caches
,,,y
))
225 $(eval
$(call BuildPlugin
,callcounters
,server
,Count Active Call Legs
,,,y
))
226 $(eval
$(call BuildPlugin
,callfork
,,Call Forker
,,,y
))
227 $(eval
$(call BuildPlugin
,callgen
,,Call Generator
,))
228 $(eval
$(call BuildPlugin
,camel_map
,sig
,MAP
/CAMEL TCAP
<-> XML translators
,,,y
))
229 $(eval
$(call BuildPlugin
,ccongestion
,server
,Accept Status from Installed Engine Monitors
,,,y
))
230 $(eval
$(call BuildPlugin
,cdrbuild
,,Call Detail Record Builder
,,,y
))
231 $(eval
$(call BuildPlugin
,cdrcombine
,,Call Detail Records per call instead of per call leg
,))
232 $(eval
$(call BuildPlugin
,cdrfile
,,Call Detail Record to File
,,,y
))
233 $(eval
$(call BuildPlugin
,ciscosm
,server
,SS7 Support
,,,y
))
234 $(eval
$(call BuildPlugin
,clustering
,server
,Clustering Server Support
,,,y
))
235 $(eval
$(call BuildPlugin
,conference
,,Conference Room Mixer
,))
236 $(eval
$(call BuildPlugin
,cpuload
,server
,Monitor CPU load and Inform Yate
,,,y
))
237 $(eval
$(call BuildPlugin
,dbpbx
,server
,PBX IVR and Multi-routing from Database
,,,y
))
238 $(eval
$(call BuildPlugin
,dbwave
,server
,Wav Media for DB Storage
,+$(PKG_NAME
)-mod-wavefile
))
239 $(eval
$(call BuildPlugin
,dumbchan
,,Dummy Channel
,))
240 $(eval
$(call BuildPlugin
,enumroute
,,ENUM Routing
,,,y
))
241 $(eval
$(call BuildPlugin
,eventlogs
,server
,Write events and alarms to log files
,,,y
))
242 $(eval
$(call BuildPlugin
,extmodule
,,External Module Handler
,,/usr
/share
/yate
/scripts
/echo.sh
,y
))
243 $(eval
$(call BuildPlugin
,faxchan
,,Spandsp Fax Channel
,+libspandsp
))
244 $(eval
$(call BuildPlugin
,fileinfo
,,File Info Holder
,,,y
))
245 $(eval
$(call BuildPlugin
,filetransfer
,,File Transfer Driver
,,,y
))
246 $(eval
$(call BuildPlugin
,gvoice
,,Google Voice support
,,,y
))
247 $(eval
$(call BuildPlugin
,heartbeat
,server
,Linux-HA compatible heartbeat
,,,y
))
248 $(eval
$(call BuildPlugin
,ilbccodec
,,iLBC Codec
,))
249 $(eval
$(call BuildPlugin
,ilbcwebrtc
,,iLBC Codec from the WebRTC project
,))
250 $(eval
$(call BuildPlugin
,isaccodec
,,internet Speech Audio Codec
,))
251 $(eval
$(call BuildPlugin
,isupmangler
,sig
,ISUP parameter mangling in a STP
,,,y
))
252 $(eval
$(call BuildPlugin
,jabberclient
,client
,Jabber Client
,,,y
))
253 $(eval
$(call BuildPlugin
,jabberserver
,jabber
,Jabber Server
,,,y
))
254 $(eval
$(call BuildPlugin
,javascript
,,Routing using the embedded Javascript language
,,,y
))
255 $(eval
$(call BuildPlugin
,jbfeatures
,jabber
,Jabber Server Features
,,,y
))
256 $(eval
$(call BuildPlugin
,lateroute
,server
,Last Chance Routing
,,,y
))
257 $(eval
$(call BuildPlugin
,mgcpca
,server
,Media Gateway Control Protocol Agent
,,,y
))
258 $(eval
$(call BuildPlugin
,mgcpgw
,server
,Media Gateway Control Protocol Gateway
,,,y
))
259 $(eval
$(call BuildPlugin
,moh
,,On Hold
(music
) Generator
,,,y
))
260 $(eval
$(call BuildPlugin
,monitoring
,server
,Monitoring
/gathering Information
,,,y
))
261 $(eval
$(call BuildPlugin
,mrcpspeech
,server
,MRCP v2 Voice
/Tone Detector and Synthesizer
,))
262 $(eval
$(call BuildPlugin
,msgsniff
,,Sample Message Sniffer
,))
263 $(eval
$(call BuildPlugin
,mux
,,Data Multiplexor
,,,y
))
264 $(eval
$(call BuildPlugin
,mysqldb
,server
,MySQL Backend DB
,+libmysqlclient-r
,,y
))
265 $(eval
$(call BuildPlugin
,openssl
,,Encrypted transport
(OpenSSL
),+libopenssl
,,y
))
266 $(eval
$(call BuildPlugin
,osschan
,client
,OSS Sound Channel
,))
267 $(eval
$(call BuildPlugin
,park
,server
,Call Parking
,))
268 $(eval
$(call BuildPlugin
,pbx
,,PBX Message Handlers
,))
269 $(eval
$(call BuildPlugin
,pbxassist
,server
,Full featured PBX and IVR
,,,y
))
270 $(eval
$(call BuildPlugin
,pgsqldb
,server
,PostgrestSQL Backend DB
,+libpq
))
271 $(eval
$(call BuildPlugin
,presence
,server
,Presence
,,,y
))
272 $(eval
$(call BuildPlugin
,queues
,server
,Call Distribution and Queues from Database
,,,y
))
273 $(eval
$(call BuildPlugin
,queuesnotify
,server
,Notify when queued call status changes
,,,y
))
274 $(eval
$(call BuildPlugin
,regexroute
,,Regular Expression Based Routing
,,,y
))
275 $(eval
$(call BuildPlugin
,regfile
,server
,Registration based on users in file
,,,y
))
276 $(eval
$(call BuildPlugin
,register
,server
,Call Detail Record to a database
,,,y
))
277 $(eval
$(call BuildPlugin
,rmanager
,,Yate Remote Management
,,,y
))
278 $(eval
$(call BuildPlugin
,sigtransport
,server
,SIGTRAN
(SS7 over IP
) connection provider
,,,y
))
279 $(eval
$(call BuildPlugin
,sip_cnam_lnp
,sip
,Query CNAM and LNP databases using SIP INVITE
,,,y
))
280 $(eval
$(call BuildPlugin
,sipfeatures
,server
,SIP Features
(SUBSCRIBE
/NOTIFY
),,,y
))
281 $(eval
$(call BuildPlugin
,sqlitedb
,server
,SQLite Support
,+libsqlite3
,,y
))
282 $(eval
$(call BuildPlugin
,ss7_lnp_ansi
,sig
,Query LNP Databases
,,,y
))
283 $(eval
$(call BuildPlugin
,subscription
,server
,Subcription handler and presence notifier
,,,y
))
284 $(eval
$(call BuildPlugin
,tdmcard
,server
,TDM Cards Signalling and Data Driver
,@BROKEN
)) # Missing TDM libraries
285 $(eval
$(call BuildPlugin
,tonedetect
,,Detectors for Various Tones
,))
286 $(eval
$(call BuildPlugin
,tonegen
,,Tones Generator
,,,y
))
287 $(eval
$(call BuildPlugin
,users
,server
,Users
,,,y
))
288 $(eval
$(call BuildPlugin
,wavefile
,,Wav file Record and Playback
,))
289 $(eval
$(call BuildPlugin
,wpcard
,server
,Wanpipe PRI cards Signalling and Data Driver
,@BROKEN
)) # Mising wanpipe and PRI libraries
290 $(eval
$(call BuildPlugin
,yiaxchan
,,IAX Channel
,,,y
))
291 $(eval
$(call BuildPlugin
,yjinglechan
,,Jingle Channel
,,,y
))
292 $(eval
$(call BuildPlugin
,yradius
,server
,RADIUS Client
,,,y
))
293 $(eval
$(call BuildPlugin
,yrtpchan
,,RTP Channel and Other Data Helper
,,,y
))
294 $(eval
$(call BuildPlugin
,ysigchan
,server
,SS7
/ISDN Protocols
- Yate Signalling Library
,,,y
))
295 $(eval
$(call BuildPlugin
,ysipchan
,,SIP Channel
,,,y
))
296 $(eval
$(call BuildPlugin
,ysnmpagent
,server
,SNMP Protocol Agent
,,/usr
/share
/yate
/data
/NULL-TEAM-MIB.txt
/usr
/share
/yate
/data
/snmp_mib.conf
/usr
/share
/yate
/data
/YATE-MIB.txt
,y
))
297 $(eval
$(call BuildPlugin
,ysockschan
,,SOCKS Channel
,,,y
))
298 $(eval
$(call BuildPlugin
,ystunchan
,,STUN Support
,,,y
))
299 $(eval
$(call BuildPlugin
,zapcard
,server
,Zaptel PRI
/TDM
/FXS
/FXO cards
,@
!aarch64
+kmod-dahdi
,,y
))
300 $(eval
$(call BuildPlugin
,zlibcompress
,,Zlib Compression
,+zlib
,,y
))