luci/contrib/package/asterisk-xip/files/uci/asteriskconf

145 lines
3.1 KiB
Text
Raw Normal View History

#!/bin/sh
# Asterisk.conf
init_asteriskconf() {
ast_add_reload dialplan
ast_enable_type asterisk
ast_enable_type setglobal
ast_enable_type include
# ast_enable_type hardware
ast_enable_type hardwarereboot
asterisk_zone="Australia/Perth"
asterisk_spooldir="${DEST}/var/spool/asterisk"
asterisk_logdir="${DEST}/var/log/asterisk"
asterisk_agidir="${DEST}/usr/lib/asterisk/agi-bin"
return 0
}
asterisk_option_list="verbose debug quiet dontwarn timestamp execincludes \
highpriority initcrypto nocolor dumpcore languageprefix internal_timing \
systemname maxcalls maxload cache_record_files record_cache_dir \
transmit_silence_during_record transcode_via_sln runuser rungroup"
asterisk_path_list="spooldir logdir agidir"
valid_asterisk_option() {
is_in_list $1 ${asterisk_option_list} ${asterisk_path_list} zone
return $?
}
create_asteriskconf() {
# echo ${DEST_DIR}
file=${DEST_DIR}/asterisk.conf
get_checksum asterisk_conf $file
echo "${asteriskuci_gen}${N}[directories]
astetcdir => ${DEST_DIR}
astmoddir => ${DEST}/usr/lib/asterisk/modules
astvarlibdir => ${DEST}/usr/lib/asterisk
astdatadir => ${DEST}/usr/lib/asterisk
astrundir => /var/run" > $file
for i in ${asterisk_path_list} ; do
eval "value=\"\${asterisk_$i}\""
if [ ! -z $value ] ; then
echo "ast$i => $value" >> $file
fi
done
echo "${N}[options]" >> $file
for i in ${asterisk_option_list} ; do
eval "value=\"\${asterisk_$i}\""
if [ ! -z $value ] ; then
echo "$i => $value" >> $file
fi
done
echo "${N}; Changing the following lines may compromise your security.
[files]
astctlpermissions = 0660
astctlowner = root
astctlgroup = nogroup
astctl = asterisk.ctl " >> $file
check_checksum "$asterisk_conf" "$file" || ast_restart=1
}
handle_asterisk() {
option_cb() {
case $1 in
zone)
asterisk_zone="$2";;
*)
if valid_asterisk_option $1 $2 ; then
eval "asterisk_${1}=\"$2\""
else
logerror "Invalid Asterisk option: $1"
fi
esac
}
}
handle_include(){
option_cb() {
case $1 in
dialplan|dialplan_ITEM*)
append dialplan_includes "#include <$2>" "${N}"
;;
dialplan_COUNT) ;;
*) logerror "Invalid option \"$1\" for include" ;;
esac
}
}
handle_setglobal() {
option_cb() {
case $1 in
set_COUNT) ;;
set|set_ITEM*)
if [ "${2%=*}" == "${2}" ] ; then
logerror "SetGlobal option \"$2\" not of the form VARIABLE=Value"
else
append dialplan_globals "" "${N}"
fi ;;
*) logerror "Invalid option \"$1\" for setglobal" ;;
esac
}
}
handle_hardwarereboot() handle_hardware reboot
# Handle hardware options (reboot) for Softphones
handle_hardware() {
case $1 in
reboot)
hardware_method=
hardware_param=
option_cb() {
case $1 in
method)
hardware_method="$2";;
param)
case ${hardware_method} in
web) append hardware_reboots "wget -q $2 -O - >&- 2>&-" "${N}" ;;
system) append hardware_reboots "$2 >&- 2>&-" "${N}" ;;
*) logerror "Invalid Hardware reboot method: ${hardware_method}"
esac
esac
}
;;
*) logerror "Invalid Hardware option: $1"
esac
}
reboot_hardware() {
cd /tmp
eval ${hardware_reboots}
}
# vim: ts=2 sw=2 noet foldmethod=indent