# Contributor: Francesco Colista # Maintainer: Natanael Copa pkgname=sems pkgver=1.6.0 pkgrel=8 pkgdesc="SIP Express Media Server, an extensible SIP media server" url="http://iptel.org/sems/" arch="all" license="GPL-2.0-or-later" # upstream does not provide test options="!check" pkgusers="sems" pkggroups="sems" install="$pkgname.pre-install" makedepends="python2-dev cmake bash libressl-dev linux-headers libsamplerate-dev spandsp-dev flite-dev gsm-dev speex-dev libevent-dev libev-dev lame-dev" subpackages="$pkgname-doc $pkgname-conf_auth $pkgname-conference $pkgname-diameter_client $pkgname-dsm $pkgname-early_announce $pkgname-g722 $pkgname-gsm $pkgname-ivr $pkgname-mailbox $pkgname-mp3 $pkgname-pin_collect $pkgname-speex $pkgname-xmlrpc2di $pkgname-webconference $pkgname-voicebox $pkgname-voicemail $pkgname-annrecorder $pkgname-jsonrpc $pkgname-registrar" source="$pkgname-$pkgver.tar.gz::https://github.com/sems-server/sems/archive/$pkgver.tar.gz sems-0001-Force-to-use-system-wide-GSM-includes.patch sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch sems-0004-musl-fixes.patch sems-0005-stats-needs-version.patch sems-0011-Add-SBC-dependencies.patch std-types.patch sems-0013-Fix-for-C-11.patch sems.initd " # sems-0005-Add-sw_prepaid_sip-plugin-to-default-exclude-list-du.patch # sems-0006-last-minute-fix-proper-version.patch # sems-0008-Install-email-template.patch # sems-0009-Don-t-start-py_sems-by-default.patch # applied: # sems-0004-fix-PRACK-route.patch # sems-0007-Fix-gateway-module-s-version-passing-in-CMake.patch # sems-0010-Move-CMake-defines.patch builddir="$srcdir/$pkgname-$pkgver" prepare() { default_prepare cd "$builddir" rm -rf core/plug-in/gsm/gsm-1.0-pl10/ } build() { cd "$builddir" # force cmake to use relative paths. It helps us avoid having the # full file path in the logs cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_USE_RELATIVE_PATHS=yes \ -DSEMS_USE_SPANDSP=yes \ -DSEMS_USE_LIBSAMPLERATE=yes \ -DSEMS_USE_ZRTP=NO \ -DSEMS_USE_MP3=yes \ -DSEMS_USE_ILBC=NO \ -DSEMS_USE_TTS=yes \ -DSEMS_USE_OPENSSL=yes \ -DSEMS_USE_MONITORING=yes \ -DSEMS_USE_IPV6=NO \ -DSEMS_CFG_PREFIX= \ -DSEMS_AUDIO_PREFIX=/usr/share \ -DSEMS_EXEC_PREFIX=/usr \ -DSEMS_LIBDIR=lib make } package() { cd "$builddir" make install DESTDIR="$pkgdir" install -m755 -D "$srcdir"/$pkgname.initd \ "$pkgdir"/etc/init.d/$pkgname # is empty rm -f "$pkgdir"/etc/sems/etc/conf_auth.conf install -o sems -g sems -d "$pkgdir"/var/spool/voicebox install -d -o sems "$pkgdir"/var/run/sems } _mv_sub() { local i for i in "$@"; do mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/$i "$subpkgdir"/$i done } conf_auth() { pkgdesc="Conference with authorization for SEMS" depends="sems sems-ivr" cd "$pkgdir" _mv_sub usr/lib/sems/ivr/conf_auth* } conference() { pkgdesc="Conferencing application for SEMS" depends="sems" cd "$pkgdir" _mv_sub etc/sems/etc/conference.conf \ usr/lib/sems/plug-in/conference.so \ usr/share/sems/audio/conference } diameter_client() { pkgdesc="A simple DIAMETER client implementation for SEMS" depends="sems" cd "$pkgdir" _mv_sub usr/lib/sems/plug-in/diameter_client.so } dsm() { pkgdesc="The state machine interpreter for SEMS" depends="sems" cd "$pkgdir" _mv_sub etc/sems/etc/dsm* \ usr/lib/sems/plug-in/dsm.so \ usr/lib/sems/dsm } early_announce() { pkgdesc="Early announce application for SEMS" depends="sems" cd "$pkgdir" _mv_sub etc/sems/etc/early_announce.conf \ usr/lib/sems/plug-in/early_announce.so } g722() { pkgdesc="G.722 support for SEMS" depends="sems" _mv_sub usr/lib/sems/plug-in/g722.so } #gateway() { # pkgdesc="ISDN gateway for SEMS" # depends="sems" #} gsm() { pkgdesc="GSM support for SEMS" depends="sems" _mv_sub usr/lib/sems/plug-in/gsm.so } ivr() { pkgdesc="IVR (python) functionallity for SEMS" depends="sems python2" cd "$pkgdir" _mv_sub etc/sems/etc/ivr.conf \ usr/lib/sems/plug-in/ivr.so \ usr/lib/sems/ivr/log.* } mailbox() { pkgdesc="Mailbox application for SEMS" depends="sems sems-ivr" cd "$pkgdir" _mv_sub etc/sems/etc/mailbox*.conf \ usr/share/sems/audio/mailbox \ usr/lib/sems/ivr/*mailbox* } mp3() { pkgdesc="MP3 support for SEMS" depends="sems" _mv_sub usr/lib/sems/plug-in/mp3.so } pin_collect() { pkgdesc="Collects a PIN for SEMS" depends="sems sems-ivr" cd "$pkgdir" _mv_sub etc/sems/etc/pin_collect.conf \ usr/share/sems/audio/pin_collect \ usr/lib/sems/ivr/pin_collect* } webconference() { pkgdesc="Conference bridge via DI (xmlrpc) for SEMS" depends="sems sems-xmlrpc2di" cd "$pkgdir" _mv_sub etc/sems/etc/webconference.conf \ usr/share/sems/audio/webconference \ usr/lib/sems/plug-in/webconference.so } annrecorder() { pkgdesc="Allow user to record personal greeting for SEMS" depends="sems" cd "$pkgdir" _mv_sub etc/sems/etc/annrecorder.conf \ usr/share/sems/audio/annrecorder \ usr/lib/sems/plug-in/annrecorder.so } voicebox() { pkgdesc="Voicebox (call in for messsages) for SEMS" depends="sems" cd "$pkgdir" _mv_sub etc/sems/etc/voicebox.conf \ usr/share/sems/audio/voicebox \ usr/lib/sems/plug-in/voicebox.so \ var/spool/voicebox } voicemail() { pkgdesc="Play greeting and record voicemail for SEMS" depends="sems" cd "$pkgdir" _mv_sub etc/sems/etc/voicemail.conf \ usr/share/sems/audio/voicemail \ usr/lib/sems/plug-in/voicemail.so } _python() { pkgdesc="Python bindings for SEMS" depends="python2 sems" cd "$pkgdir" _mv_sub \ usr/lib/sems/plug-in/py_sems* } speex() { pkgdesc="Speex support for SEMS" depends="sems" _mv_sub usr/lib/sems/plug-in/speex.so } xmlrpc2di() { pkgdesc="XMLRPC interface for SEMS" depends="sems" _mv_sub \ etc/sems/etc/xmlrpc2di.conf \ usr/lib/sems/plug-in/xmlrpc2di.so } jsonrpc() { pkgdesc="Jsonrpc support for SEMS" depends="sems" _mv_sub \ etc/sems/etc/jsonrpc.conf \ usr/lib/sems/plug-in/jsonrpc.so } registrar() { pkgdesc="Support for SEMS to register to a SIP server" depends="sems" _mv_sub \ etc/sems/etc/reg_agent.conf \ usr/lib/sems/plug-in/reg_agent.so \ usr/lib/sems/plug-in/registrar_client.so } sha512sums="80190dbdc1d68dc7aa377b2af6a962f08c058a42cd618cb422d6d4e0f9138059fad71b7f284c6420de462ad4dcd65ea5e65b3c5b82dc1850dbd5b5a45644d3d4 sems-1.6.0.tar.gz 87c6f878c3ad5e947a9a80431ddf28f08c04ce1415b7c42878f66b423c78d909efda836c7c2d3ed97e075c08d7a07c4707a49c14ce42c1a3aa350de1878c8d09 sems-0001-Force-to-use-system-wide-GSM-includes.patch 4c09033d6acd1bbef2aa2d02571f74da29532decca67b9ce861872d8d9522ca31808d6e26c3b536913ef7a988f90d374e217187b9cadb6a79d5c830571e94b67 sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch ba6f0d917464729c63628255bee3d864a954af4a510b802f0de1d51f35ff5d7c1c33cbe14db31818133a3c94f84da0f4bea4184ce1e8eae6aa9a1ba79f2e5347 sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch 0d3deeb8617a96f81a05fc27b94bca70f4f6dfbdb3c75f0cd4abc5df002ff16f70ec2836717f317b0d03a8178415c2c09ca2d7099bf10c7ac3c58b273ee98776 sems-0004-musl-fixes.patch 28f07142a0b8b6698948d41bfb198e59637d5a921960adc496111b5cad4685a0b1cade821ac9cd9dbbf3f25ed6195f29485a12d077abf81428b9b6f8bfced79e sems-0005-stats-needs-version.patch d616448e70d1cdfc7016f7ff3cab3615063a65f551b4b03cd004ced60b7a24681e85a871788ef2bf13d37c6cb3c84a6d76ba44fd9b9d1a921ad4b8469f3c6ed1 sems-0011-Add-SBC-dependencies.patch 79e3ac2b202b3f6c710b3d2bc8ac459e3622f2bf5945eaaa81778f53bcbddc7951266f88c2fd9862fbed44f10a160368af7d19b5e81929a3b1e8ee150111f74b std-types.patch d21eb55ebcbf3d20703dcb3843415b9f7e8d4fa029396738b843d8ece80abf87475e7d06794f86c75e8c3205273c013e99da4772d169bf127d7985522230265a sems-0013-Fix-for-C-11.patch 5be93b6444a9592daa6c883c78e5906e9e662891e1daa850d872bdaa657eb756f1bc0879732033479b279b75c2fd42ef79aa530ebf3b1692e7fb222d484f804b sems.initd"