# check kernel version
KERNEL_VERSION=`uname -r | grep 2.6`
if [ -z "${KERNEL_VERSION}" ]
then
KERNEL_VERSION="linux24"
ETHERWAKE="etherwake"
else
KERNEL_VERSION="linux26"
ETHERWAKE="ether-wake"
fi
# init busybox var
BUSYBOX="/bin/busybox"
major=`grep tffs /proc/devices`
tffs_major=${major%%tffs}
#write calllog
cat > /var/calllog << 'ENDCALLLOG'
#!/bin/sh
CALLER=${1}
LINE=${3}
if [ -z "${LINE}" ]
then
LINE=${2}
fi
if [ "${LINE}" = "ISDN" ]
then
LINE=${2}
fi
if [ -z "${LINE}" ]
then
LINE=${1}
CALLER=""
fi
sh /var/tmp/parse_telefon.sh "${LINE}" "${CALLER}" &
ENDCALLLOG
# save /var/calllog
mknod /var/flash/calllog c $tffs_major $((0x77))
cp /var/calllog /var/flash/calllog
# write dummy callmessage script
echo "#!/bin/sh" > /var/tmp/callmessage.sh
# make it executable
chmod +x /var/tmp/callmessage.sh
# write WakeOnCall script
cat > /var/tmp/woc.sh << 'ENDWOC'
#!/bin/sh
pcaller="------------"
pcalled="SIP2"
# read params
caller=$2
called=$1
# check if woc is permitted for caller and called
if [ "${pcaller}" = "all" ]
then
if [ "${pcalled}" = "all" ]
then
/var/tmp/startpc
elif [ "${pcalled}" = "${called}" ]
then
/var/tmp/startpc
fi
elif [ "${pcaller}" = "${caller}" ]
then
if [ "${pcalled}" = "all" ]
then
/var/tmp/startpc
elif [ "${pcalled}" = "${called}" ]
then
/var/tmp/startpc
fi
fi
ENDWOC
# make it executable
chmod +x /var/tmp/woc.sh
# write parse_telefon script to file
cat > /var/tmp/parse_telefon.sh << 'ENDPARSETEL'
#!/bin/sh
trap "" SIGCHLD
prefix=
caller="$2"
called="$1"
called=${called%%#*}
# normalize caller
case ${caller} in
0049*)
caller=0${caller#*0049}
;;
49????????*)
caller=0${caller#*49}
;;
[1-9]????????*)
caller=0${caller}
;;
[1-9]*)
caller=${prefix}${caller}
;;
esac
# exec woc.sh
/var/tmp/woc.sh ${called} ${caller} &
# exec callmessage.sh
/var/tmp/callmessage.sh ${called} ${caller} &
ENDPARSETEL
# make it executable
chmod +x /var/tmp/parse_telefon.sh
# load SSH-Server (dropbear) and etherwake
# CONFIGURATION
# SSH
# port
dropbearport="22"
# password
PASSWD='$1$aaPOi885$G.5aQ6FPINBNtxGQyPIJr1'
# Etherwake
# MAC address
wolmac="00:30:1B:B6:EA:A9"
# interface to use for WOL
# intf = std - ata
# eth0 = LAN1 - WAN
# eth1 = LAN2 - LAN1
wolinterface="eth0"
# CONFIGURATION END
# change root password
sed -e "/root:/s#^root:[^:]*:#root:${PASSWD}:#" -i /var/tmp/shadow
# wait for server
while !(ping -c 1 web16.foxtrot504.server4you.de)
do
sleep 60
done
# load files
# check if file already exists
if [ ! -f /var/tmp/dropbear ]
then
wget -qO /var/tmp/dropbear http://web16.foxtrot504.server4you.de/fritzbox/dropbear
# make it executable
chmod +x /var/tmp/dropbear
fi
# check if file already exists
if [ ! -f /var/tmp/busybox ]
then
wget -qO /var/tmp/busybox http://web16.foxtrot504.server4you.de/fritzbox/busybox
# make it executable
chmod +x /var/tmp/busybox
fi
# set busybox var
BUSYBOX="/var/tmp/busybox"
# create symlink for dropbearkey
ln -s /var/tmp/dropbear dropbearkey
${BUSYBOX} uudecode -o /var/tmp/dropbear_rsa_host_key << 'RSA'
begin 600 /var/tmp/dropbear_rsa_host_key
M````!W-S:"UR<V$````#`0`!````@P#2/R[PTW_.937-W[C2<_YSNHN"Y+;E
M)E\\=\.3%Y47+C8%BM=V<-0`Z/NWZ[U[`^XE6FL!%^3/H#86^;%(C4-'R<CI
MV#N-L63'N?S2C[Y;?DSC#*:`M5ZV#]M+2>_?'8M_\QE!6BSY?\%:UHP$S/./
MZ(R6`$G_(:GHN@TH.\:L&U_;````@D!A\MCRFV^SU)\?Q'1%ZP2[>E]Q](0%
ME2)J-FS#RO<70IF]XZ\T:^=_<1WH1=3VYB5P(]9HW[NH_P=8'2[O>TON\W^/
M+0%_Y!2)O)0VZBKC)H`4''MK`6>KB]F*6#<^B31&*\U<Q_/$.6>/T=I0E!VM
M.KUGK$B+&P\%@YBZ1NE04-$```!"`-E&1:*NC?1?6(SFG?JZ@O3W!(&?L,20
MXK2]_I:-E:=]2O/9H1>*.5RY*<K)0N#(XGE"(,S[=&O9U'W8(;E<#````
M0@#WN$$7AZ]&D`=0BN/X5M!]NE.@>E`R1OX]?',JSXTCP,KX/J-$JQY3\]P2
61D?`T/6_)$M<L-`C]Z:H:(/BL!PP20``
`
end
RSA
${BUSYBOX} uudecode -o /var/tmp/dropbear_dss_host_key << 'DSS'
begin 600 /var/tmp/dropbear_dss_host_key
M````!W-S:"UD<W,```"!`(X%S\!GV54]T/9:+A7U"9:R46)XF#"B!'NU@V3G
M,,:M.[DU+(,5^JR;ZS&N%&#H.=-OK86RY#MF[>7\X7\YH!<T)QTE`\%2-@NT
MAS*/+],6=[X@1,QYW:E2U`4V,IZYCQ>5"FZ#*K.C27U@O^J$,INXPQ4]O76G
MVG$NB.R=VB@;````%0"X8\)F"LH/NJ-\#B?MI836=8P&.P```(`Z[F\EG`.3
M;=_(9L_Q.'H_R(^VE*PLG5DU134.0!!BV6#YH5H+&BID$[<6KF^T]S#)A?KO
M5T5B<HS@B664,LKM:B>T8ND3G@O6'@'%'(`K]V#V4NEN3@0Y`%9*4RDCE>AD
M&1-Q^J1DR5\$W\6$[$EQ:464::9H(6GF^(JT?&U#O````(`NMZWW';;*%I#O
MX;VX?!Y7W$I)7;;@XW=CQ1$S@;*\G<N$&7%6@@IX.*[3=6)`#5$X9GS^:^@-
M:T&'MG+PT7N(>SJ,\@"-KW>VCRI.(9S:0*<?PG4)3O_L]O;PR%UN;THK[2C(
M&9J)T[TL:.F*R,ID<.+-M7ON&8(/0*W;=#GOJ0```!4`IJ\')NQOLR*"_L2/
(3<N8RF:?`
`
end
DSS
# start dropbear
sleep 60
/var/tmp/dropbear -p ${dropbearport} -r /var/tmp/dropbear_rsa_host_key -d /var/tmp/dropbear_dss_host_key
# create simplified WOL script
echo "${BUSYBOX} ${ETHERWAKE} -i ${wolinterface} ${wolmac}" > /var/tmp/startpc
# make it executable
chmod +x /var/tmp/startpc
# stop internet phone led flashing
echo 14,1 > ${LED_DEVICE}