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
:=cbd3afc417da7b26b4d7f57146c815a667db2bf1ff4d1ea9dae986954cbcd62f
20 PKG_LICENSE_FILES
:=COPYING
21 PKG_MAINTAINER
:=Jiri Slachta
<jiri@slachta.eu
>
27 # Yate currently does not compile with FORTIFY_SOURCE enabled
30 PKG_CONFIG_DEPENDS
:= \
31 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-faxchan \
32 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-g722webrtc \
33 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-ilbccodec \
34 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-ilbcwebrtc \
35 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-isaccodec \
36 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-mysqldb \
37 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-openssl \
38 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pgsqldb \
39 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-speexcodec \
40 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-sqlitedb \
41 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zapcard \
42 CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zlibcompress \
45 include $(INCLUDE_DIR
)/uclibc
++.mk
46 include $(INCLUDE_DIR
)/package.mk
47 include $(INCLUDE_DIR
)/nls.mk
49 TAR_OPTIONS
+= --strip-components
1
50 TAR_CMD
=$(HOST_TAR
) -C
$(1) $(TAR_OPTIONS
)
52 define Package
/$(PKG_NAME
)/Default
56 URL
:=http
://yate.null.ro
/
59 define Package
/$(PKG_NAME
)
60 $(call Package
/yate
/Default
)
61 DEPENDS
:=+libpthread
$(CXX_DEPENDS
)
62 TITLE
:=Yet Another Telephony Engine
66 define Package
/$(PKG_NAME
)/conffiles
71 define Package
/$(PKG_NAME
)/Default
/description
72 Is a next-generation telephony engine focused on the VoIP and PSTN. It does
73 SIP
, H
.323, IAX
, PSTN
, and more.
76 define Package
/$(PKG_NAME
)-scripts-perl
77 $(call Package
/yate
/Default
)
78 DEPENDS
+= $(PKG_NAME
) \
79 +PACKAGE_
$(PKG_NAME
)-scripts-perl
:$(PKG_NAME
)-mod-extmodule \
80 +PACKAGE_
$(PKG_NAME
)-scripts-perl
:perlbase-data \
82 TITLE
:= Perl module for Yate
85 define Package
/$(PKG_NAME
)-sounds
86 $(call Package
/yate
/Default
)
87 DEPENDS
+= $(PKG_NAME
)
88 TITLE
:= Sounds for Yate
91 # Otherwise yate ignores CPPFLAGS
92 TARGET_CFLAGS
+= $(TARGET_CPPFLAGS
)
100 --without-coredumper \
109 $(if
$(CONFIG_x86_64
),--enable-sse2
) \
110 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-faxchan
),--with-spandsp
="$(STAGING_DIR)/usr/include",--without-spandsp
) \
111 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-g722webrtc
),--enable-g722-webrtc
,--disable-g722-webrtc
) \
112 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-ilbccodec
),--enable-ilbc
,--disable-ilbc
) \
113 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-ilbcwebrtc
),--enable-ilbc-webrtc
,--disable-ilbc-webrtc
) \
114 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-mysqldb
),--with-mysql
=yes
,--without-mysql
) \
115 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-openssl
),--with-openssl
,--without-openssl
) \
116 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-pgsqldb
),--with-libpq
="$(STAGING_DIR)/usr",--without-libpq
) \
117 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-speexcodec
),--with-libspeex
="$(STAGING_DIR)/usr/include",--without-libspeex
) \
118 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-sqlitedb
),--with-sqlite
,--without-sqlite
) \
119 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zapcard
),,--disable-dahdi
--disable-zaptel
) \
120 $(if
$(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-zlibcompress
),--with-zlib
="$(STAGING_DIR)/usr",--without-zlib
)
122 # The regexp implementation of musl 1.1.24 is not fully compatible with yate
124 --enable-internalregex
126 ifneq ($(CONFIG_PACKAGE_
$(PKG_NAME
)-mod-isaccodec
),)
127 CONFIGURE_ARGS
+=$(if
$(CONFIG_SOFT_FLOAT
),--disable-isac-float
--enable-isac-fixed
,--disable-isac-fixed
--enable-isac-float
)
130 --disable-isac-fixed \
134 define Package
/$(PKG_NAME
)/install
135 $(INSTALL_DIR
) $(1)/usr
/lib
137 for yatelib in
"" asn sig mgcp jabber script
; do \
138 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libyate
$$$${yatelib}.so
* $(1)/usr
/lib
;\
141 $(INSTALL_DIR
) $(1)/usr
/bin
142 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/yate
$(1)/usr
/bin
/
143 $(INSTALL_DIR
) $(1)/etc
/$(PKG_NAME
)
144 $(INSTALL_CONF
) $(PKG_INSTALL_DIR
)/etc
/yate
/yate.conf
$(1)/etc
/$(PKG_NAME
)/yate.conf
145 $(INSTALL_DIR
) $(1)/etc
/init.d
146 $(INSTALL_BIN
) .
/files
/yate.init
$(1)/etc
/init.d
/yate
149 define Package
/$(PKG_NAME
)-scripts-perl
/install
150 $(INSTALL_DIR
) $(1)/usr
/share
/yate
/scripts
151 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/share
/yate
/scripts
/Yate.pm
$(1)/usr
/share
/yate
/scripts
/
152 $(INSTALL_BIN
) .
/files
/banbrutes.pl
$(1)/usr
/share
/yate
/scripts
/
155 define Package
/$(PKG_NAME
)-sounds
/install
156 $(INSTALL_DIR
) $(1)/usr
/share
/yate
/sounds
157 $(CP
) $(PKG_INSTALL_DIR
)/usr
/share
/yate
/sounds
/ $(1)/usr
/share
/yate
/
160 define Build
/InstallDev
161 $(INSTALL_DIR
) $(STAGING_DIR
)/usr
/include
162 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/* $(STAGING_DIR
)/usr
/include/
163 $(INSTALL_DIR
) $(STAGING_DIR
)/usr
/lib
164 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/* $(STAGING_DIR
)/usr
/lib
/
168 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))
169 $(call Package
/yate
/Default
)
170 DEPENDS
:= $(PKG_NAME
) $(patsubst +%,+PACKAGE_
$(PKG_NAME
)-mod-
$(subst _
,-,$(1)):%,$(4))
174 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))/conffiles
175 $(if
$(6),/etc
/yate
/$(1).conf
)
178 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))/description
179 $(3) module for
$(PKG_NAME
)
182 define Package
/$(PKG_NAME
)-mod-
$(subst _
,-,$(1))/install
183 $$(INSTALL_DIR
) $$(1)/usr
/lib
/yate
/$(2)
184 $$(INSTALL_BIN
) $$(PKG_INSTALL_DIR
)/usr
/lib
/yate
/$(2)/$(1).yate
$$(1)/usr
/lib
/yate
/$(2)/$(1).yate
185 if
[ -f
$$(PKG_INSTALL_DIR
)/etc
/yate
/$(1).conf
]; then \
186 $$(INSTALL_DIR
) $$(1)/etc
/yate
;\
187 $$(INSTALL_CONF
) $$(PKG_INSTALL_DIR
)/etc
/yate
/$(1).conf
$$(1)/etc
/yate
/ ;\
189 $(if
$(5),$(foreach extra_file
,$(5),\
190 $(INSTALL_DIR
) $$(1)$(dir $(extra_file
)) ; \
191 $(CP
) $(PKG_INSTALL_DIR
)$(extra_file
) $$(1)$(extra_file
) ; \
195 $$(eval
$$(call BuildPackage
,$(PKG_NAME
)-mod-
$(subst _
,-,$(1))))
198 $(eval
$(call BuildPackage
,$(PKG_NAME
)))
199 $(eval
$(call BuildPackage
,$(PKG_NAME
)-scripts-perl
))
200 $(eval
$(call BuildPackage
,$(PKG_NAME
)-sounds
))
202 ############################
204 # 2: client, server or empty
208 # 6: has a config sample (y)
209 # ##########################
210 $(eval
$(call BuildPlugin
,accfile
,server
,SIP or H
.323 client
(from file
),,,y
))
211 $(eval
$(call BuildPlugin
,alsachan
,client
,ALSA Sound Channel
,+alsa-lib
))
212 $(eval
$(call BuildPlugin
,amrnbcodec
,,AMR-NB Codec
,@BROKEN
)) # Missing amr-nb library
213 $(eval
$(call BuildPlugin
,analog
,server
,Analog
(e.g. POTS
) Channel
,,,y
))
214 $(eval
$(call BuildPlugin
,analogdetect
,server
,Analog Data Detector
,))
215 $(eval
$(call BuildPlugin
,analyzer
,,Test Call Generator and AQ Analyzer
,))
216 $(eval
$(call BuildPlugin
,cache
,server
,CNAM and LNP memory caches
,,,y
))
217 $(eval
$(call BuildPlugin
,callcounters
,server
,Count Active Call Legs
,,,y
))
218 $(eval
$(call BuildPlugin
,callfork
,,Call Forker
,,,y
))
219 $(eval
$(call BuildPlugin
,callgen
,,Call Generator
,))
220 $(eval
$(call BuildPlugin
,camel_map
,sig
,MAP
/CAMEL TCAP
<-> XML translators
,,,y
))
221 $(eval
$(call BuildPlugin
,ccongestion
,server
,Accept Status from Installed Engine Monitors
,,,y
))
222 $(eval
$(call BuildPlugin
,cdrbuild
,,Call Detail Record Builder
,,,y
))
223 $(eval
$(call BuildPlugin
,cdrcombine
,,Call Detail Records per call instead of per call leg
,))
224 $(eval
$(call BuildPlugin
,cdrfile
,,Call Detail Record to File
,,,y
))
225 $(eval
$(call BuildPlugin
,ciscosm
,server
,SS7 Support
,,,y
))
226 $(eval
$(call BuildPlugin
,clustering
,server
,Clustering Server Support
,,,y
))
227 $(eval
$(call BuildPlugin
,conference
,,Conference Room Mixer
,))
228 $(eval
$(call BuildPlugin
,cpuload
,server
,Monitor CPU load and Inform Yate
,,,y
))
229 $(eval
$(call BuildPlugin
,dbpbx
,server
,PBX IVR and Multi-routing from Database
,,,y
))
230 $(eval
$(call BuildPlugin
,dbwave
,server
,Wav Media for DB Storage
,+$(PKG_NAME
)-mod-wavefile
))
231 $(eval
$(call BuildPlugin
,dumbchan
,,Dummy Channel
,))
232 $(eval
$(call BuildPlugin
,enumroute
,,ENUM Routing
,,,y
))
233 $(eval
$(call BuildPlugin
,eventlogs
,server
,Write events and alarms to log files
,,,y
))
234 $(eval
$(call BuildPlugin
,extmodule
,,External Module Handler
,,/usr
/share
/yate
/scripts
/echo.sh
,y
))
235 $(eval
$(call BuildPlugin
,faxchan
,,Spandsp Fax Channel
,+libspandsp
))
236 $(eval
$(call BuildPlugin
,fileinfo
,,File Info Holder
,,,y
))
237 $(eval
$(call BuildPlugin
,filetransfer
,,File Transfer Driver
,,,y
))
238 $(eval
$(call BuildPlugin
,g722webrtc
,,G
.722 codec using library based on WebRTC project
,))
239 $(eval
$(call BuildPlugin
,gvoice
,,Google Voice support
,,,y
))
240 $(eval
$(call BuildPlugin
,heartbeat
,server
,Linux-HA compatible heartbeat
,,,y
))
241 $(eval
$(call BuildPlugin
,ilbccodec
,,iLBC Codec
,))
242 $(eval
$(call BuildPlugin
,ilbcwebrtc
,,iLBC Codec from the WebRTC project
,))
243 $(eval
$(call BuildPlugin
,isaccodec
,,internet Speech Audio Codec
,))
244 $(eval
$(call BuildPlugin
,isupmangler
,sig
,ISUP parameter mangling in a STP
,,,y
))
245 $(eval
$(call BuildPlugin
,jabberclient
,client
,Jabber Client
,,,y
))
246 $(eval
$(call BuildPlugin
,jabberserver
,jabber
,Jabber Server
,,,y
))
247 $(eval
$(call BuildPlugin
,javascript
,,Routing using the embedded Javascript language
,,,y
))
248 $(eval
$(call BuildPlugin
,jbfeatures
,jabber
,Jabber Server Features
,,,y
))
249 $(eval
$(call BuildPlugin
,lateroute
,server
,Last Chance Routing
,,,y
))
250 $(eval
$(call BuildPlugin
,mgcpca
,server
,Media Gateway Control Protocol Agent
,,,y
))
251 $(eval
$(call BuildPlugin
,mgcpgw
,server
,Media Gateway Control Protocol Gateway
,,,y
))
252 $(eval
$(call BuildPlugin
,moh
,,On Hold
(music
) Generator
,,,y
))
253 $(eval
$(call BuildPlugin
,monitoring
,server
,Monitoring
/gathering Information
,,,y
))
254 $(eval
$(call BuildPlugin
,mrcpspeech
,server
,MRCP v2 Voice
/Tone Detector and Synthesizer
,))
255 $(eval
$(call BuildPlugin
,msgsniff
,,Sample Message Sniffer
,))
256 $(eval
$(call BuildPlugin
,mux
,,Data Multiplexor
,,,y
))
257 $(eval
$(call BuildPlugin
,mysqldb
,server
,MySQL Backend DB
,+libmysqlclient-r
,,y
))
258 $(eval
$(call BuildPlugin
,openssl
,,Encrypted transport
(OpenSSL
),+libopenssl
,,y
))
259 $(eval
$(call BuildPlugin
,osschan
,client
,OSS Sound Channel
,))
260 $(eval
$(call BuildPlugin
,park
,server
,Call Parking
,))
261 $(eval
$(call BuildPlugin
,pbx
,,PBX Message Handlers
,))
262 $(eval
$(call BuildPlugin
,pbxassist
,server
,Full featured PBX and IVR
,,,y
))
263 $(eval
$(call BuildPlugin
,pgsqldb
,server
,PostgrestSQL Backend DB
,+libpq
))
264 $(eval
$(call BuildPlugin
,presence
,server
,Presence
,,,y
))
265 $(eval
$(call BuildPlugin
,queues
,server
,Call Distribution and Queues from Database
,,,y
))
266 $(eval
$(call BuildPlugin
,queuesnotify
,server
,Notify when queued call status changes
,,,y
))
267 $(eval
$(call BuildPlugin
,regexroute
,,Regular Expression Based Routing
,,,y
))
268 $(eval
$(call BuildPlugin
,regfile
,server
,Registration based on users in file
,,,y
))
269 $(eval
$(call BuildPlugin
,register
,server
,Call Detail Record to a database
,,,y
))
270 $(eval
$(call BuildPlugin
,rmanager
,,Yate Remote Management
,,,y
))
271 $(eval
$(call BuildPlugin
,sigtransport
,server
,SIGTRAN
(SS7 over IP
) connection provider
,,,y
))
272 $(eval
$(call BuildPlugin
,sip_cnam_lnp
,sip
,Query CNAM and LNP databases using SIP INVITE
,,,y
))
273 $(eval
$(call BuildPlugin
,sipfeatures
,server
,SIP Features
(SUBSCRIBE
/NOTIFY
),,,y
))
274 $(eval
$(call BuildPlugin
,speexcodec
,,Speex codec module written by Olaf Conradi
,+libspeex
))
275 $(eval
$(call BuildPlugin
,sqlitedb
,server
,SQLite Support
,+libsqlite3
,,y
))
276 $(eval
$(call BuildPlugin
,ss7_lnp_ansi
,sig
,Query LNP Databases
,,,y
))
277 $(eval
$(call BuildPlugin
,subscription
,server
,Subcription handler and presence notifier
,,,y
))
278 $(eval
$(call BuildPlugin
,tdmcard
,server
,TDM Cards Signalling and Data Driver
,@BROKEN
)) # Missing TDM libraries
279 $(eval
$(call BuildPlugin
,tonedetect
,,Detectors for Various Tones
,))
280 $(eval
$(call BuildPlugin
,tonegen
,,Tones Generator
,,,y
))
281 $(eval
$(call BuildPlugin
,users
,server
,Users
,,,y
))
282 $(eval
$(call BuildPlugin
,wavefile
,,Wav file Record and Playback
,))
283 $(eval
$(call BuildPlugin
,wiresniff
,,Capture interface for YATE messages
,,,y
))
284 $(eval
$(call BuildPlugin
,wpcard
,server
,Wanpipe PRI cards Signalling and Data Driver
,@BROKEN
)) # Mising wanpipe and PRI libraries
285 $(eval
$(call BuildPlugin
,yiaxchan
,,IAX Channel
,,,y
))
286 $(eval
$(call BuildPlugin
,yjinglechan
,,Jingle Channel
,,,y
))
287 $(eval
$(call BuildPlugin
,yradius
,server
,RADIUS Client
,,,y
))
288 $(eval
$(call BuildPlugin
,yrtpchan
,,RTP Channel and Other Data Helper
,,,y
))
289 $(eval
$(call BuildPlugin
,ysigchan
,server
,SS7
/ISDN Protocols
- Yate Signalling Library
,,,y
))
290 $(eval
$(call BuildPlugin
,ysipchan
,,SIP Channel
,,,y
))
291 $(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
))
292 $(eval
$(call BuildPlugin
,ysockschan
,,SOCKS Channel
,,,y
))
293 $(eval
$(call BuildPlugin
,ystunchan
,,STUN Support
,,,y
))
294 $(eval
$(call BuildPlugin
,zapcard
,server
,Zaptel PRI
/TDM
/FXS
/FXO cards
,@
!aarch64
+kmod-dahdi
,,y
))
295 $(eval
$(call BuildPlugin
,zlibcompress
,,Zlib Compression
,+zlib
,,y
))