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