#!/bin/bash #Variables ASTETC=/etc/asterisk ASTUSER=asterisk ASTGROUP=asterisk DEFCONTEXT=friends DEFVMCONTEXT=intern USERNAME=$2 BB=/dev/null VMHOME=/var/spool/asterisk/voicemail SNDHOME=/var/lib/asterisk/sounds if [ `which apg 2> $BB` ] then case $1 in add) if [ -z $USERNAME ] then read -p "Username: " USERNAME fi if `grep "username=$USERNAME" $ASTETC/sip.conf > $BB` then echo "Username $USERNAME already exists" exit fi read -p "Extension: " EXTENSION if `grep "exten => $EXTENSION" $ASTETC/extensions.conf > $BB` then echo "Extension $EXTENSION is already defined." exit fi if `grep "$EXTENSION =>" $ASTETC/voicemail.conf > $BB` then echo "Extension $EXTENSION conflicts with VM Box $EXTENSION." exit fi read -p "Full Name: " FULLNAME if [ -z "$FULLNAME" ] then echo "I need a full name." exit fi read -p "Context (Press enter for default): " CONTEXT read -p "CID Number (Press enter for default): " CIDNUMBER read -p "E-Mail Address (Press enter for none): " EMAILADD read -p "Password (Press enter for auto-gen): " PASSWORD read -p "VM Pin (Press enter for auto-gen): " VMPIN if [ -z $CONTEXT ] then CONTEXT=$DEFCONTEXT fi if [ -z $PASSWORD ] then PASSWORD=`apg -a1 -n1 -x8 -m8 -M NCL` fi if [ -z $VMPIN ] then VMPIN=`apg -a1 -n1 -x4 -m4 -M N` fi if [ -z $CIDNUMBER ] then export CIDNUMBER=DEFAULT fi if [ -z $EMAILADD ] then export EMAILADD=NONE fi # DVMEXT=`expr $EXTEN + 1` echo " Username: $USERNAME Extension: $EXTENSION Voicemail Extension: $DVMEXT Full Name: "$FULLNAME" Context: $CONTEXT CIDNumber: $CIDNUMBER E-Mail Address: $EMAILADD Password: $PASSWORD VM Pin: $VMPIN " read -p "Does this look good? (yes/no) " RESPONSE if [ $RESPONSE = yes ] then #Finally create the user and vm, db, etc.. echo adding user $USERNAME to sip.conf... echo " [$USERNAME] type=friend username=$USERNAME secret=$PASSWORD dtmfmode=rfc2833 host=dynamic context=$CONTEXT callerid="$FULLNAME" <$EXTENSION> mailbox=$EXTENSION nat=yes qualify=250" >> $ASTETC/sip.conf echo adding user $USERNAME to voicemail.conf... echo "$EXTENSION => $VMPIN,$FULLNAME,$EMAILADD" >> $ASTETC/voicemail.conf echo adding user $USERNAME to extensions.conf... echo "exten => $EXTENSION,1,Macro(stdexten,$EXTENSION,$USERNAME)" >> $ASTETC/extensions.conf echo "exten => $DVMEXT,1,Macro(vm,$EXTENSION)" >> $ASTETC/extensions.conf echo >> $ASTETC/extensions.conf echo Creating voicemail for $USERNAME... CONTEXT=intern mkdir -p $VMHOME/$CONTEXT/$EXTENSION mkdir -p $VMHOME/$CONTEXT/$EXTENSION/INBOX cat $SNDHOME/vm-theperson.gsm > $VMHOME/$CONTEXT/$EXTENSION/unavail.gsm cat $SNDHOME/vm-theperson.gsm > $VMHOME/$CONTEXT/$EXTENSION/busy.gsm cat $SNDHOME/vm-extension.gsm > $VMHOME/$CONTEXT/$EXTENSION/greet.gsm nums=`echo $EXTENSION | sed 's/./ \0/g'` for x in $nums; do cat $SNDHOME/digits/${x}.gsm >> $VMHOME/$CONTEXT/$EXTENSION/unavail.gsm cat $SNDHOME/digits/${x}.gsm >> $VMHOME/$CONTEXT/$EXTENSION/busy.gsm cat $SNDHOME/digits/${x}.gsm >> $VMHOME/$CONTEXT/$EXTENSION/greet.gsm done cat $SNDHOME/vm-isunavail.gsm >> $VMHOME/$CONTEXT/$EXTENSION/unavail.gsm cat $SNDHOME/vm-isonphone.gsm >> $VMHOME/$CONTEXT/$EXTENSION/busy.gsm chown -R asterisk:asterisk $VMHOME/$CONTEXT/$EXTENSION chmod -R 750 $VMHOME/$CONTEXT/$EXTENSION echo Updating Asterisk... if [ $CIDNUMBER = DEFAULT ] then echo CID Default. else asterisk -r -x "database put FromCID $USERNAME $CIDNUMBER" fi echo Done\! else echo Add user aborted. fi ;; del) echo "Sorry, not implemented." ;; *) echo " Usage: $0 [action] [username] Where action is one of: add - Adds an Asterisk User. del - Deletes an Asterisk User. " ;; esac else echo You need apg. fi