diff options
-rw-r--r-- | network/asterisk/README | 63 | ||||
-rw-r--r-- | network/asterisk/asterisk.SlackBuild | 154 | ||||
-rw-r--r-- | network/asterisk/asterisk.info | 14 | ||||
-rw-r--r-- | network/asterisk/logrotate.asterisk | 8 | ||||
-rw-r--r-- | network/asterisk/slack-desc | 14 |
5 files changed, 196 insertions, 57 deletions
diff --git a/network/asterisk/README b/network/asterisk/README index 88fa0b4ed5..779e76c199 100644 --- a/network/asterisk/README +++ b/network/asterisk/README @@ -1,19 +1,58 @@ Asterisk has a number of optional build dependencies. If you intend to use -any analogue PSTN hardware such as DigiumTDM400P, you should install the -dahdi-linux and dahdi-tools software and drivers before compiling Asterisk. -If you will instead use digital telephony hardware (not IP phones) such as -T1/E1 lines or a PRI, you'll need to install libpri, again before compiling -Asterisk. +any analogue PSTN hardware such as a DigiumTDM400P or plan on implementing +a key system which uses the app_meetme conferencing plugin you will need to +install the dahdi-linux and dahdi-tools software and drivers before compiling +Asterisk. If you will instead use digital telephony hardware (not IP phones) +such as T1/E1 lines or a PRI, you'll need to install libpri, again before +compiling Asterisk. -Be sure to see /usr/doc/asterisk-1.8.7.2/sample_confs/ after installation +Be sure to see /usr/doc/asterisk-13.13.1/sample_confs/ after installation for any additional configuration files you may need. -With 1.8+ release of Asterisk, Add-ons are shipped in the main package. -but disabled by default. Since some of the add-ons are quite useful, this -script will build them, unless ofcourse, the ADDON variable is set as: +If you have plans of using Asterisk with a database backend you may want to +install the alembic package. Since version 12.0 the database schemas that +Asterisk uses are being captured in the form of python script files that use +alembic to create/update database schemas. The asterisk package places these +database scripts in the /usr/doc/asterisk-13.13.1/ast-db-manage directory. - ADDONS=no ./asterisk.SlackBuild +This build script supports the following flags: -The list of pre-selected add-ons is as follows: + * MOH : [default = no] - app_mysql cdr_mysql chan_ooh323 res_config_mysql + Set this flag to 'yes' if you would like to include some royalty-free + music on hold sound files with your installation. Setting this option + will cause the build to download some sound files from the internet. + + * SOUNDS_EXTRA : [default = no] + + Set this flag to 'yes' if you would like to include the extra sound package + with your installation. Setting this option will cause the build to + download some sound files from the internet. + + * VM_ODBC : [default = no] + + Set this flag to 'yes' if you would like to store your voicemail messages + in a database. This plugin requires the unixODBC package. This flag will + override the VM_IMAP flag if both are set to 'yes'. You will probably want + to install the alembic package to configure your database with the latest + database schemas for Asterisk. + + * VM_IMAP : [default = no] + + Set this flag to 'yes' if you would like to store your voicemail messages + on an IMAP server. This plugin requires the University of Washingtons + IMAP server source. This flag will be overridden by the VM_ODBC flag if + both are set to 'yes'. + + * G711_NEW : [default = no] + + Set this flag to 'yes' if you would like to use the newer G711 codec code. + This requires a more powerful machine than would be normally required. + + * MEETME : [default = no] + + Set this flag to 'yes' if you would like to build the app_meetme plugin. + This plugin is required for key style systems and conferencing using meetme. + This plugin requires the dahdi-linux package for timing purposes. + +Optional dependencies: alembic, dahdi-complete, libpri, unixODBC, pjsip. diff --git a/network/asterisk/asterisk.SlackBuild b/network/asterisk/asterisk.SlackBuild index 8fd0955983..b4c20aa72c 100644 --- a/network/asterisk/asterisk.SlackBuild +++ b/network/asterisk/asterisk.SlackBuild @@ -1,7 +1,8 @@ #!/bin/sh # Copyright 2006, Alan Hicks, Lizella, GA -# Copyright 2010, 2013, 2015 Mario Preksavec, Zagreb, HR +# Copyright 2010, 2013, 2015 Mario Preksavec, Zagreb, Croatia +# Copyright 2018 Chris Walker, Kempner, TX # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,15 +23,13 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=asterisk -VERSION=${VERSION:-1.8.24.0} +VERSION=${VERSION:-13.20.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} -ADDONS=${ADDONS:-yes} - if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) ARCH=i486 ;; + i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac @@ -41,8 +40,15 @@ TMP=${TMP:-/tmp/SBo} PKG="$TMP/package-$PRGNAM" OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +ASTERISKUSR=${ASTERISKUSR:-asterisk} +ASTERISKGRP=${ASTERISKGRP:-asterisk} +ASTERISKUID=${ASTERISKUID:-267} +ASTERISKGID=${ASTERISKGID:-267} + +IMAPDIR=imap-2007f + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" @@ -55,11 +61,45 @@ else LIBDIRSUFFIX="" fi +do_exit() { + echo ; echo "You must have the ${ASTERISKUSR} user and ${ASTERISKGRP} group in" + echo "order to build asterisk. Sample lines to do so are below:" + echo "# groupadd -g ${ASTERISKGID} ${ASTERISKGRP}" + echo "# useradd -u ${ASTERISKUID} -d /var/lib/asterisk -s /bin/false -g ${ASTERISKGRP} ${ASTERISKUSR}" + echo "Exiting..." ; echo ; exit 1 +} + +getent group ${ASTERISKGRP} >/dev/null || do_exit +getent passwd ${ASTERISKUSR} >/dev/null || do_exit + set -e -rm -fr $PKG $TMP/$PRGNAM-$VERSION +rm -fr $PKG $TMP/$PRGNAM-$VERSION $TMP/$IMAPDIR mkdir -p $TMP $PKG $OUTPUT cd $TMP + +VM_IMAP=${VM_IMAP:-"no"} +CONFIGURE_OPTS= + +if [ "$VM_IMAP" != "no" ] && [ "${VM_ODBC:-no}" = "no" ]; then + tar xvf $CWD/imap.tar.Z + ( cd imap-2007f + chown -R root:root . + find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + + if [ "$ARCH" = "x86_64" ]; then + make slx EXTRACFLAGS="-fPIC -I/usr/include/openssl" + else + make slx EXTRACFLAGS="-I/usr/include/openssl" + fi + ) + CONFIGURE_OPTS="--with-imap=$TMP/$IMAPDIR" +fi + tar xvf $CWD/$PRGNAM-$VERSION.tar.gz cd $PRGNAM-$VERSION chown -R root:root . @@ -67,9 +107,9 @@ find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ -o -perm 511 \) -exec chmod 755 {} \; -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -CFLAGS="$SLKCFLAGS -fgnu89-inline" \ +CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ @@ -77,40 +117,93 @@ CXXFLAGS="$SLKCFLAGS" \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ + $CONFIGURE_OPTS \ --build=$ARCH-slackware-linux -make menuselect.makeopts -make +( cd menuselect + make menuselect +) +make menuselect-tree + +menuselect/menuselect \ + --enable res_config_mysql \ + menuselect.makeopts -if [ "$ADDONS" = "yes" ]; then - # Select some addons (the list is actualy inverted, and deselected addons are shown here) - sed -i -e 's/^MENUSELECT_ADDONS=.*$/MENUSELECT_ADDONS=app_saycountpl chan_mobile chan_ooh323 format_mp3/' \ +# +# Did asterisk menuselect discover the pjsip library? +if [ "$(menuselect/menuselect --list-options menuselect.makeopts | grep -c '+ res_pjsip')" -gt 0 ]; then + # + # Asterisk menuselect discovered the pjsip library and is trying to use it. + # Need to modify header file so asterisk will build properly. + sed -i -r \ + -e "s/\/\*\s+#undef\s+(HAVE_PJ_TRANSACTION_GRP_LOCK)\s+\*\//#define \1 1/" \ + include/asterisk/autoconfig.h +fi + +if [ "${MOH:-no}" != "no" ]; then + menuselect/menuselect \ + --enable MOH-OPSOUND-ULAW \ + --enable MOH-OPSOUND-ALAW \ + --enable MOH-OPSOUND-GSM \ + --enable MOH-OPSOUND-G729 \ menuselect.makeopts - make addons DESTDIR=$PKG fi +if [ "${SOUNDS_EXTRA:-no}" != "no" ]; then + menuselect/menuselect \ + --enable EXTRA-SOUNDS-EN-WAV \ + --enable EXTRA-SOUNDS-EN-ULAW \ + --enable EXTRA-SOUNDS-EN-ALAW \ + --enable EXTRA-SOUNDS-EN-GSM \ + --enable EXTRA-SOUNDS-EN-G729 \ + menuselect.makeopts +fi + +if [ "${VM_ODBC:-no}" != "no" ]; then + menuselect/menuselect \ + --enable ODBC_STORAGE \ + menuselect.makeopts +elif [ "$VM_IMAP" != "no" ]; then + menuselect/menuselect \ + --enable IMAP_STORAGE \ + menuselect.makeopts +fi + +if [ "${MEETME:-no}" != "no" ]; then + menuselect/menuselect \ + --enable app_meetme \ + menuselect.makeopts +fi + +if [ "${G711_NEW:-no}" != "no" ]; then + menuselect/menuselect \ + --enable G711_NEW_ALGORITHM \ + menuselect.makeopts +fi + +make make installdirs DESTDIR=$PKG make samples DESTDIR=$PKG make install DESTDIR=$PKG +make install-logrotate DESTDIR=$PKG -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -gzip -9 $PKG/usr/man/man?/*.? +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done -# Logrotate script -mkdir -p $PKG/etc/logrotate.d -install -m 0644 $CWD/logrotate.asterisk $PKG/etc/logrotate.d/asterisk.new +mv $PKG/etc/logrotate.d/asterisk $PKG/etc/logrotate.d/asterisk.new mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/sample_confs mv $PKG/etc/asterisk/* $PKG/usr/doc/$PRGNAM-$VERSION/sample_confs/ -cp -a CHANGES COPYING CREDITS ChangeLog LICENSE README UPGRADE.txt doc/ \ +cp -a CHANGES COPYING CREDITS ChangeLog LICENSE README* UPGRADE* doc/ contrib/ast-db-manage \ $PKG/usr/doc/$PRGNAM-$VERSION/ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild # Install a few typical config files for common asterisk servers for i in \ - asterisk codecs extensions iax indications musiconhold sip modules ; + asterisk codecs extensions iax indications musiconhold sip modules voicemail ; do cat $PKG/usr/doc/$PRGNAM-$VERSION/sample_confs/${i}.conf > \ $PKG/etc/asterisk/${i}.conf.new ; @@ -122,10 +215,23 @@ install -m 0755 contrib/init.d/rc.slackware.asterisk $PKG/etc/rc.d/rc.asterisk.n # Fix pid file location in rc script sed -i 's/asterisk.pid/asterisk\/asterisk.pid/' $PKG/etc/rc.d/rc.asterisk.new +# Set file ownership +chown -R $ASTERISKUSR:$ASTERISKGRP $PKG/usr/lib${LIBDIRSUFFIX} +chown -R $ASTERISKUSR:$ASTERISKGRP $PKG/var/lib/asterisk +chown -R $ASTERISKUSR:$ASTERISKGRP $PKG/var/spool/asterisk +chown -R $ASTERISKUSR:$ASTERISKGRP $PKG/var/log/asterisk +chown -R $ASTERISKUSR:$ASTERISKGRP $PKG/var/run/asterisk +chown $ASTERISKUSR:$ASTERISKGRP $PKG/usr/sbin/asterisk + +# The following permissions are a bit weird; if you have the voicemail config +# file needs to writeable by the asterisk user otherwise password changes aren't +# preserved +chown -R root:$ASTERISKGRP $PKG/etc/asterisk +chmod 664 $PKG/etc/asterisk/voicemail.conf.new + mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG -chown -R root:root . # Some files have improper ownership /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/network/asterisk/asterisk.info b/network/asterisk/asterisk.info index aad768c400..3fdd6b0073 100644 --- a/network/asterisk/asterisk.info +++ b/network/asterisk/asterisk.info @@ -1,10 +1,12 @@ PRGNAM="asterisk" -VERSION="1.8.24.0" +VERSION="13.20.0" HOMEPAGE="http://www.asterisk.org" -DOWNLOAD="http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.24.0.tar.gz" -MD5SUM="9baf82b95fc3f0b2c720d5b237ea4e54" +DOWNLOAD="http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.20.0.tar.gz \ + https://www.mirrorservice.org/sites/ftp.cac.washington.edu/imap/imap.tar.Z" +MD5SUM="2d97a2cdee95abe80504475b7dc0073e \ + d9f7fd4e1d93ad9fca1df8717a79d1c5" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="" -MAINTAINER="Mario Preksavec" -EMAIL="mario at slackware dot hr" +REQUIRES="jansson" +MAINTAINER="Christopher Walker" +EMAIL="kris240376@gmail.com" diff --git a/network/asterisk/logrotate.asterisk b/network/asterisk/logrotate.asterisk deleted file mode 100644 index f2281a71bc..0000000000 --- a/network/asterisk/logrotate.asterisk +++ /dev/null @@ -1,8 +0,0 @@ -/var/log/asterisk/messages /var/log/asterisk/*log { - missingok - rotate 5 - weekly - postrotate - /usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null - endscript -} diff --git a/network/asterisk/slack-desc b/network/asterisk/slack-desc index 0524ee552a..86e030876d 100644 --- a/network/asterisk/slack-desc +++ b/network/asterisk/slack-desc @@ -8,12 +8,12 @@ |-----handy-ruler------------------------------------------------------| asterisk: asterisk (Asterisk Open Source PBX) asterisk: -asterisk: Asterisk is an Open Source PBX and telephony toolkit. It is, in a -asterisk: sense, middleware between Internet and telephony channels on the -asterisk: bottom, and Internet and telephony applications at the top. -asterisk: -asterisk: Homepage: http://www.asterisk.org/ -asterisk: -asterisk: +asterisk: Asterisk is an open source framework for building communications +asterisk: applications. Asterisk turns an ordinary computer into a +asterisk: communications server. Asterisk powers IP PBX systems, VoIP gateways, +asterisk: conference servers and other custom solutions. It is used by small +asterisk: businesses, large businesses, call centers, carriers and government +asterisk: agencies, worldwide. Asterisk is free and open source. Asterisk is +asterisk: sponsored by Digium. asterisk: asterisk: |