#!/bin/bash

if [ -f /etc/image_features ] ; then
    . /etc/image_features
else
    echo
    echo
    echo Fatal error: Could not find 'image_features' file
    echo
    exit 1
fi

if [ -f /tmp/featurestatus.conf ] ; then
    . /tmp/featurestatus.conf
else
    echo
    echo
    echo Fatal error: Could not find 'featurestatus' file
    echo
    exit 1
fi

if [ "$SUBPRODUCT_TYPE" = QUADRO_A10_IPPBX ] && [ "$BOARD_ID" != "9" ] && [ "$BOARD_ID" != "10" ] && [ "$BOARD_ID" != "12" ] && [ "$BOARD_ID" != "13" ] ; then
	NUMBER_OF_FXO=$(/bin/cat /proc/fiad/fxo-number)
	NUMBER_OF_FXS=$(/bin/cat /proc/fiad/fxs-number)
	#QX50
	if [ "$NUMBER_OF_FXO" = "2" ] ; then
		CURRENT_ADD_IP_PHONES_COUNT=0
		if [ "$FEATURE_QXSC" = "1" ] ; then
			IPLINES_DEFAULT_COUNT=100
		else
			IPLINES_DEFAULT_COUNT=16
		fi
	#QX200
	elif [ "$NUMBER_OF_FXO" = "4" ] ; then
		IPLINES_DEFAULT_COUNT=24
		CURRENT_ADD_IP_PHONES_COUNT=176
	#QX80
	elif [ -r /proc/fiad/fxo-number ] && [ "$NUMBER_OF_FXS" = "8" ] ; then
		IPLINES_DEFAULT_COUNT=40
		CURRENT_ADD_IP_PHONES_COUNT=152
	#QXISDNPBX
	elif [ -r /proc/fiad/fxo-number ] &&  [ "$NUMBER_OF_FXS" != "8" ] ; then
		IPLINES_DEFAULT_COUNT=16
		CURRENT_ADD_IP_PHONES_COUNT=32
	else
		IPLINES_DEFAULT_COUNT=16
		CURRENT_ADD_IP_PHONES_COUNT=32
	fi

	if [ -f /etc/fiad-conf/telephony/ipphones_count ] ; then
		. /etc/fiad-conf/telephony/ipphones_count
	fi

	if [ $((CURRENT_ADD_IP_PHONES_COUNT+IPLINES_DEFAULT_COUNT)) -le $((SEC_NUM_ADD_IP_PHONES+IPLINES_DEFAULT_COUNT)) ] ; then
		moveup=""
	else
		moveup="moveup"
	fi
	/bin/setsid /bin/iplinextnd old $((CURRENT_ADD_IP_PHONES_COUNT+IPLINES_DEFAULT_COUNT)) $moveup
	echo "CURRENT_ADD_IP_PHONES_COUNT=$SEC_NUM_ADD_IP_PHONES" > /etc/fiad-conf/telephony/ipphones_count
fi

if [ "$BOARD_ID" = "9" ] || [ "$BOARD_ID" = "10" ] || [ "$BOARD_ID" = "12" ] || [ "$BOARD_ID" = "13" ] ; then
	CURRENT_ADD_IP_PHONES_COUNT=0
	if [ "$FEATURE_ISERV" = "1" ] ; then
		IPLINES_DEFAULT_COUNT=16
	elif [ "$FEATURE_QXSC" = "1" ] ; then
		IPLINES_DEFAULT_COUNT=100
	else
		IPLINES_DEFAULT_COUNT=12
	fi
	if [ "$BOARD_ID" = "10" ]; then
		if [ "$FEATURE_QXSC" = "1" ] ; then
			IPLINES_DEFAULT_COUNT=100
		else
			IPLINES_DEFAULT_COUNT=100
		fi
	fi

	if [ "$BOARD_ID" = "12" ]; then
		if [ "$FEATURE_QXSC" = "1" ] ; then
			IPLINES_DEFAULT_COUNT=100
		else
			IPLINES_DEFAULT_COUNT=24
		fi
	fi

	if [ "$BOARD_ID" = "13" ]; then
		VER_MAX=6.4.20
		if [ "$CONFIG_LABEL_OLD" != "1" ] && [ $(ver $CONFIG_LABEL_OLD) -lt $(ver $VER_MAX) ]; then
			IPLINES_DEFAULT_COUNT=24
		else
			if [ "$FEATURE_QXSC" = "1" ] ; then
				IPLINES_DEFAULT_COUNT=100
			else
				IPLINES_DEFAULT_COUNT=32
			fi
		fi
	fi

	if [ -f /etc/fiad-conf/telephony/ipphones_count ] ; then
		. /etc/fiad-conf/telephony/ipphones_count
	fi

	if [ $((CURRENT_ADD_IP_PHONES_COUNT+IPLINES_DEFAULT_COUNT)) -le $((SEC_NUM_ADD_IP_PHONES+IPLINES_DEFAULT_COUNT)) ] ; then
		moveup=""
	else
		moveup="moveup"
	fi
	/bin/setsid /bin/iplinextnd old $((CURRENT_ADD_IP_PHONES_COUNT+IPLINES_DEFAULT_COUNT)) $moveup
	echo "CURRENT_ADD_IP_PHONES_COUNT=$SEC_NUM_ADD_IP_PHONES" > /etc/fiad-conf/telephony/ipphones_count
fi

if [ "$PRODUCT_CLASS" = "PRODUCT_CLASS_PSTN_GATEWAY" ] && [ "$FEATURE_SIP_LINES" = "1" ] ; then
	if [ "$SEC_NUM_ADD_IP_PHONES" = "0" ] ; then
		echo "IP PHONE Feature is not installed"
	else
		IS_IPLINE_ALREADY_ENABLED=$(/bin/cat /etc/fiad-conf/telephony/linedb | grep line_ip5{)
		if [ "$IS_IPLINE_ALREADY_ENABLED" != "section line_ip5{" ] ; then
			/bin/cp -f /epygi/etc/default-conf/telephony/gw-iplines/* /mnt/flashfs/configs/current/telephony
		else
			if [ "$SUBPRODUCT_TYPE" != QUADRO_A10_E1T1GW ] ; then
				IS_IPLINE_ALREADY_ENABLED=$(/bin/cat /etc/fiad-conf/telephony/linedb | grep line_ip50{)
				if [ "$IS_IPLINE_ALREADY_ENABLED" != "section line_ip50{" ] ; then
#in case when 48 IP lines added on Gateway previously before 6.2.37 version
					CURRENT_ADD_IP_PHONES_COUNT=48
					MAX_IP_PHONES_COUNT=200
					LINEDB_FILE_NAME="/etc/fiad-conf/telephony/linedb"
					CHIELD_EXT_COUNT=$(cat /etc/telephony/linedb | grep -e "line_sub_type=1" -e "line_sub_type=2" | wc -l)
					while [ $((CURRENT_ADD_IP_PHONES_COUNT)) != $((MAX_IP_PHONES_COUNT)) ] ; do
#Add IP lines in linedb
						echo "section line_ip"$((CURRENT_ADD_IP_PHONES_COUNT+CHIELD_EXT_COUNT+1))"{" >>$LINEDB_FILE_NAME
						echo "gateway_id=7777777" >>$LINEDB_FILE_NAME
						echo "line_id="$((CURRENT_ADD_IP_PHONES_COUNT+CHIELD_EXT_COUNT)) >>$LINEDB_FILE_NAME
						echo "user_presentation_id="$((CURRENT_ADD_IP_PHONES_COUNT+CHIELD_EXT_COUNT+1)) >>$LINEDB_FILE_NAME
						echo "line_name=" >>$LINEDB_FILE_NAME
						echo "extension=" >>$LINEDB_FILE_NAME
						echo "}" >>$LINEDB_FILE_NAME
						CURRENT_ADD_IP_PHONES_COUNT=$((CURRENT_ADD_IP_PHONES_COUNT+1))
					done
				fi
			fi
		fi
	fi
fi

