contrib/package: change luci-app-asterisk dependency to asterisk14-xip-core
[project/luci.git] / contrib / asterisk-xip / files / uci / featureconf
1 #!/bin/sh
2
3 # Feature.conf
4 ast_add_conf feature
5 init_featureconf(){
6 ast_add_reload feature
7 ast_enable_type feature
8 ast_enable_type featurepark
9 ast_enable_type featuremap
10
11 feature_park_parkenabled=no
12 feature_park_parkext=700
13 feature_park_parkpos="701-720"
14 feature_park_context=parkedcalls
15 feature_park_parkingtime=45
16 feature_park_courtesytone=beep
17 feature_park_parkedplay=caller
18 feature_park_adsipark=yes
19 feature_park_findslot=first
20 feature_park_parkedmusicclass=default
21 feature_park_transferdigittimeout=3
22 feature_park_xfersound=beep
23 feature_park_xferfailsound=beeperr
24 feature_park_pickupexten="*8"
25 feature_park_featuredigittimeout=500
26 feature_park_atxfernoanswertimeout=15
27 }
28
29 feature_park_list="parkext parkpos context parkingtime \
30 courtesytone parkedplay adsipark findslot parkedmusicclass \
31 transferdigittimeout xfersound xferfailsound pickupexten \
32 featuredigittimeout atxfernoanswertimeout"
33 feature_map_list="blindxfer disconnect automon atxfer parkcall"
34
35 valid_features(){
36 case $1 in
37 park) is_in_list $2 ${feature_park_list} parkenabled ; return $? ;;
38 map) is_in_list $2 ${feature_map_list} ; return $? ;;
39 *) return 1;;
40 esac
41 }
42
43 create_featureconf(){
44 file=${DEST_DIR}/features.conf
45 get_checksum feature_conf $file
46
47 local isempty=1
48 if [ $feature_park_parkenabled == no ] ; then
49 rm -f $file
50 isempty=2
51 else
52 enable_module res_features
53 echo "${asteriskuci_gen}${N}[general]" > $file
54 for i in ${feature_park_list} ; do
55 eval value="\"\${feature_park_$i}\""
56 [ ! -z "$value" ] && echo "$i=$value" >> $file
57 done
58 echo "${N}[featuremap]" >> $file
59 for i in ${feature_map_list} ; do
60 eval value="\"\${feature_map_$i}\""
61 [ ! -z "$value" ] && echo "$i=$value" >> $file
62 done
63 fi
64 check_checksum "$feature_conf" "$file" || ast_feature_restart=$isempty
65
66 }
67 handle_featurepark() {
68 handle_feature park
69 }
70 handle_featuremap() {
71 handle_feature map
72 }
73
74 handle_feature() {
75 feature_type=$1
76 option_cb() {
77 if valid_features ${feature_type} $1 $2 ; then
78 eval "feature_${feature_type}_$1=\"$2\""
79 else
80 logerror "Invalid feature: $1"
81 fi
82 }
83 }
84
85 append_dialplan_park(){
86 local file=$1
87 # Check for parked calls - add into available extensions
88 if [ ${feature_park_parkenabled} == yes ] && [ ! -z ${feature_park_context} ] ; then
89 add_dialplan_include extensions ${feature_park_context}
90 enable_module app_parkandannounce
91 enable_format gsm
92 fi
93 }
94
95
96 reload_feature() astcmd "module reload res_features.so"
97 unload_feature() astcmd "module unload res_features.so"
98
99 # vim: ts=2 sw=2 noet foldmethod=indent