function modem_data(){
	generic_data
	DATA=$(echo "$O" | grep -Ev '^$|^OK|^AT' | sort)
	MANUF=$(echo "$DATA" | awk 'c&&! --c;/ZRSSI/{c=4}')
	MODEL=$(echo "$DATA" | awk 'c&&! --c;/ZRSSI/{c=3}')
	FW=$(echo "$DATA" | awk '/CGMR/{print $2}')
	DEVICE="$MODEL"
	TECH=$(echo "$DATA" | awk -F [,] '/\+COPS/{print $NF}')
	ICCID=$(echo "$DATA" | awk '/ICCID:/{print $2}')
	IMSI=$(echo "$DATA" | awk 'c&&! --c;/ZRSSI/{c=1}')
	IMEI=$(echo "$DATA" | awk 'c&&! --c;/ZRSSI/{c=2}')
	REGST=$(echo "$DATA" | awk -F[,] '/\'$CREG'/ {print $2}')
	CHIPTEMP=$(echo "$DATA" | awk '/\+CPMUTEMP/{printf "%.0f\n", ($2/1000)}')
	EARFCN=$(echo "$DATA" | awk -F[,\ ] '/^\+CPSI/ {print $9}')

	case $TECH in
		0|1) MODE=GSM ;;
		2) MODE=WCDMA ;;
		3) MODE=EDGE ;;
		4) MODE=HSDPA ;;
		5) MODE=HSUPA ;;
		6) MODE=HSDPA,HSUPA ;;
		7|9) MODE=LTE ;;
		8) MODE=HSPA+ ;;
	esac
	
	case $TECH in
		7|9)
			PCI=$(echo "$DATA" | awk -F[,\ ] '/^\+CPSI/ {print $7}')
			BWDL=$(echo "$DATA" |awk -F[,\ ] '/^\+CPSI/ {print $10}')
			LAC=$(echo "$DATA" | awk -F [:,] '/\+CEREG/{gsub("\"","");print $4}')
			CID=$(echo "$DATA" | awk -F [:,] '/\+CEREG/{gsub("\"","");print $5}')
			ENBx=$(echo $CID | sed -e 's/..$//')
			ENBID=$(printf %d 0x$ENBx)
			CELL=$(printf %d 0x${CID: -2})
			CSQ_RSSI=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{print $4}')
			RSRQ=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{printf "%.0f\n", $3}')
			RSRP=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{printf "%.0f\n", $2}')
			SINR=$(echo "$DATA" | awk -F[,\ ] '/^\+CPSI/ {printf "%.0f\n", $15}')
			# Carrier Aggregation
			SCx1=$(echo "$DATA" | awk -F [\:\;] '/ZCAINFO/{print $3}')
			SCx2=$(echo "$DATA" | awk -F [\:\;] '/ZCAINFO/{print $4}')
			SCC1=$(echo $SCx1 | awk -F [,] '{print $2}')
			case $BWDL in
				1) BWCx=3 ;;
				2) BWCx=5 ;;
				3) BWCx=10 ;;
				4) BWCx=15 ;;
				5) BWCx=20 ;;
			esac
			if [ $SCC1 -ne 0 ]; then
				LTE_CA=1
				for a in "$SCx1 $SCx2"; do
					SCH=$(echo $a | awk -F[,] '{print $3}')
					SCC="$SCC+$SCH"
					SBW=$(echo $a | awk -F[,] '{print $5}')
					BWCx=$(($BWCx+$SBW))
				done
				BWCA=$((BWCx+BWCA))
			fi
		;;
		2|4|6|8)
			LAC=$(echo "$DATA" | awk -F [:,] '/\+CGREG/{gsub("\"","");print $4}')
			CID=$(echo "$DATA" | awk -F [:,] '/\+CGREG/{gsub("\"","");print $5}')
			CSQ_RSSI=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{print $2}')
			SINR=$(echo "$DATA" | awk -F [:,] '/\+ZRSSI/{printf "%.0f\n", $3}')
		;;
	esac
	if [ $(uci -q get modeminfo.@general[0].decimail) = "1" ]; then
                LAC=$(printf %d 0x$LAC)
                CID=$(printf %d 0x$CID)
        fi	
}
