#!/bin/sh # Feature.conf ast_add_conf feature init_featureconf(){ ast_add_reload feature ast_enable_type feature ast_enable_type featurepark ast_enable_type featuremap feature_park_parkenabled=no feature_park_parkext=700 feature_park_parkpos="701-720" feature_park_context=parkedcalls feature_park_parkingtime=45 feature_park_courtesytone=beep feature_park_parkedplay=caller feature_park_adsipark=yes feature_park_findslot=first feature_park_parkedmusicclass=default feature_park_transferdigittimeout=3 feature_park_xfersound=beep feature_park_xferfailsound=beeperr feature_park_pickupexten="*8" feature_park_featuredigittimeout=500 feature_park_atxfernoanswertimeout=15 } feature_park_list="parkext parkpos context parkingtime \ courtesytone parkedplay adsipark findslot parkedmusicclass \ transferdigittimeout xfersound xferfailsound pickupexten \ featuredigittimeout atxfernoanswertimeout" feature_map_list="blindxfer disconnect automon atxfer parkcall" valid_features(){ case $1 in park) is_in_list $2 ${feature_park_list} parkenabled ; return $? ;; map) is_in_list $2 ${feature_map_list} ; return $? ;; *) return 1;; esac } create_featureconf(){ file=${DEST_DIR}/features.conf get_checksum feature_conf $file local isempty=1 if [ $feature_park_parkenabled == no ] ; then rm -f $file isempty=2 else enable_module res_features echo "${asteriskuci_gen}${N}[general]" > $file for i in ${feature_park_list} ; do eval value="\"\${feature_park_$i}\"" [ ! -z "$value" ] && echo "$i=$value" >> $file done echo "${N}[featuremap]" >> $file for i in ${feature_map_list} ; do eval value="\"\${feature_map_$i}\"" [ ! -z "$value" ] && echo "$i=$value" >> $file done fi check_checksum "$feature_conf" "$file" || ast_feature_restart=$isempty } handle_featurepark() { handle_feature park } handle_featuremap() { handle_feature map } handle_feature() { feature_type=$1 option_cb() { if valid_features ${feature_type} $1 $2 ; then eval "feature_${feature_type}_$1=\"$2\"" else logerror "Invalid feature: $1" fi } } append_dialplan_park(){ local file=$1 # Check for parked calls - add into available extensions if [ ${feature_park_parkenabled} == yes ] && [ ! -z ${feature_park_context} ] ; then add_dialplan_include extensions ${feature_park_context} enable_module app_parkandannounce enable_format gsm fi } reload_feature() astcmd "module reload res_features.so" unload_feature() astcmd "module unload res_features.so" # vim: ts=2 sw=2 noet foldmethod=indent