diff options
Diffstat (limited to 'contrib/asterisk-xip/files/uci/asteriskuci')
-rwxr-xr-x | contrib/asterisk-xip/files/uci/asteriskuci | 365 |
1 files changed, 0 insertions, 365 deletions
diff --git a/contrib/asterisk-xip/files/uci/asteriskuci b/contrib/asterisk-xip/files/uci/asteriskuci deleted file mode 100755 index 1fd8f99b9d..0000000000 --- a/contrib/asterisk-xip/files/uci/asteriskuci +++ /dev/null @@ -1,365 +0,0 @@ -#!/bin/sh - -# Author: Michael Geddes <michael at frog dot wheelycreek dot net> -# Copyright 2008 Michael Geddes -# Licensed under GPL -Version=0.8 - - -# Todo -# Calling of Macros in dialplan -# Create a Menu -# Incoming Zones - -debuglevel=0 - -. /etc/functions.sh - -asteriskuci_gen="; Generated by Openwrt AstriskUCI script version ${Version}$N" - -# Utils - -logerror() { - echo "Error: $1" -} - -logdebug() { - if [ $(expr $1 "<=" ${debuglevel-0}) == 1 ] ; then - echo "Log: $2" - fi -} - -is_in_list(){ - val=$1 - shift - for i in $* ; do - [ $i == $val ] && return 0 - done - return 1 -} - -split_append() { - local lhs="$2" - local rhs="$3" - - while [ ! -z "$rhs" ] ; do - cur=${rhs%%,*} - nvar=${rhs#*,} - [ -z $4 ] || eval "$4 ${cur}" - append $1 "${lhs}${cur}" "$4" - [ "$nvar" == "$rhs" ] && break - rhs=${nvar} - done -} - -get_checksum() { - if [ -r "$2" ] ; then - local sum=`md5sum $2 | cut -d " " -f 1` - eval "$1=\"$sum\"" - else - eval "$1=NONE" - fi - #eval "logdebug 1 \"Checksum $2 : \${$1}\"" -} - -check_checksum() { - if [ -r "$2" ] ; then - local sum=`md5sum $2 | cut -d " " -f 1` - else - eval sum=NONE - fi - #logdebug 1 "Compare $1 checksum $2 with new checksum $sum " - [ "$sum" == "$1" ] - return $? -} - -# Add config module to initialise list -ast_add_conf() append asterisk_conf_list $1 " " -# Add module to initialise list -ast_add_module() append asterisk_module_list $1 " " -# Add to 'reload' list. -ast_add_reload() append asterisk_load_list $1 " " - -# Enable a top-level type -ast_enable_type() eval "enabled_section_${1}=1" - -# Is a top-level type enabled? -ast_type_enabled() { - eval "local res=\${enabled_section_${1}}" - if [ "$res" != 1 ] ; then - return 1 #Fail - fi - return 0 -} - -# For use in sections - make sure that the last section is processed -check_add() { - logdebug 1 "Check add $1" - if [ ! -z "${last_added_checked}" ] ; then - logdebug 1 "Eval check-add ${last_added_checked}" - eval "check_add_${last_added_checked}" - fi - last_added_checked=$1 -} - -# Process the section yet to be checked. -check_all_added() check_add "" - -# Create static links for stuff we dont want to configure yet. -create_staticlinks() { - logdebug 1 "Link in a few mostly static configurations" - linkconfigs="codecs.conf say.conf sip_notify.conf udptl.conf logger.conf" - module_enabled res_indications && append linkconfigs indications.conf " " - for i in ${linkconfigs} ; do - [ -e $DEST_DIR/$i ] || ln -s $DEST/etc/asterisk/$i $DEST_DIR - done - - logdebug 1 "Link in #include directories" - for i in include inc libs lib library macro macros ; do - if [ -e $DEST/etc/asterisk/$i -a ! -d "$DEST_DIR/$i" -a ! -e "$DEST_DIR/$i" ] ; then - ln -s $DEST/etc/asterisk/$i $DEST_DIR - fi - done -} - -# default reboot -reboot_hardware() {} - - -# Top level handler -setup_asterisk() { - DEST=${1%/} - DEST_DIR=/tmp/asterisk - - testing_mode=0 - if [ "$2" == "testonly" ] ; then - testing_mode=1 - elif [ "$2" == "test" ] ; then - DEST_DIR=/tmp/asterisk.tmp - echo Using Test dir: $DEST_DIR - testing_mode=2 - fi - - [ -z "$3" ] || debuglevel=$3 - - logdebug 1 "Loading Asterisk Config" - . ${UCILIB}/asteriskconf - logdebug 2 "Loading Module Config" - . ${UCILIB}/moduleconf - logdebug 2 "Loading Dialplan Config" - . ${UCILIB}/dialplanconf - - for f in ${DEST}/etc/asterisk/conf.d/* ; do - logdebug 1 "Loading Module $f" - [ -f $f ] && . $f - done - - include /lib/network - scan_interfaces - - init_asteriskconf - init_moduleconf - init_dialplanconf - - for i in ${asterisk_module_list} ; do - logdebug 1 "Init $i module" - eval "init_${i}" - done - - for i in ${asterisk_conf_list} ; do - logdebug 1 "Init $i config" - eval "init_${i}conf" - done - - config_cb() { - cur_section=$1/$2 - logdebug 2 "Load $1/$2" - eval "local val=\"\${dups_$2}\"" - if [ "${val}" == "" ] ; then - eval "dups_$2=1" - else - logerror "Duplicate Section Name: $2 (type $1)" - fi - - if ast_type_enabled $1 ; then - eval "handle_$1 \$2" - elif [ ! -z "$1" ] ; then - - logerror "Unknown section: $1/$2" - option_cb() { - logerror "Invalid option '$1' for invalid section" - } - fi - } - config_load asterisk - check_all_added - - if [ "$testing_mode" != "1" ] ; then - mkdir -p ${DEST_DIR} - - create_asteriskconf - for i in ${asterisk_conf_list} ; do - logdebug 1 "Create $i config" - eval "create_${i}conf" - done - create_dialplanconf - create_moduleconf - - # Link in a few mostly static configurations - create_staticlinks - fi - [ "$testing_mode" == "2" ] && reload_check_asterisk - return 0 -} - -astcmd() { - ASTCMD="${DEST%/}/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf " - logdebug 1 "Command: $1" - if [ -z "${2-}" ] ; then - ${ASTCMD} -r -x "$1" 2>&- 1>&- - else - eval "$2=`${ASTCMD} -r -x \"$1\"`" - fi - return $? -} - -# waitfor() { -# while [ -d /proc/$1 ] ; do -# sleep 1 -# done -# } - -restart_gracefully() { - stop_uci_asterisk "$DEST" - startup_asterisk "$DEST" - #ret=0 - #echo "Check for pid" - #if [ -r /var/run/asterisk.ctl ] ; then - # astcmd "stop gracefully" - # local ret=$? - # [ ${ret} = 0 ] || return $ret - # waitfor `cat /var/run/asterisk.pid` - #fi - #startup_asterisk ${DEST} - return 0 -} -astcmds() { - while [ ! -z "$1" ] ; do - astcmd "$1" - shift - done -} - -reload_check_asterisk() { - logdebug 1 "Check Reloading" - local reboot=0 - if [ "${ast_restart-}" == 1 ] ; then - logdebug 1 "Restarting Gracefully" - reboot=0 - else - for i in ${asterisk_load_list} ; do - logdebug 1 "Checking ${i} reload" - eval "local doload=\${ast_${i}_restart}" - case $doload in - 1) logdebug 1 "Reloading ${i}" ;; - 2) logdebug 1 "Unloading ${i}" ;; - esac - done - fi - [ ${reboot} = 1 ] && logdebug 1 "reboot hardware" -} - -reload_asterisk() { - logdebug 1 "Reloading" - local reboot=0 - if [ "${ast_restart-}" == 1 ] ; then - logdebug 2 "Restarting Gracefully" - restart_gracefully - reboot=0 - else - for i in ${asterisk_load_list} ; do - logdebug 3 "Checking ${i} reload" - eval "local doload=\${ast_${i}_restart}" - case $doload in - 1) logdebug 1 "Reloading ${i}" - eval "reload_${i}" || reboot=1 ;; - 2) logdebug 1 "Unloading ${i}" - eval "unload_${i}" || reboot=1 ;; - esac - done - fi - - if [ ${reboot} = 1 ] ; then - ( sleep 5; reboot_hardware ) & - fi -} -startup_asterisk() { - DEST="${1%/}" - DEFAULT=$DEST/etc/default/asterisk - [ -f $DEFAULT ] && . $DEFAULT - [ -d /var/run ] || mkdir -p /var/run - [ -d ${asterisk_logdir} ] || mkdir -p ${asterisk_logdir} - [ -d ${asterisk_spooldir} ] || mkdir -p ${asterisk_spooldir} - [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk - [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb - - $DEST/usr/sbin/asterisk -C /tmp/asterisk/asterisk.conf $UCIOPTIONS -f 2>&1 > ${asterisk_logdir}/asterisk_proc & - # Wait a bit then reboot the hardware - ( sleep 5; reboot_hardware ) & -} - -# Init.d start() handler -start_uci_asterisk() { - DEST="${1%/}" - - if setup_asterisk $DEST ; then - startup_asterisk "$DEST" - fi -} - -restart_uci_asterisk() { - DEST="${1%/}" - if setup_asterisk $DEST ; then - echo "Trying to Restart gracefully" - if [ -r /var/run/asterisk.ctl ] ; then -# if astcmd "restart gracefully" ; then - echo "Sending restart" - if restart_gracefully ; then - echo "Restarting gracefully" - return 0 - fi - fi - stop_uci_asterisk "$DEST" - startup_asterisk "$DEST" - else - stop_uci_asterisk $1 - echo "Setup Failed" - return 1 - fi -} - -# init.d stop() handler -stop_uci_asterisk() { - DEST=${1%/} - if [ -r /var/run/asterisk.ctl ] ; then - astcmd "stop now" - sleep 1 - fi - [ -f /var/run/asterisk.pid ] && kill $(cat /var/run/asterisk.pid) >/dev/null 2>&1 -} - -reload_uci_asterisk() { - DEST=${1%/} - DEFAULT=$DEST/etc/default/asterisk - - if [ -r /var/run/asterisk.ctl ] ; then - if setup_asterisk "$DEST" ; then - # Selective reload modules. - reload_asterisk - fi - else - start_uci_asterisk "$1" - fi -} - -# vim: ts=2 sw=2 noet foldmethod=indent |