diff options
Diffstat (limited to 'contrib/package/asterisk-xip/files/uci/meetmeconf')
-rwxr-xr-x | contrib/package/asterisk-xip/files/uci/meetmeconf | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/contrib/package/asterisk-xip/files/uci/meetmeconf b/contrib/package/asterisk-xip/files/uci/meetmeconf new file mode 100755 index 000000000..d70016148 --- /dev/null +++ b/contrib/package/asterisk-xip/files/uci/meetmeconf @@ -0,0 +1,107 @@ +#!/bin/sh +# Meetme.conf (conference) + +ast_add_conf meetme +init_meetmeconf() { + ast_add_reload meetme + ast_enable_type meetmegeneral + ast_enable_type meetme + ast_enable_type dialplanmeetme +} +create_meetmeconf() { + file=${DEST_DIR}/meetme.conf + get_checksum meetme_conf $file + logdebug 1 "Creating meetme rooms: ${meetme_rooms}" + local isempty=1 + if [ -z ${meetme_rooms} ] ; then + rm -f $file + isempty=2 + else + echo "${asteriskuci_gen}${N}[general]" > $file + if [ ! -z ${meetme_audiobuffers} ] ; then + echo "audiobuffers=${meetme_audiobuffers}" >> $file + fi + echo "${N}[rooms]" >> $file + for i in ${meetme_rooms} ; do + for j in pin adminpin room ; do + eval meetme_$j=\${meetme_room_${i}_${j}} + done + if [ -z "${meetme_room}" ] ; then + meetme_room=$i + fi + local line="conf => ${meetme_room}" + if [ -z ${meetme_adminpin} ] ; then + if [ ! -z ${meetme_pin} ] ; then + line="${line},${meetme_pin}" + fi + else + line="${line},${meetme_pin},${meetme_adminpin}" + fi + echo "$line" >> $file + done + fi + check_checksum "$meetme_conf" "$file" || ast_meetme_restart=$isempty +} + +handle_meetmegeneral() { + option_cb() { + case $1 in + audiobuffers) + meetme_audiobuffers="$2" ;; + *) logerror "Invalid meetme general option $1" + esac + } +} + +handle_meetme() { + logdebug 2 "Add meetme room $1" + meetme_room="$1" + append meetme_rooms "$1" " " + enable_module app_meetme + option_cb() { + case $1 in + pin|adminpin|room) + logdebug 3 "Meetme option ${meetme_room}/${1}=$2" + eval meetme_room_${meetme_room}_${1}="$2" ;; + *) logerror "Invalid meetme option for $meetme_room : $1" + esac + } +} + +handle_dialplanmeetme() { + check_add dialplanmeetme + option_cb() { + case $1 in + dialplan|extension|room) + eval "dial_meetme_$1=\"$2\"" + esac + } +} + +check_add_dialplanmeetme() { + if [ ! -z "${dial_meetme_extension}" ] ; then + local ext="exten => ${dial_meetme_extension}," + + [ -z "${dial_meetme_dialplan}" ] && dial_meetme_dialplan=extensions + check_add_context ${dial_meetme_dialplan} + append dialplan_context_${dial_meetme_dialplan} "${ext}1,MeetMe(${dial_meetme_room})" "${N}" + append dialplan_context_${dial_meetme_dialplan} "${ext}n,HangUp" "${N}" + fi + for i in dialplan extension room ; do + eval "unset dial_meetme_$i" + done +} + +add_dialplan_meetme() { + local context=$1 + logdebug 1 "Adding Dialplan meetme $1 $2" + check_add_context "$context" + local ext="exten => $2," + append dialplan_context_${context} "${ext}1,MeetMe($3)" "${N}" + append dialplan_context_${context} "${ext}n,HangUp" "${N}" +} + +reload_meetme() astcmd "module reload app_meetme.so" +unload_meetme() astcmd "module unload app_meetme.so" + +# vim: ts=2 sw=2 noet foldmethod=indent |