d70016148a26874812b74404b619d64540c34a83
[project/luci.git] / contrib / package / asterisk-xip / files / uci / meetmeconf
1 #!/bin/sh
2 # Meetme.conf (conference)
3
4 ast_add_conf meetme
5 init_meetmeconf() {
6         ast_add_reload meetme
7         ast_enable_type meetmegeneral
8         ast_enable_type meetme
9         ast_enable_type dialplanmeetme
10 }
11 create_meetmeconf() {
12         file=${DEST_DIR}/meetme.conf
13         get_checksum meetme_conf $file
14         logdebug 1 "Creating meetme rooms: ${meetme_rooms}"
15         local isempty=1
16         if [ -z ${meetme_rooms} ] ; then
17                 rm -f $file
18                 isempty=2
19         else
20                 echo "${asteriskuci_gen}${N}[general]" > $file
21                 if [ ! -z ${meetme_audiobuffers} ] ; then
22                         echo "audiobuffers=${meetme_audiobuffers}" >> $file
23                 fi
24                 echo "${N}[rooms]" >> $file
25                 for i in ${meetme_rooms} ; do
26                         for j in pin adminpin room ; do
27                                 eval meetme_$j=\${meetme_room_${i}_${j}}
28                         done
29                         if [ -z "${meetme_room}" ] ; then
30                                 meetme_room=$i
31                         fi
32                         local line="conf => ${meetme_room}"
33                         if [ -z ${meetme_adminpin} ] ; then
34                                 if [ ! -z ${meetme_pin} ] ; then
35                                         line="${line},${meetme_pin}"
36                                 fi
37                         else
38                                 line="${line},${meetme_pin},${meetme_adminpin}"
39                         fi
40                         echo "$line" >> $file
41                 done
42         fi
43         check_checksum "$meetme_conf" "$file" || ast_meetme_restart=$isempty
44 }
45
46 handle_meetmegeneral() {
47         option_cb() {
48                 case $1 in
49                         audiobuffers)
50                                 meetme_audiobuffers="$2" ;;
51                         *) logerror "Invalid meetme general option $1"
52                 esac
53         }
54 }
55
56 handle_meetme() {
57         logdebug 2 "Add meetme room $1"
58         meetme_room="$1"
59         append meetme_rooms "$1" " "
60         enable_module app_meetme
61         option_cb() {
62                 case $1 in
63                         pin|adminpin|room)
64                                 logdebug 3 "Meetme option ${meetme_room}/${1}=$2"
65                                 eval meetme_room_${meetme_room}_${1}="$2" ;;
66                         *) logerror "Invalid meetme option for $meetme_room : $1"
67                 esac
68         }
69 }
70
71 handle_dialplanmeetme() {
72         check_add dialplanmeetme
73         option_cb() {
74                 case $1 in
75                         dialplan|extension|room)
76                                 eval "dial_meetme_$1=\"$2\""
77                 esac
78         }
79 }
80
81 check_add_dialplanmeetme() {
82         if [ ! -z "${dial_meetme_extension}" ] ; then
83                 local ext="exten => ${dial_meetme_extension},"
84
85                 [ -z "${dial_meetme_dialplan}" ] && dial_meetme_dialplan=extensions
86                 check_add_context ${dial_meetme_dialplan}
87                 append dialplan_context_${dial_meetme_dialplan} "${ext}1,MeetMe(${dial_meetme_room})" "${N}"
88                 append dialplan_context_${dial_meetme_dialplan} "${ext}n,HangUp" "${N}"
89         fi
90         for i in dialplan extension room ; do
91                 eval "unset dial_meetme_$i"
92         done
93 }
94
95 add_dialplan_meetme() {
96         local context=$1
97         logdebug 1 "Adding Dialplan meetme $1 $2"
98         check_add_context "$context"
99         local ext="exten => $2,"
100         append dialplan_context_${context} "${ext}1,MeetMe($3)" "${N}"
101         append dialplan_context_${context} "${ext}n,HangUp" "${N}"
102 }
103
104 reload_meetme() astcmd "module reload app_meetme.so"
105 unload_meetme() astcmd "module unload app_meetme.so"
106
107 # vim: ts=2 sw=2 noet foldmethod=indent