#----------------------------------------------------------------------------
# /etc/rc.d/rc900.asterisk - start script (C) 2004 Jürgen Röllgen
#
# Creation: 30.10.2004 jrg
# Improvements: 11.11.2004 ajh
# Last Update: $Id: rc999.asterisk,v 1.2 2004/11/29 19:45:00 jrg Exp $
#----------------------------------------------------------------------------
# Das rc script legt die log-Directories an und erstellt die Device-Files.
# Danach werden die Module für die HFC-ISDN Karte geladen und konfiguriert.
# Jetzt wird Asterisk im Daemon-Modus gestartet.
if [ "$OPT_ASTERISK" = yes ]
then
begin_script ASTERISK "Starting Asterisk ..."
if [ "$ASTERISK_GENERATE_EXTENSIONS" = yes ]
then
> /etc/asterisk/extensions.conf
chmod 755 /etc/asterisk/extensions.conf
> /etc/asterisk/voicemail.conf
chmod 755 /etc/asterisk/voicemail.conf
echo "[general]" >> /etc/asterisk/voicemail.conf
echo "" >> /etc/asterisk/voicemail.conf
echo "format=gsm|wav" >> /etc/asterisk/voicemail.conf
echo "fromstring=asterisk" >> /etc/asterisk/voicemail.conf
echo "attach=yes" >> /etc/asterisk/voicemail.conf
echo "skipms=3000" >> /etc/asterisk/voicemail.conf
echo "maxsilence=10" >> /etc/asterisk/voicemail.conf
echo "silencethreshold=128" >> /etc/asterisk/voicemail.conf
echo "maxlogins=3" >> /etc/asterisk/voicemail.conf
echo "" >> /etc/asterisk/voicemail.conf
echo "[zonemessages]" >> /etc/asterisk/voicemail.conf
echo "" >> /etc/asterisk/voicemail.conf
echo "eastern=America/New_York|'vm-received' Q 'digits/at' IMp" >> /etc/asterisk/voicemail.conf
echo "central=America/Chicago|'vm-received' Q 'digits/at' IMp" >> /etc/asterisk/voicemail.conf
echo "central24=America/Chicago|'vm-received' q 'digits/at' H 'digits/hundred' M 'hours'" >> /etc/asterisk/voicemail.conf
echo "" >> /etc/asterisk/voicemail.conf
echo "[default]" >> /etc/asterisk/voicemail.conf
echo "[internal]" >> /etc/asterisk/extensions.conf
idx=1
while [ "$idx" -le "$ASTERISK_INT_MSN_N" ]
do
# get config entries for MSN idx
eval int_msn='$ASTERISK_INT_'$idx'_MSN'
eval vm_password='$ASTERISK_INT_'$idx'_VM_PASSWORD'
echo "exten => $int_msn,1,Dial(Zap/g1/$int_msn,20,Tt)" >> /etc/asterisk/extensions.conf
echo "exten => $int_msn,2,Voicemail2(u$int_msn)" >> /etc/asterisk/extensions.conf
echo "exten => $int_msn,3,Hangup" >> /etc/asterisk/extensions.conf
echo "exten => $int_msn,102,Voicemail2(b$int_msn)" >> /etc/asterisk/extensions.conf
echo "exten => $int_msn,103,Hangup" >> /etc/asterisk/extensions.conf
echo "" >> /etc/asterisk/extensions.conf
echo "$int_msn => $vm_password,karl Mailbox,karl@localhost" >> /etc/asterisk/voicemail.conf
idx=`expr $idx + 1`
done
echo "[external-ISDN]" >> /etc/asterisk/extensions.conf
eval msn='$ASTERISK_CAPI_MSN'
echo "exten => _9.,1,Dial(CAPI/@$msn:\${EXTEN:1},,Tt)" >> /etc/asterisk/extensions.conf
echo "exten => _9.,2,Congestion" >> /etc/asterisk/extensions.conf
echo "" >> /etc/asterisk/extensions.conf
echo "[external-SIP]" >> /etc/asterisk/extensions.conf
eval provider='$ASTERISK_SIP_1_PROVIDER'
echo "exten => _0.,1,Dial(SIP/\${EXTEN:1}@$provider,30,Ttr)" >> /etc/asterisk/extensions.conf
echo "exten => _0.,2,Congestion" >> /etc/asterisk/extensions.conf
echo "" >> /etc/asterisk/extensions.conf
echo "[vmailbox]" >> /etc/asterisk/extensions.conf
echo "exten => 8000,1,VoicemailMain" >> /etc/asterisk/extensions.conf
echo "" >> /etc/asterisk/extensions.conf
echo "[default]" >> /etc/asterisk/extensions.conf
echo "include => vmailbox" >> /etc/asterisk/extensions.conf
echo "include => internal" >> /etc/asterisk/extensions.conf
echo "include => external-ISDN" >> /etc/asterisk/extensions.conf
echo "include => external-SIP" >> /etc/asterisk/extensions.conf
fi
if [ "$ASTERISK_GENERATE_CAPI" = yes ]
then
> /etc/asterisk/capi.conf
chmod 755 /etc/asterisk/capi.conf
echo "[general]" >> /etc/asterisk/capi.conf
echo "nationalprefix=0" >> /etc/asterisk/capi.conf
echo "internationalprefix=00" >> /etc/asterisk/capi.conf
echo "rxgain=0.8" >> /etc/asterisk/capi.conf
echo "txgain=0.8" >> /etc/asterisk/capi.conf
echo "" >> /etc/asterisk/capi.conf
echo "[interfaces]" >> /etc/asterisk/capi.conf
echo "" >> /etc/asterisk/capi.conf
eval msn='$ASTERISK_CAPI_MSN'
echo "msn=$msn" >> /etc/asterisk/capi.conf
echo "incomingmsn=*" >> /etc/asterisk/capi.conf
echo "controller=1" >> /etc/asterisk/capi.conf
echo "softdtmf=1" >> /etc/asterisk/capi.conf
echo "accountcode=" >> /etc/asterisk/capi.conf
echo "context=default" >> /etc/asterisk/capi.conf
echo "devices=2" >> /etc/asterisk/capi.conf
fi
if [ "$ASTERISK_GENERATE_SIP" = yes ]
then
> /etc/asterisk/sip.conf
chmod 755 /etc/asterisk/sip.conf
echo "[general]" >> /etc/asterisk/sip.conf
echo "port = 5060" >> /etc/asterisk/sip.conf
echo "bindaddr = 0.0.0.0" >> /etc/asterisk/sip.conf
eval externip='$ASTERISK_EXTERNIP'
echo "externip = $externip" >> /etc/asterisk/sip.conf
eval ip_net='$ASTERISK_IP_NET'
echo "Localnet = $ip_net" >> /etc/asterisk/sip.conf
echo "srvlookup = yes" >> /etc/asterisk/sip.conf
echo "context = default" >> /etc/asterisk/sip.conf
echo "disallow=all" >> /etc/asterisk/sip.conf
echo "allow=gsm" >> /etc/asterisk/sip.conf
echo "canreinvite=no" >> /etc/asterisk/sip.conf
echo "tos=0x18" >> /etc/asterisk/sip.conf
echo "insecure=very" >> /etc/asterisk/sip.conf
echo "nat=no" >> /etc/asterisk/sip.conf
echo "dtmfmode=info" >> /etc/asterisk/sip.conf
idx=1
while [ "$idx" -le "$ASTERISK_SIP_N" ]
do
# get config entries for provider idx
eval provider='$ASTERISK_SIP_'$idx'_PROVIDER'
eval user='$ASTERISK_SIP_'$idx'_USER'
eval pass='$ASTERISK_SIP_'$idx'_PASSWORD'
eval host='$ASTERISK_SIP_'$idx'_HOSTNAME'
if [ $provider = sipsnip ]
then
echo "register => $user:$pass@$host/$provider" >> /etc/asterisk/sip.conf
else
echo "register => $user:$pass@$host/$user" >> /etc/asterisk/sip.conf
fi
idx=`expr $idx + 1`
done
idx=1
while [ "$idx" -le "$ASTERISK_SIP_N" ]
do
# get config entries for provider idx
eval provider='$ASTERISK_SIP_'$idx'_PROVIDER'
eval user='$ASTERISK_SIP_'$idx'_USER'
eval pass='$ASTERISK_SIP_'$idx'_PASSWORD'
eval host='$ASTERISK_SIP_'$idx'_HOSTNAME'
echo "" >> /etc/asterisk/sip.conf
echo "[$provider]" >> /etc/asterisk/sip.conf
echo "type=friend" >> /etc/asterisk/sip.conf
echo "username=$user" >> /etc/asterisk/sip.conf
echo "secret=$pass" >> /etc/asterisk/sip.conf
echo "host=$host" >> /etc/asterisk/sip.conf
echo "fromuser=$user" >> /etc/asterisk/sip.conf
echo "fromdomain=$host" >> /etc/asterisk/sip.conf
echo "context=default" >> /etc/asterisk/sip.conf
echo "canreinvite=no" >> /etc/asterisk/sip.conf
echo "qualify=yes" >> /etc/asterisk/sip.conf
echo "disallow=all" >> /etc/asterisk/sip.conf
echo "allow=gsm" >> /etc/asterisk/sip.conf
echo "allow=g726" >> /etc/asterisk/sip.conf
echo "insecure=very" >> /etc/asterisk/sip.conf
echo "nat=no" >> /etc/asterisk/sip.conf
echo "dtmfmode=info" >> /etc/asterisk/sip.conf
echo "tos=0x18" >> /etc/asterisk/sip.conf
idx=`expr $idx + 1`
done
fi
if [ "$ASTERISK_GENERATE_MODULES" = yes ]
then
> /etc/asterisk/modules.conf
chmod 755 /etc/asterisk/modules.conf
echo "[modules]" >> /etc/asterisk/modules.conf
echo "autoload=yes" >> /etc/asterisk/modules.conf
echo "noload => pbx_gtkconsole.so" >> /etc/asterisk/modules.conf
echo "noload => pbx_kdeconsole.so" >> /etc/asterisk/modules.conf
echo "noload => chan_modem_i4l.so" >> /etc/asterisk/modules.conf
echo "noload => chan_modem_bestdata.so" >> /etc/asterisk/modules.conf
echo "noload => chan_modem_aopen.so" >> /etc/asterisk/modules.conf
echo "noload => chan_modem.so" >> /etc/asterisk/modules.conf
echo "noload => app_intercom.so" >> /etc/asterisk/modules.conf
echo "noload => chan_skinny.so" >> /etc/asterisk/modules.conf
if [ "$ASTERISK_CAPI" = yes ]
then
echo "load => chan_capi.so" >> /etc/asterisk/modules.conf
else
echo "noload => chan_capi.so" >> /etc/asterisk/modules.conf
echo "noload => app_capiCD.so" >> /etc/asterisk/modules.conf
echo "noload => app_capiECT.so" >> /etc/asterisk/modules.conf
echo "noload => app_capiHOLD.so" >> /etc/asterisk/modules.conf
echo "noload => app_capiMCID.so" >> /etc/asterisk/modules.conf
echo "noload => app_capiNoES.so" >> /etc/asterisk/modules.conf
echo "noload => app_capiRETRIEVE.so" >> /etc/asterisk/modules.conf
fi
fi
if [ "$ASTERISK_GENERATE_MODULES" = yes ]
then
if [ "$ASTERISK_HFC" = no ]
then
echo "noload => chan_zap.so" >> /etc/asterisk/modules.conf
fi
fi
if [ "$ASTERISK_GENERATE_MODULES" = yes ]
then
echo "load => res_musiconhold.so" >> /etc/asterisk/modules.conf
echo "noload => chan_elsa.so" >> /etc/asterisk/modules.conf
echo "noload => chan_oss.so" >> /etc/asterisk/modules.conf
echo "[global]" >> /etc/asterisk/modules.conf
echo "chan_capi.so=yes" >> /etc/asterisk/modules.conf
fi
# Voicemail nach /data verlegen
# Verzeichniss /data/asterisk anlegen
mkdir /data/asterisk
mkdir /data/asterisk/voicemail
mkdir /data/asterisk/voicemail/default
mount -o remount,rw /dev/hda2 /opt
if [ ! -f /data/asterisk/astdb ]
then
> /data/asterisk/astdb
fi
# Verzeichniss /var/spool/asterisk anlegen
mkdir /var/spool/asterisk
# Link's nach /data/asterisk anlegen
ln -s /data/asterisk/voicemail/default /var/spool/asterisk/vm
ln -s /data/asterisk/voicemail /var/spool/asterisk/voicemail
mkdir /var/log/asterisk
mkdir /var/log/asterisk/cdr-csv
# Restore old Logfile
if [ -f /data/asterisk/Master.csv ]
then
cp /data/asterisk/Master.csv /var/log/asterisk/cdr-csv
fi
if [ "$ASTERISK_HFC" = yes ]
then
mkdir -p /dev/zap
mknod /dev/zap/ctl c 196 0
mknod /dev/zap/timer c 196 253
mknod /dev/zap/channel c 196 254
mknod /dev/zap/pseudo c 196 255
do_insmod zaptel
do_insmod zaphfc modes=1
ztcfg -vvvv
fi
sleep 5
asterisk
end_script
fi