9 ast_enable_type callqueue
10 ast_enable_type callqueuegeneral
15 file=${DEST_DIR}/queues.conf
16 get_checksum queue_conf $file
18 logdebug 0 "Generating Queues.conf: ${callqueue_contexts}"
19 if [ -z "${callqueue_contexts}" ] ; then
23 logdebug 0 "General section"
24 echo "${asteriskuci_gen}[general]" > "$file"
25 [ -z "${callqueue_gen_autofill}" ] && callqueue_gen_autofill=yes
26 for i in ${callqueuegeneral_list} ; do
28 eval "local val=\"\${callqueue_gen_${opt}}\""
29 [ -z "${val}" ] || echo "${i}=${val}" >> "$file"
32 logdebug 0 "Add queues"
33 for i in ${callqueue_contexts} ; do
34 eval "local queuename=\${callqueue_opt_${i}_name}"
35 logdebug 0 "Add queue ${queuename}"
36 echo "${N}[${queuename}]" >> "$file"
39 for j in ${callqueue_list} ; do
41 eval "local val=\"\${callqueue_opt_${i}_${opt}}\""
42 if [ ! -z "${val}" ]; then
43 echo "${j}=${val}" >> "$file"
50 eval "local memberlist=\"\${callqueue_opt_${i}_members}\""
51 for j in ${memberlist} ; do
52 echo "member => ${j}" >> "$file"
55 [ "${has_moh}" = 0 ] && queueopts=${queueopts}r
56 eval "local queuetimeout=\"\${callqueue_opt_${i}_queuetimeout}\""
57 if [ "${queuetimeout-0}" = 0 ] ; then
60 queueopts=${queueopts}n
63 # Now add call dialplan
64 if check_add_context "${i}" ; then
65 append_dialplan_context "${i}" "exten = ${match_all_s},1,Queue(${queuename}|${queueopts}|||${queuetimeout})"
66 #TODO Add voicemail? fallthrough option?
72 check_checksum "$queue_conf" "$file" || ast_queue_restart=$isempty
75 reload_queue() astcmd "module reload app_queue.so"
76 unload_queue() astcmd "module unload app_queue.so"
79 callqueuegeneral_list="persistentmembers autofill monitor-type"
80 valid_callqueuegeneral() {
81 is_in_list $1 ${callqueuegeneral_list//-/}
85 handle_callqueue_general() {
87 if valid_callqueuegeneral "$1" ; then
88 eval "callqueue_gen_$1=\"\${2}\""
90 [ "${1:0:1}" = "_" ] || logerror "Invalid callqueuegeneral option: $1"
95 callqueue_list="musicclass announce strategy context timeout wrapuptime \
96 autofill maxlen announce-holdtime announce-frequency periodic-announce-frequency ringinuse"
99 is_in_list $1 ${callqueue_list//-/} queuetimeout
105 callqueue_opt_name="$1" # Name in queue.conf
106 [ -z "${callqueue_contexts}" ] && enable_module app_queue
107 append "callqueue_contexts" "$1" " "
111 name) eval "callqueue_opt_${cur_context}_name=\"\$2\"" ;;
115 if ! split_targettype member_type member_ext "${2}" ; then
116 logerror "No extension type specified for queue ${cur_context} member ${2}"
118 append callqueue_opt_${cur_context}_members "${member_type}/${member_ext}" " "
124 if valid_callqueue "$1" ; then
125 eval "callqueue_opt_${cur_context}_$1=\"\${2}\""
127 logerror "Invalid callqueue option: $1"