#!/bin/bash

# test command line
if [ $# -eq 0 ]
then
        echo "Usage: $0 [option:get/unpack/patchall/patch_app_pickup2/patch_app_spandsp/build-mpg123/build]"
        exit 1
fi

INSTALLDIR=/usr/src/asterisk
BLUECROWURL=http://files.bluecrow.net/asterisk

ASTERISKVER=1.2.17
ZAPTELVER=1.2.16
LIBPRIVER=1.2.4
ADDONSVER=1.2.5
SOUNDSVER=1.2.1

ASTERISKFILE=asterisk-$ASTERISKVER.tar.gz
ZAPTELFILE=zaptel-$ZAPTELVER.tar.gz
LIBPRIFILE=libpri-$LIBPRIVER.tar.gz
ADDONSFILE=asterisk-addons-$ADDONSVER.tar.gz
SOUNDSFILE=asterisk-sounds-$SOUNDSVER.tar.gz

ASTERISK=http://ftp.digium.com/pub/asterisk/releases/$ASTERISKFILE
ZAPTEL=http://ftp.digium.com/pub/zaptel/releases/$ZAPTELFILE
LIBPRI=http://ftp.digium.com/pub/libpri/releases/$LIBPRIFILE
ADDONS=http://ftp.digium.com/pub/asterisk/releases/$ADDONSFILE
SOUNDS=http://ftp.digium.com/pub/asterisk/releases/$SOUNDSFILE

MPG123=mpg123-0.59r-gpl.tar.gz
TDMOEPATCH=tdmoe-patch

DEPS=current-deps
INIT=current-init

APPPICKUP2=app_pickup2.c-20060119

SPANDSP=http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre26/spandsp-0.0.2pre26.tar.gz
RXFAX=http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre26/asterisk-1.2.x/app_rxfax.c
TXFAX=http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre26/asterisk-1.2.x/app_txfax.c
MFPATCH=http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre26/asterisk-1.2.x/apps_Makefile.patch

RETVAL=0

function download {
	wget $ASTERISK $ZAPTEL $LIBPRI $ADDONS $SOUNDS
	wget $BLUECROWURL/$MPG123
	wget $BLUECROWURL/$TDMOEPATCH
	wget $BLUECROWURL/$DEPS $BLUECROWURL/$INIT
	wget $BLUECROWURL/$APPPICKUP2
	wget $SPANDSP $RXFAX $TXFAX $MFPATCH
}

function unpack {
	for i in *.tar.gz; do tar zxvf $i; done
}

function installinits {
	cp -a zaptel-$ZAPTELVER/zaptel.init /etc/init.d/zaptel
	cp -a asterisk-$ASTERISKVER/contrib/init.d/rc.redhat.asterisk /etc/init.d/asterisk
	echo 'TELEPHONY="yes"' >> /etc/sysconfig/zaptel
	echo 'MODULES="ztdummy"' >> /etc/sysconfig/zaptel
	chmod 755 /etc/init.d/zaptel /etc/init.d/asterisk

	chkconfig zaptel on
	chkconfig asterisk on
}

function patch_app_pickup2 {
	cp -a $APPPICKUP2 asterisk-$ASTERISKVER/apps/app_pickup2.c
	vi asterisk-$ASTERISKVER/apps/Makefile
}

function patch_app_spandsp {
                mv app_rxfax.c asterisk-$ASTERISKVER/apps/
                mv app_txfax.c asterisk-$ASTERISKVER/apps/

                pushd asterisk-$ASTERISKVER/apps/
                patch -p0 < ../../apps_Makefile.patch
                popd

                echo
                echo
                echo asterisk-$ASTERISKVER/apps/Makefile is now patched for spandsp apps
                echo
                echo
}

function build-mpg123 {
	pushd mpg123-0.59r-gpl
	make linux
	make install
	popd
}

function build {
	cd spandsp-0.0.2
	./configure
	make
	make install
	ldconfig

	cd ../zaptel-$ZAPTELVER
	make linux26
	make install

	cd ../libpri-$LIBPRIVER
	make
	make install

	cd ../asterisk-$ASTERISKVER
	make
	make install

	cd ../asterisk-addons-$ADDONSVER
	make
	make install

	cd ../asterisk-sounds-$SOUNDSVER
	make install

	cd ..
}

case $1 in
#	all)
#		download
#		unpack
#		installinits
#		patch_app_pickup2
#		patch_app_spandsp
#	;;
	get)
		download

		echo
		echo
		echo now unpack
		echo
		echo
	;;
	unpack)
		unpack

                echo
                echo
                echo now patch_app_pickup2
                echo
                echo
	;;
	patch_app_pickup2)
		patch_app_pickup2

                echo
                echo
                echo now patch_app_spandsp
                echo
                echo
	;;
	patch_app_spandsp)
		patch_app_spandsp

                echo
                echo
                echo "Add the line CFLAGS+=-DMYSQL_LOGUNIQUEID to $ADDONSVER/Makefile"
		echo
		echo "then build away"
                echo
                echo
	;;
	patchall)
		patch_app_pickup2
		patch_app_spandsp
	;;
	build-mpg123)
		build-mpg123
	;;
	build)
                echo "Not implimented..."
	;;
	*)
                echo "Not implimented..."
	;;
esac

#echo "Add the line CFLAGS+=-DMYSQL_LOGUNIQUEID to $ADDONSVER/Makefile"

