Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
bcompiler v0.27s Module @ ' C set_uniqids ..
Decoded Output download
<? bcompiler v0.27s Module @ ' C
set_uniqids
uniqids_array er set_uniqids ? B < < is_array )V + R u uniqids B < < ( is_array )V
< ( + <
G d P u uniqids d *
R lu uniqids B < B < < array_merge y x u uniqids * U u uniqids d > & /offload/rootfs/usr/www/cfeLogic.php.b Module
uniqids_array H A get_uniqids get_uniqids R u uniqids $ > $ > % & /offload/rootfs/usr/www/cfeLogic.php.b Module " % )M> set_asterisk_application modules )
p set_asterisk_application ? ' (wu asterisk_modules ) ) > * & /offload/rootfs/usr/www/cfeLogic.php.b Module modulesLf ' * i get_asterisk_application get_asterisk_application R 8wu asterisk_modules . + / R @xu asterisk_modules 0 > 0 * 1 > 2 > 4 & /offload/rootfs/usr/www/cfeLogic.php.b Module , 4 u get_last_dialplan_counter get_last_dialplan_counter R @xu last_dialplan_counter 8 > 8 > 9 & /offload/rootfs/usr/www/cfeLogic.php.b Module 6 9 T set_dialplan_counter counter r pat set_dialplan_counter ? ; {u last_dialplan_counter = = > > > ? & /offload/rootfs/usr/www/cfeLogic.php.b Module counterfR ; ? is_file_missing data der_ is_file_missing > > ? A R }u needed_files C
C + C > C * C R ( }u needed_files E B ( < E < < is_array )V E + < $ F R P }u needed_files G M d P ! G N x d ! G G & x G & G Q I B < I A /storage < I < strpos
I I . I Q I .ulaw I A < I < , is_file `(( I
@ , I 4 @ I + I T ~u J h J * K * L 1 d L > M * < N R | u needed_files O B | < O < strlen =/ O O + < P R lu needed_files Q Q Q B < Q A /storage < Q < strpos
Q Q . 7 Q R u needed_files Q Q Q 0 .ulaw Q A 0 < Q < D is_file `(( Q
X D Q 4 X Q + ; Q R l u needed_files R > l R * ; S * < T > V > W ! & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G keyNy| value?8" rv
A W s%S is_data_missing data the is_data_missing 6 6 ? Y R u needed_data [
[ + [ > [ * [ R ( u needed_data ] B ( < ] < < is_array )V ] + < ^ R P u needed_data _ M d P _ N x d _ _ & x _ & _ s a
a / a Q a B < a < strlen =/ a a 4 a + a , b @ b * c * d 1 d d > e * 4 f R T @u needed_data g B T < g < h strlen =/ g | h g + | 4 h R @u needed_data i s i
i / / i R u needed_data i Q i B < i < strlen =/ i i 4 i + 3 i R @u needed_data i > i * 3 i * 4 j > l > m & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G keyNy| value?8" rv
Y m set_needed_files data ' )
set_needed_files ? o u needed_files q q > r & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G o r set_needed_data data e )
set_needed_data ? t u needed_data v v > w & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G t w tEk set_ignore ignore e_ov
set_ignore ? y (u ignore_this_module { { > | & /offload/rootfs/usr/www/cfeLogic.php.b Module ignore8 y | Y, init i_name ($fi i_command )
i_cannot_connect_to eadli i_can_only_connected_to els init
? ~ ? ~ @ ~ @ ~ tu command tu cannot_connect_to ( tu name < tu only_connect_to > & /offload/rootfs/usr/www/cfeLogic.php.b Module i_name.1{ i_commandT i_cannot_connect_to' i_can_only_connected_to ~
generate_waitforsilence extension ence priority )
data eadli label outpa generate_waitforsilence ? ? ? @ Q number2 + Q < number2 P < ( number2 P d * x number2 p u generate_simple_dialplan B = B = B = B = = > >
& /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
generate_callerid extension ence priority )
data eadli label erbos generate_callerid S S ? ? ? @ & ${CALLERID(num)} Q checkbox1 ( true + ( Q < text1 P < & d P * Q x checkbox2 x true + Q text1 & * Q checkbox1 true . Q checkbox2 true 4 + Q , text1 & @ , * & T h + h $ | ( | ) & * $ ; network_get_ip_phone_network network_get_ip_phone_network $ = & + B , 0 D 0 ,Set(CALLERID(num)= X D l X ) T entry ev l , & ,SipRemoveHeader(P-Asserted-Identity:)& W entry fv 4 , H 4 \ H M ,SipAddHeader(P-Asserted-Identity: "${CALLERID(name)}" <sip:${CALLERID(num)}@M p \ p >) W entry Tfv
line_count
* M , $ 8 $ ,Set(CALLERID(num)= L 8 ` L ) T entry tQv ` t
line_count
1 + Q & n * Q > > > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
calleridE dialplan_label)b ip dialplan_entry/ 0?i generate_calleridname extension me priority )
data eadli label generate_calleridname O O ? ? ? @ & ${CALLERID(name)} Q checkbox1 ( true + ( Q < text1 P < & d P * Q x checkbox2 x true + Q text1 & * Q checkbox1 false . Q checkbox2 false 4 + Q , text1 & @ , * & T h + h $ | ( | ) & * $ ; network_get_ip_phone_network network_get_ip_phone_network $ = & + B , 0 D 0 ,Set(CALLERID(name)= X D l X ) T entry xVv l , & ,SipRemoveHeader(P-Asserted-Identity:)& W entry Vv 4 , H 4 \ H M ,SipAddHeader(P-Asserted-Identity: "${CALLERID(name)}" <sip:${CALLERID(num)}@M p \ p >) W entry Wv
line_count
* M , $ 8 $ ,Set(CALLERID(name)= L 8 ` L ) T entry Wv ` t
line_count
> > < & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
calleridE dialplan_label)b ip dialplan_entry/ generate_answer extension priority )
data eadli label generate_answer ? ? ? @ Q number1 + Q < number1 P < ( number1 P d * x number1 p [v generate_simple_dialplan B = B = B = B = = > >
& /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
h5l generate_goto extension priority )
data eadli label ev
generate_goto ? ? ? @ Q askmoduleid ( module- askmoduleid ( < Q d context_extension P extension d x p ^v generate_simple_dialplan B = B = B = B = = > > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
e get_queue_members wires_to get_queue_members ? & M N ( P & < ( & d P M x N x & & $ Q moduleId * 1 x * 1 > > & /offload/rootfs/usr/www/cfeLogic.php.b Module wires_toT: iwY keyNy| value?8" key2 value246@i wires/4!% [ translate_input_data key a data )
translate_input_data ? ? 0 AVAILSTATUS + G AST_DEVICE_UNKNOWN H AST_DEVICE_NOT_INUSE H AST_DEVICE_INUSE H AST_DEVICE_BUSY H AST_DEVICE_INVALID H AST_DEVICE_UNAVAILABLE H AST_DEVICE_RINGING H AST_DEVICE_RINGINUSE H AST_DEVICE_ONHOLD & ( B < B < < < array_search yrz > < 2 * * > 2 * * > & /offload/rootfs/usr/www/cfeLogic.php.b Module keyNy| data?G availstatusq generate_timebox extension priority data eadli moduleid wires_to label real_module_id generate_timebox Q Q ? ? ? ? ? @ ? & G & ( <
line_count
P & d x + x (
)
&
* Q timebox
&
A , < B
< < split H & G H mon H tue H wed H thu H fri H sat H sun & , & @
M T . N h T . & | h & $
Q Q moduleId * $ 1 T D , X D l X l ,NoOp(TimeSwitch module: )) W entry 0 v + < & n * < W
line_count
$ F M 4 N 4 4 \ & H 4 & p \ A # < " B < " < split H " & " A ; < # Q # B < # < split H # & # A - < $ Q $ B < $ < split H $ & $ $ time_
& 8 $ _from & & L 8 & ` time_
' t ` _to ' & t ' time_weekdays_
) & ) Q + & + Q , & , & . & ( / B < 1 < < is_array )V 1 + < 3 2 M P 1 2 N d P 1 2 2 & x d 2 & 2 $ 4 F 4 B < 6 < strlen =/ 6 6 + r 7 Q 8 & 8 & 9 * r : , < . , , v < @ < 4 , @ < / , , { < B < < < T count .f < h T < 4 , h < / , , < | < Q | < < < 4 , < + , , = B < > < count .f > > . > Q > > 4 > . > > Q 0 > D > X 0 D > 4 X > + ? Q l @ - l @ @ * A C Q C C C + $ D & E & F A /:/ < H B < H <
preg_split
{ H & 4 ! H A /:/ < I B < I < H
preg_split
{ I & \ " H I A /^[0-9]{1,2}:[0-9]{1,2}$/i < K B < K < p
preg_match
`~ K
p L / L A /^[0-9]{1,2}:[0-9]{1,2}$/i < L B < L <
preg_match
`~ L
L 4 L + M A X Wrong time format or weekday missing. The time have to be in the following format: HH:MMX < N < gettext N & N * O Q " R R . R Q " R $ R 4 $ R + S 8 " T 23 L T ` " U 59 t U Q " W : W Q " W W & W * X Q " Z
Z .
Z Q
" Z (
[ 4
(
[ .
[ Q <
" [ P
<
[ 4
P
[ .
[ Q d
" [ x
d
< \ 4
x
\ .
\ Q
! \
\ 4
\ .
\ Q
! \
] 4
] .
] Q
! ]
] 4
] .
] Q ! ] < ] 4
] +
^ * ` & , X Wrong time format or weekday missing. The time have to be in the following format: HH:MMX a Q @ " d Q T ! d h @ T d + h e | f & # | f # g + h & # i * j l + m n Q n - n Q # n 0 n & D $ 0 n * o Q X # p & l $ X p , s s ,GotoIfTime(0:00- s s , s
$ s
,*,*?module- s Q 4
s H
4
s \
H
) s W entry s (v s \
p
s W
line_count
t $
t F
t &
23:59 v * w
, y
y
,GotoIfTime( y $ y 8 $ - y L 8 y ` L , y t ` y t ,*,*?module- y Q y y ) y W
entry y
(v y y W
line_count
z $ z F z B < | <
is_numeric
a | + # } $ ( ~ F ( ~ * # * $ < Q P < d x P d + x + & * + * , Q & % & * d 1 P * 3 * @ 1 , , @ ,
,Goto(module-
Q T h @ T | h ) W entry v | W
line_count
$ F + O J A Error in module MID%s. < < gettext j B < < sprintf kV\ 0 error 0 D > * O > > ( $ . D @ 4 h d 1 & /offload/rootfs/usr/www/cfeLogic.php.b Module & 0 extension"y priority data?G moduleid*& wires_toT: labelE
real_module_idy0 error_msgS dialplan_entry/ dialplan_label)b timeswitch_timesB
time_array&L weekdays iwY keyNy| value?8" wires/4!% temp_globalKo|
temp_weekdays temp_fromto= time_field_fromJGV
time_field_to5 key_checkbox4l temp_time_from temp_time_toi! week_counter0A
weekdays_tempW key2 value246@i save_correct_start2S nextD temp_time_field_from_linez temp_time_field_to_lineu| hour_minute_from hour_minute_to~Zw next_day_overlapW temp_weekdays_overlap& save_correct_end { @ generate_calenderswitch extension itch priority data eadli moduleid wires_to label real_module_id generate_calenderswitch ? ? ? ? ? @ ? & & M ( N < ( d & P
< & x d $ Q
Q moduleId *
1 ( G &
line_count
, & @
T + T h ( | h ) &
| * A
< Q
complex_text1
B < < explode r & , 0
D 0 ,NoOp(Callflow: Calender switch) W entry qx D X W l
line_count
$ l F M N & & &
. < A /^((?<from_hour>[0-9]{1,2}):(?<from_minutes>[0-9]{1,2})\s){0,1}(?<from_year>[0-9]{4})-(?<from_month>[0-9]{1,2})-(?<from_day>[0-9]{1,2})[\s]*-[\s]*((?<to_hour>[0-9]{1,2}):(?<to_minutes>[0-9]{1,2})\s){0,1}(?<to_year>[0-9]{4})-(?<to_month>[0-9]{1,2})-(?<to_day>[0-9]{1,2})$/i < B < C < <
preg_match
`~ 4 + ? & 4 * ?
H . H H F A /^((?<from_hour>[0-9]{1,2}):(?<from_minutes>[0-9]{1,2})\s){0,1}(?<from_day>[0-9]{1,2})\.(?<from_month>[0-9]{1,2})\.(?<from_year>[0-9]{4})[\s]*-[\s]*((?<to_hour>[0-9]{1,2}):(?<to_minutes>[0-9]{1,2})\s){0,1}(?<to_day>[0-9]{1,2})\.(?<to_month>[0-9]{1,2})\.(?<to_year>[0-9]{4})$/i < B < C < < \
preg_match
`~ 4 H \ + H I & p * I + Q from_hour + O Q from_hour * P A < Q from_minutes + V Q from_minutes * W A < A < Q
from_month
B < Q from_day B < Q $ from_year B $ < < 8 mktime R & L 8 Q ` to_hour + ` f Q t to_hour t * g A < Q
to_minutes
+ m Q
to_minutes
* n ; A < A < Q to_month B < Q to_day B < Q to_year B < < mktime R & ( < + < & P & d & x J * , ) ,GotoIf($[ $[${STRFTIME(${EPOCH},,%s)} > ) " ] & $[${STRFTIME(${EPOCH},,%s)} < " ,
]]?module-
Q @ T , @ h T ) W entry hnx h | W
line_count
$ F 1 + & n * * & J A Line %s: %s < < gettext j A < B < < sprintf kV\ 0 <br> D 0 * 0 1 + K X error A Error in module MID%s. < < gettext j B < < sprintf kV\ <br> A Line(s) not valid: < < gettext l error A Should be one of the following:<br>HH:MM YEAR-MONTH-DAY - HH:MM YEAR-MONTH-DAY<br>YEAR-MONTH-DAY - YEAR-MONTH-DAY<br>HH:MM DAY.MONTH.YEAR - HH:MM DAY.MONTH.YEAR<br>DAY.MONTH.YEAR - DAY.MONTH.YEAR < < gettext 4 <br><br> error 4 H > * \ 1 + \ & p n * ,
,Goto(module-
Q ) W entry v $ W 8
line_count
$ L 8 F L > > x
4 0 & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
real_module_idy0 error_msgS iwY keyNy| value?8" wires/4!% dialplan_entry/ dialplan_label)b data_time_array
line_number< lineM
valid_time#n line_matchesQ from_timestampLp to_timestamp9 temp_timestampqP error_msg_temp=u aT generate_switch extension priority data eadli moduleid wires_to label generate_switch x x ? ? ? ? ? @ & G & ( G < & P < & d x + x ( ) & * M N & &
Q @ Q T @ moduleId ,
T h * 1 Q | list1 B | < < strlen =/ / ' Q list2 B < < strlen =/ 4 + . entry
+ ; ERROR - Missing data for switch operation+
line_count
0 > * .
M D s N X D s & l X &
& list Q & B < B < A < < in_array :f
. @ 4
4 4 + \ p H v translate_input_data ] \ list1 B \ = B = = p & p ,
,GotoIf($["${
Q list1 $ }" == " 8 $ L 8
"]?module-
Q `
t L ` t ) T entry v $ F + [ & n * [ * n
+ n ( , < ( P <
,Goto(module-
Q d
x P d x ) T entry dv $ F + m & n * m * n list ! Q ! ! , ! * / " 1 D " @
line_count
$ T $ > & > ( R 3 / s & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
line_count>3 dialplan_entry/ check_double} dialplan_label)b keyNy| value?8" wires/4!% wire_id5 entry_idc_
data_inputf ( generate_path_switch extension h priority data eadli moduleid wires_to label real_module_id
dialed_number generate_path_switch 3 3 ? * ? * ? * ? * ? * @ * ? * ? * G , & , & ( . < / + < 0 P ( 1 d P ) 1 & x d 1 * 2 &
4 M 5 N 5 5 & 5 & 5 $
7 Q , 7 Q @ , moduleId 7
7 @ T 7 * 8 1 8 h , : | h : | : ! ,GotoIf($["${DB(PATHSWITCH/000026! : : 0000 : : )}" = "1"]?module- : Q
: : 0 :module- : Q D
: X 0 D : l X ) : & l : entry < <
line_count
= = > ? > @ % & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
real_module_idy0
dialed_number6] dialplan_entry/ dialplan_label)b iwY keyNy| value?8" wires/4!% dialplan * @ generate_if extension priority data eadli moduleid wires_to label generate_if u u ? B ? B ? B ? B ? B @ B G D & D & ( F < G + < H P ( I d P ) I & x d I * J & L M M N M M &
M & M $ O Q ,
O Q @ , moduleId O O @ T O * P 1 P Q h R
| h R / | | " R Q R
R 4 | R / | | ( R Q list1 R B < R < strlen =/ R R 4 | R / | | . R Q list2 S B < S < strlen =/ S S 4 | S / | | 4 S Q 0 list3 T B 0 < T < D strlen =/ T X D T 4 | X T + | ; U l entry V ' ; ERROR - Missing data for if operation' V
line_count
W W > X * ; Y p v translate_input_data [ ] list1 [ B = [ ] list3 [ B = [ = [ & [ Q list2 ] 4 < ^ / 4 4 H ^ Q H list2 ^ \ H <= _ 4 4 \ _ / 4 4 L _ Q p list2 _ p > ` 4 4 ` / 4 4 P ` Q list2 ` >= ` 4 4 ` + 4 S a &
b * T c &
" d , g g g $
,GotoIf($[
g 8 $
g L 8 ${ g Q ` list1 g t L ` g t } g
g g Q list2 g g g
g g ( g < ( g P <
g d P ]?module- g Q x g d x g :module- g Q g g ) g & g entry j j ,
line_count
k @ k > m > n Q & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
dialplan_entry/ dialplan_label)b iwY keyNy| value?8" wires/4!%
data_inputf quoteS dialplan B n #Q generate_maximumcalls extension priority data eadli moduleid wires_to label uniqid generate_maximumcalls _ _ ? p ? p ? p ? p ? p @ p ? p G r & r & ( t < u + < v P ( w d P ) w & x d w * x & z . { B < { < count .f { { 4 { + $ | M " | N " | | & | & ,
| $ @ ~ Q h ~ Q | h moduleId ~ T @ ~ | ~ * 1 * $ Q
/ * Q
4 / 0 Q number1 B < < strlen =/ 4 + 7 0 entry 3 ; ERROR - Missing data for maxmimum calls operation3 D X
line_count
l > * 7 Q number1 &
,
,Set(GROUP()=
4 -LIMIT- H 4 \ H ) \ p + H & n * H , ,GotoIf($[${GROUP_COUNT( -LIMIT- $ 8 $ )} < L 8
` L ]?module- Q t ` t :module- Q ) entry (
line_count
< > > D " & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
uniqid`: dialplan_entry/ dialplan_label)b iwY keyNy| value?8" wires/4!% limitu dialplan p nya generate_authenticate extension te priority data eadli label uniqid moduleid p data generate_authenticate ? ? ? @ ? ? ?
callflowid
p ( "x generate_simple_dialplan B = B = B = B = = < > < > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: moduleid*& generate_text2speech extension h priority data eadli label uniqid moduleid data generate_text2speech ? ? ? @ ? ? ?
callflowid
p ( @x generate_simple_dialplan B = B = B = B = = < > < > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: moduleid*& generate_saydigits extension h priority data eadli label uniqid moduleid data generate_saydigits ( ( ? ? ? @ ? ? ? Q text1 B < <
is_numeric
a
( . ( ( Q < text1 Q P < d P $ 4 ( d + ( A " Not a valid value for this module." < < gettext Module MID . x error . ; ERROR - Not a valid value for this module: '. ' entry , @
line_count
T > * p h fx generate_simple_dialplan B = B = B = B = = | > | > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: moduleid*& dialplan_entry/ real_module_idy0 =: generate_simple_dialplan extension h priority data eadli label uniqid generate_simple_dialplan ? ? ? @ @ G & + (
callflowid
< * G P checkbox1 H P checkbox2 H P checkbox3 H P checkbox4 H P checkbox5 H P checkbox6 H P checkbox7 H P checkbox8 H P hiddentext1 H P hiddentext2 H P hiddentext3 H P hiddentext4 H P hiddentext5 H P hiddentext6 H P text1 H P text2 H P text3 H P text4 H P text5 H P text6 H P text7 H P textarea1 H P
complex_text1
H P
complex_text2
H P
complex_text3
H P
hiddennumber1
H P pathswitchnumber H P number1 H P number2 H P number3 H P number4 H P number5 H P extension H P list1 H P list2 H P list3 H P list4 H P list5 H P list6 H P list7 H P media_upload H P queuepin H P queueagentloginactivate H P context H P askmoduleid H P extension H P moduleid H P
callflowid
H P hiddenlist1 H P hiddenlist2 H P hiddenlist3 & d P J & x + G ( ) & * G , , R , Vx command @ , & T @ M h N | h &
| & s
+ X 3 * X Q
B < < strlen =/
0 + 0 ` 3 * ` Q D
& X D B < A -PHONE- < < l strstr 7F / l j B < A
CALLGROUP-
< < strstr 7F 4 / o B < A VIRTUAL- < < strstr 7F 4 + R 0Cx command B < A Playback < < strpos
. | R Vx command B < A Queue < < strpos
4 . R 4 dCx command B 4 < A
Background
< < H strpos
\ H 4 \ + p p dCx set_uniqids B = = * ; callrecording_is_activated callrecording_is_activated & = + ; ' extensions_phone_uniqid_to_localchannel' ' extensions_phone_uniqid_to_localchannel' <2 B = = & * ; * extensions_generate_dialstring_from_uniqid* * extensions_generate_dialstring_from_uniqid* +_? B = = & * B
< A < A < < substr B checkbox . $ false 4 $ + & 8 * B < < L
is_numeric
a / ` L B
< A < A < < t substr B t number 4 `
` + B
< A < A < < substr B checkbox + * * /
/i A < B < B < < preg_replace . & * O 1 h M ( N < ( d & P
< & x d /
/i A < A < B < < preg_replace . & * 1 ( entry
line_count
, ids @ > > Q S O & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: dialplan_entry/ possible_fieldsE dialplan dialplan_label)b keyNy| value?8" fieldi|r 2j generate_softhangup extension priority data eadli moduleid label uniqid generate_softhangup 0 0 ? ? ? ? ? ?
line_count
p ( Hx generate_simple_dialplan B = B = B = B = = < & P < Q x entry d < x W
line_count
$ F R Hx command & Hx command Wait(2) 1 + & n * p , Ix generate_simple_dialplan B = B = B = A = = @ & T @ Q | entry h @ | Ix command W
line_count
$ F entry
> >
& /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: dialplan_entry/ tempZk
dialplan_temp_g old_commandg
generate_ringing extension priority data eadli moduleid label uniqid generate_ringing ; ; ? ? ? ? ? ?
line_count
p ( Yx generate_simple_dialplan B = B = B = B = = < & P < Q x entry d < x W
line_count
$ F Q number1 B < < strlen =/ . Q number1 B < <
is_numeric
a 4 + 7 R , Yx command & @ , T Yx command
Wait(number1)
h 1 + h ' & | n * ' p `Zx generate_simple_dialplan B = B = B = A = = & Q entry pZx command W
line_count
$ 0 F 0 * 7 D entry " X " > $ > % & /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: dialplan_entry/ tempZk
dialplan_temp_g old_commandg % / generate_background extension priority data eadli moduleid label uniqid generate_background * * ? ' ? ' ? ' ? ' ? ' ? ' p ^x generate_simple_dialplan ) B = ) B = ) B = ) B = ) = ) & ( ) Q P entry * < * P d * R x ^x command , & x , ^x command - WaitExten(number1) - 1 . + . & n . * . p ^x generate_simple_dialplan / B = / B = / B = / A = / = / & / Q , entry 0 0 , @ 0 T ^x command 1 1 h entry 3 | 3
line_count
4 4 > 5 > 6 & /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: tempZk
dialplan_temp_g old_commandg dialplan_entry/ ' 6 generate_queue extension priority data eadli moduleid label uniqid h
real_module_id generate_queue v v ? 8 ? 8 ? 8 ? 8 ? 8 ? 8 ? 8 R D$x command : & : Q ( hiddentext1 <
< ( < + < = P hiddentext1 > d > * ? QueueLog( A -QUEUE- A A , ,${UNIQUEID},NONE,CALLERID,${CALLERID(all)},, A Q hiddentext1 A A " ,${CUSTOM1},${CUSTOM2},${CUSTOM3})" A x D$x command A A p %x generate_simple_dialplan C B = C B = C B = C B = C = , C & @ , C T 1 E + T # E & h n E * # E Q entry G | T G G W
line_count
H $ H F H @&x command J J R @&x command N & N @&x command O Set(__EXTERNAL_DONT_ANSWER=1) O p 0 @&x generate_simple_dialplan P B = P B = P B = P A = P = D P & X D P Q entry Q l D Q Q W
line_count
R $ R F R &x command S S J V Q checkbox8 X true X + E Y checkbox8 Z Z * G [ 4 checkbox8 \ C H \ p \ ,'x generate_simple_dialplan _ B = _ B = _ B = _ A = _ = p _ & p _ A
/queueid/i
< ` -QUEUE- ` ` A < ` B < ` < preg_replace . ` & ` Q entry b b b W $
line_count
c $ 8 $ c F 8 c R L 'x command g & ` L g QueueLog( h -QUEUE- h h @ ,${UNIQUEID},NONE,QUEUETIMEOUT,${CDR(duration)},${CDR(billsec)})@ h t 'x command h h p (x generate_simple_dialplan i B = i B = i B = i A = i = i & i Q ( entry j j ( < j W P
line_count
k $ d P k F d k x (x command l l
entry p p >
r > s I & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
uniqid`: real_module_idy0 old_commandg tempZk
dialplan_temp_g dialplan_entry/ 8 s generate_press extension priority data eadli moduleid label uniqid real_module_id generate_press d d ? u ? u ? u ? u ? u ? u ? u & w x + y ( ( z < ( ) z & P < z * { R d +x name } x d PressX } + x ~ Q number1 & * R -x name PressX . R t-x name B < A < A < < substr B Press 4 + % R -x name B < A < < , substr B & @ , * % T 0 + T 6 A ' 0 is not a valid value for this module.' < < | gettext | Module MID . h error 3 ; ERROR - 0 is not a valid value for this module: '3 ' entry 0
line_count
D > * 6 R X .x name B X < A < A < < l substr B l Extension + E R L/x name B < A < < substr B j <
strtolower
j & * E B < < strlen =/ . T B < <
is_numeric
a / S R 4 L/x name B 4 < A < A < < H substr B \ H Extension 4 \ 4 + b , ,Goto( -SUB-
,submodule,1)
p entry $ 8
line_count
L * b > > 8 & /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: real_module_idy0 dialplan_label)b local_number+: dialplan_entry/ u W generate_email subject text path eadli email
attachment generate_email ? ? ? ? ? S defaults ' ; notifications_available notifications_available H =
( + (
> *
; % notifications_get_email_configuration% % notifications_get_email_configuration% <R = < & P < G d NOTIFICATION_PBX_EMAIL H d NOTIFICATION_MISSEDCAUSE H d NOTIFICATION_CALLERID H d NOTIFICATION_DATE & x d Q address G H ${MISSEDCAUSE} H ${STRREPLACE(CALLERID(all),\",)} H % ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M)}% & Q notifications_from_callflow B < < strlen =/ + * B < B < Q config Q
notifications
Q , email Q @ , notifications_from_callflow B @ < < T str_replace , l & h T * 0 B < B < Q | notifications_from_callflow B | < < str_replace , l & ; system_get_product_name system_get_product_name = &
& A r < < time m j < date G j < md5 | & 0 D EMAIL- & X
D l D 9 System(echo "Date: \`date -R\`" > /tmp/email-${UNIQUEID})9 System(echo "To: " >> /tmp/email-${UNIQUEID}) u9 B < < strlen =/ + L System(echo "Subject: 4 F , Caller: ${STRREPLACE(CALLERID(all),\",)}" >> /tmp/email-${UNIQUEID})F 4 H * U p System(echo "Subject:
p A Notification: < < gettext F , Caller: ${STRREPLACE(CALLERID(all),\",)}" >> /tmp/email-${UNIQUEID})F \ 1 System(echo "From: $ " >> /tmp/email-${UNIQUEID}) $ 8 7 ` System(echo "X-Mailer: 8 ` `
7 ` ` " >> /tmp/email-${UNIQUEID}) L $ ` t 8 System(echo "Content-Type: multipart/mixed\; boundary=\"8
\"
" >> /tmp/email-${UNIQUEID}) ` System(echo "--
" >> /tmp/email-${UNIQUEID}) ( a System(echo "Content-Type: text/plain\; format=flowed\; charset=UTF-8" >> /tmp/email-${UNIQUEID})a < P ha D System(echo "Content-Disposition: inline" >> /tmp/email-${UNIQUEID})D d x uD J System(echo "Content-Transfer-Encoding: 8bit
" >> /tmp/email-${UNIQUEID})J
System(echo "
" >> /tmp/email-${UNIQUEID}) FuJ System(echo "--
" >> /tmp/email-${UNIQUEID}) , @ + @ h 0 System(echo "Content-Type: audio/x-wav\; name=\"0 | h \"" >> /tmp/email-${UNIQUEID}) T 4 | | J System(echo "Content-Transfer-Encoding: base64" >> /tmp/email-${UNIQUEID})J : System(echo "Content-Disposition: attachment\; filename=\": \"" >> /tmp/email-${UNIQUEID}) J ) System(echo "" >> /tmp/email-${UNIQUEID})) 0 X System(uuencode -m l X l & >> /tmp/email-attachment-${UNIQUEID})& D *x) Q System(cat /tmp/email-attachment-${UNIQUEID} | tail +2 >> /tmp/email-${UNIQUEID})Q System(echo "--
--" >> /tmp/email-${UNIQUEID}) Q 4 * H @ E System(/usr/bin/msmtp -C /etc/msmtp.conf -t < /tmp/email-${UNIQUEID})E \ p E $ System(rm -f /tmp/email-${UNIQUEID})$ + / System(rm -f /tmp/email-attachment-${UNIQUEID})/ 7
System(rm -f
8 8 6 ) !/ * > > t & /offload/rootfs/usr/www/cfeLogic.php.b Module subjectx textJk path2 emailxc
attachmentNT defaults,? emailconfigL; tokensE
replacetokensG# notifications_template_fromM product_namef return_linessOT random_hash) boundary0 Z generate_module_email extension il x priority data moduleid label wires_to uniqid real_module_id generate_module_email ? ? ? ? ? ? ? ? Q text2
+
& ( AskoziaPBX Monitor * Q < text2 & P < Q d checkbox1 x d false + x checkbox1 * Q checkbox2 false + checkbox2 * Q checkbox3 false + ! , checkbox3 @ * ! Q T checkbox4 h T false + h ' | checkbox4 * ' Q checkbox5 false + - checkbox5 * - Q checkbox1 / 1 Q checkbox2 4 / 4 Q 0 checkbox3 4 0 / 7 Q D checkbox4 4 D + ; X
complex_text1
l * ; Q checkbox2 B < < strlen =/ + C
complex_text1
. Date: ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}
. * C Q checkbox1 B < < strlen =/ + K
complex_text1
- Caller ID: ${STRREPLACE(CALLERID(all),\",)}
- 4 * K Q H checkbox3 B H < < \ strlen =/ p \ + p S
complex_text1
Duration: ${ANSWEREDTIME}
* S p <y generate_email B = ]
complex_text1
B = A /tmp/ = ] text1 B = A = = &
+ k 8 <a href="notifications_email.php" target="_blank">E-Mail Notifications</a> must be configured correctly before this will work. Module MID L 8 . $
error L ` > ; ERROR - Notification settings for this module are missing: '> ' t
entry
line_count
>
* k & + M N < & (
& P < $ d F d x + x } + | ( ) & * | * ~
J , , @ , , T @
T
entry l} T h | 1 + | & n * * n 1 * Q
entry B < < count .f
line_count
>
> Y r n & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0 subjectx generate_emailW dialplan_entry/ l1xY keyNy| value?8" dialplan_label)b generate_monitorstop extension p priority data moduleid label wires_to uniqid real_module_id generate_monitorstop ? ? ? ? ? ? ? ? A r < < time m j < date G j < ( md5 | & < ( P - & d P & x
/tmp/ recording &
recording &
email &
, + , ! @ ( " T @ ) " & h T " * # Q | checkbox1 & | false & + & & checkbox1 & & * & & Q checkbox2 ' false ' + , ' checkbox2 ' ' * , ' Q checkbox3 ( 0 false ( + 0 2 ( D checkbox3 ( X ( * 2 ( Q l checkbox4 ) l false ) + 8 ) checkbox4 ) ) * 8 ) Q checkbox5 * false * + > * checkbox5 * * * > * 4 , , H 4 , \ H , p \ ,StopMonitor() , T entry , L* , p , 1 . + I . & n . * I . , 0 0 ,System(sleep 1) 0 T entry 0 * 0 $ 0 ` , 1 t ` 1 t / ,Set(MONITOR_FILENAME=/tmp/monitor-${UNIQUEID})/ 1 T 8 entry 1 L 8 * 1 1 Q text2 3
3 + Z 4 & AskoziaPBX Monitor 5 * \ 6 Q text2 7 & 7 p \+ generate_email : B = : ] (
complex_text1
: B ( = : A /tmp/ = : ] < text1 : B < = : A monitor-${UNIQUEID}.wav = : = P : & d P :
x < + x t = <a href="notifications_email.php" target="_blank">E-Mail Notifications</a> must be configured correctly before this will work. Module MID > . > error > > > ; ERROR - Notification settings for this module are missing: '> ? ' ? entry ? ? ,
line_count
@ @ @ > A * t B + E M T E N h T E E & | h E & E , G G , G G T entry G ,. G 0 G * v H 1 T H * H Q X entry J B X < J < l count .f J D
line_count
J l J > K > L a z v & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0 random_hash) filename_append main_path record_filename record_file
email_fileA dialplan_label)b dialplan_entry/ subjectx generate_emailW keyNy| value?8" L 6Wt generate_recordemail extension l priority data moduleid label wires_to uniqid real_module_id generate_recordemail ? N ? N ? N ? N ? N ? N ? N ? N A r < P < time m P j P < date G P j P < ( md5 | P & < ( P P - Q & d P Q & x
/tmp/ R recording S & S
recording T T & T
email U U &
U Q , checkbox1 X @ , false X + @ X T checkbox1 X h X * X Q | checkbox2 Y | false Y + & Y checkbox2 Y Y * & Y Q checkbox3 Z false Z + , Z checkbox3 Z Z * , Z Q checkbox4 [ 0 false [ + 0 2 [ D checkbox4 [ X [ * 2 [ Q l checkbox5 \ l false \ + 8 \ checkbox5 \ \ * 8 \ , ^ ^ ,Playback(vm-rec-temp) ^ T entry ^ ^ ^ 4 1 ` + 4 B ` & H n ` * B ` , b b ,Record( b b :wav,,,k b Q checkbox1 b b Q checkbox2 b $ b Q 8 checkbox3 b L $ 8 b Q ` checkbox4 b t L ` b t ) b T \ entry b p \ a b b Q text2 d
d + X e & AskoziaPBX Monitor f * Z g Q text2 h & h p (b generate_email k B = k ] (
complex_text1
k B ( = k A /tmp/ = k ] < text1 k B < = k P .wav k A P = k = d k & x d k
m + v n A <a href="notifications_email.php" target="_blank">E-Mail Notifications</a> must be configured correctly before this will work. Module MID%s. < o < gettext o j o B < o < sprintf kV\ o error o o = ; ERROR - Notification settings for this module are missing '= p ' p entry p , p @
line_count
q T q > r * v s M h u N | h u u & | u & u , w w , w 0 w T entry w Te w 0 D w * w x 1 h x Q l entry z B l < z < count .f z X
line_count
z z > { > | b { w & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0 random_hash) filename_append main_path record_filename record_file
email_fileA dialplan_entry/ subjectx generate_emailW keyNy| value?8" N | m generate_dialplan extension priority data moduleid label wires_to uniqid real_module_id
dialed_number generate_dialplan ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ G & R ( i name & <
( p P i is_file_missing B = = d & x d + @ B < < is_array )V + + M ) N ) &
& B < < strlen =/ + ( A $ File for module WID%s-%s is missing.$ < < @ gettext T @ <br> A T < B < B
< < h sprintf kV\ , error h | * ( * 1 * 8 B < < strlen =/ + 8 A $ File for module WID%s-%s is missing.$ < < gettext j B < B < < sprintf kV\ error * 8 + ; ERROR - File for this module is missing '+ 0 '! entry 0 D X
line_count
l > * @ p i is_data_missing B = = & + s B < < is_array )V + ^ M \ N \ &
& B < < 4 strlen =/ H 4 + H [ A $ Data for module WID%s-%s is missing.$ < < p gettext p <br> A < B < B
< < sprintf kV\ \ error * [ * I 1 * k B < < strlen =/ + k A $ Data for module WID%s-%s is missing.$ < < gettext j B < B < < sprintf kV\ error $ * k L + ; ERROR - Data for this module is missing '+ ` L '! 8 entry ` t
line_count
> * s R i ignore_this_module + { entry
line_count
> * { R m command B < < ( strlen =/ < ( + < d + ; ERROR - No command available for module '+ x d '! P entry x
line_count
> * B
< < strlen =/ + ( ; ERROR - No name available for module '( '! entry , @
line_count
T > * p h i set_dialplan_counter A = = | B
< A < A < < substr B Press + &
Press * B
< A < A < < substr B Extension + &
Extension * 0
SoftHangup
+ p n generate_softhangup B = B = B = B = B = B = = 0 > 0 2 * 0
Ringing + p D Ho generate_ringing B = B = B = B = B = B = = X > X 2 * 0
Background
+ p l Ho generate_background B = B = B = B = B = B = = > 2 * 0
TimeSwitch
+ p Ho generate_timebox B = B = B = B = B = B = B = = > 2 * 0
CalenderSwitch + p Ho generate_calenderswitch B = B = B = B = B = B = B = = > 2 * 0
WaitForSilence + p Ho generate_waitforsilence B = B = B = B = = > 2 * 0
CallerID + p Ho generate_callerid B = B = B = B = = > 2 * 0
CallerIDName + p 4 Ho generate_calleridname B = B = B = B = = H > H 2 *
0
Answer + p \ o generate_answer B = B = B = B = = p > p 2 * 0
Email + % p p generate_module_email B = B = B = B = B = B = B = B = = > 2 * ' 0
Switch + 2 p p generate_switch B = B = B = B = B = B = = > 2 * 4 0
SwitchManually + ? p p generate_switch B = B = B = B = B = B = = > 2 * A 0
Queue + M p ,q generate_queue B = B = B = B = B = B = B = = > 2 * O 0
Press + [ p $ lq generate_press B = B = B = B = B = B = B = = 8 > 8 2 * ] 0
Extension + h p L lq generate_press B = B = B = B = B = B = = ` > ` 2 * j 0
Goto + s p t q
generate_goto
B = B = B = B = = > 2 * u 0
MaximumCalls + p q generate_maximumcalls B = B = B = B = B = B = B = = > 2 * 0
If + p q generate_if B = B = B = B = B = B = = > 2 * 0
IfManually
+ p q generate_if B = B = B = B = B = B = =
>
2 * 0
PathSwitch
+ p
q generate_path_switch B = B = B = B = B = B = B = B = = (
> (
2 * 0
Authenticate + p <
q generate_authenticate B = B = B = B = B = B = B = = P
> P
2 * 0
Text2Speech + p d
q generate_text2speech
B =
B =
B =
B =
B =
B =
B =
= x
> x
2 * 0
SayDigits + p
q generate_saydigits
B =
B =
B =
B =
B =
B =
B =
=
>
2 * 0
RecordEmail + p
q generate_recordemail B = B = B = B = B = B = B = B = =
>
2 * 0
MonitorStop + p
q generate_monitorstop B = B = B = B = B = B = B = B = =
>
2 * * p q generate_simple_dialplan B = B = B = B = B = = > 2 * * > ) M I \ & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0
dialed_number6] dialplan_entry/ name file_missing^Zhu keyNy| value?8" data_missingi ~
name <`u st cannot_connect_to #c r only_connect_to ? command "c %L ignore_this_module hu CV+D needed_data
needed_files ju last_dialplan_counter \ku c
asterisk_modules vu uniqids
name name st cannot_connect_to cannot_connect_to str only_connect_to only_connect_to r? command command ?%L ignore_this_module ignore_this_module %LCV+D needed_data needed_data CV+D
needed_files needed_files last_dialplan_counter last_dialplan_counter c
asterisk_modules asterisk_modules c
vu uniqids uniqids vu & /offload/rootfs/usr/www/cfeLogic.php.b module Cont D j` setposterrormessages b s setPostErrorMessages ? ; 8 post_error_messages = = > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont bvY ; > C
set_uniqids
uniqids_array set_uniqids ? B B < D < is_array )V D + E R H uniqids F B < F < ( is_array )V F
< ( F + <
F G d F P 8 uniqids F d F *
F R uniqids G B < G B < G < array_merge y G x 8 uniqids G G * H U 8 uniqids I d I I > K & /offload/rootfs/usr/www/cfeLogic.php.b Cont
uniqids_array H B K A get_uniqids get_uniqids R 8 uniqids O > O > P & /offload/rootfs/usr/www/cfeLogic.php.b Cont M P getasteriskapplicationloadlist getAsteriskApplicationLoadList R asterisk_modules T
T / T R ( asterisk_modules T B ( < T < < is_array )V T
P < T 4 P T / T A res_clioriginate.so < T R d asterisk_modules T B d < T < x in_array :f T
x T 4 T + U U asterisk_modules V
V res_clioriginate.so V * W R asterisk_modules Y > Y > Z & /offload/rootfs/usr/www/cfeLogic.php.b Cont R Z g,"! ! addasteriskapplicationtoloadlist module addAsteriskApplicationToLoadList ? \ R $ modules ^ Q ^
( ^ + ( ^ > ^ * ^ R < $ modules ` Q P < ` p d P get_asterisk_application ` = x ` + x a R T modules b Q b p get_asterisk_application b = b U T asterisk_modules b b b * c > d & /offload/rootfs/usr/www/cfeLogic.php.b Cont module \ d ]p getrealmoduleid moduleid getRealModuleID ? f p T getDataFromContainer h B = h A moduleid = h = h > h > i & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& f i E" " getcontainermoduleidthroughsearch moduleid main
subcontext whichcontext ! getContainerModuleIDThroughSearch @ k @ k @ k @ k & m & n ( p + ( q p < getDataFromContainer r B = r A moduleid = r = P r & d P r * s & x t w + x p getFirstExtension y = y & y z + { R ( uniqid | & | * } & ~ & , * p @ getConnectedContainerTo B = A = = T & h T | + | & M N & &
& p ` getContainerTitle B = = 0 j 0 A < A < < D substr B X D Press + X 5 & l * 5 p getContainerTitle B = = j A < A < < substr B Extension + @ & * @ p get_extension_from_title p getContainerTitle B = = j = j < 4 strlen =/ H 4 + H R p \ get_extension_from_title p p getContainerTitle B = = j = & * R p getContainerTitle B = = j A < A < < substr B Press + c p getContainerTitle B = = $ j $ A < < 8 substr B & L 8 * c & ` p t getRealModuleID B = = + p + m 1 > * o 1 > submodule * p p getContainerTitle B = = j A < A < < substr B Press + p get_subcontext_moduleid B = = & ( & < * p P t# getContainerTitle B = = d j d A < A < < x substr B x Extension + p t# get_subcontext_moduleid B = = & & * p t# ! getContainerModuleIDThroughSearch! B = B = B = B = = &
B
< < , strlen =/ @ , + @ 1 >
* < T flush G * % 1 * > > R ) % & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& mainl
subcontextt whichcontext] debugJ~ start3
j_moduleidA start_moduleid childContainer
jump_contexte67 cwY c_valuedc^ switched_context r_value9\ k q_ getcontextfrommoduleid moduleid eid main
subcontext getContextFromModuleID @ @ @ & & ( + (
p < getDataFromContainer B = A moduleid = = P & d P * & x + p getContainerTitle B = = TITLE: <br> ( * + * + START ( , , )<br> ( , * p @ D getFirstExtension = T & h T | + | ' R T uniqid & * ' & & * * p getConnectedContainerTo B = A = = & + & 0 M D N X D & l
X & & + K p getContainerTitle B
= = check (
, 4 H 4 , p \ d getRealModuleID B
= = p H p , )<br> ( * K p getRealModuleID B
= = + _ + W j_moduleid: $ main: 8 $ L 8 <br> ( L * W + \ ` FINISHED... t ` <br> ( t * \ 1 D > * _ p 4 getContainerTitle B
= = j A < A < < substr B Press + r p D get_subcontext_moduleid B
= = & + q Subcontext gefunden... ( <br> ( ( * q * r p < getContainerTitle B
= = P j P A < A < < d substr B x d Extension + x p get_subcontext_moduleid B
= = & + Subcontext gefunden... <br> ( * * +
go to module
, <br> ( , * p @ x getContextFromModuleID B
= B = B = = T & h T B < < | strlen =/ | + 1 D > * < flush G * 3 1 D * > V 7 3 & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& mainl
subcontextt debugJ~ start3
j_moduleidA start_moduleid childContainer
jump_contexte67 cwY c_valuedc^ r_value9\ get_text2speech get_text2speech . . R !
containers
B < < count .f ( + ( > * & <
R P
containers
M d P + N x d + & x & Q title Text2Speech + * [ " modules s Text2Speech + ) R @ XS
containers
Q T @ Q h T
dataContainer
Q | h text1 T , text | R hS
containers
Q Q
dataContainer
Q moduleid T moduleid R X hS uniqid T 0 D 0 callflow X l $ F * ) * * *
1 d > > !
+ & /offload/rootfs/usr/www/cfeLogic.php.b Cont text_counter?e keyNy| value?8" membersw i get_musiconhold get_musiconhold K K R hS
containers
B < < count .f ( + ( > * ! & < # R P "
containers
% M d P H % N x d H % % & x % & % Q title & MusicOnHold & + G ' [ T modules ( s MusicOnHold ( + F ) T * , moduleid * @ * p | getRealModuleID + B = + = + T T + h T realModuleID + + R
containers
, Q , Q
dataContainer
, Q text1 , T , file , 0 , Q D / Q X D file / l X _dir / A l < / < is_dir /
/ + @ 0 Q 2 Q file 2 _dir 2 A < 2 < mkdir |2
2 Q 3 Q file 3 .ulaw 3 A < 3 Q 4 3 Q H 4 file 3 \ H _dir/ 3 Q p 3 Q p file 3 B < 3 < basename a] 3 \ 3 .ulaw 3 A < 3 < copy D= 3 * @ 4 W 6 file 6 _dir 6 $ $ 8 F $ 8 * F 9 * G : *
; 1 d ; > = > > 6
H & /offload/rootfs/usr/www/cfeLogic.php.b Cont
music_counterP keyNy| value?8" musiconhold_class > |y get_queues
get_queues R
containers
B B < B < count .f B ( B + ( C > D * E & < G R P D
containers
I M d P I N x d I I & x I & I Q title J Queue J + K [ ~ modules L s Queue L + M T N , moduleid N @ N p | getRealModuleID O B = O = O T T O h T realModuleID O O R ,
containers
P Q P Q
dataContainer
P Q number1 P T P timeout P 0 P R l l
containers
Q Q l Q Q
dataContainer
Q Q number4 Q T D Q X D try_interval Q Q R
containers
R Q R Q
dataContainer
R Q 4
hiddennumber1
R T R weight R 4 H R [ \
containers
T Z p \ T Z p
dataContainer
T s hiddentext1 T . ? T R
containers
T Q T Q
dataContainer
T Q hiddentext1 T B < T < strlen =/ T T 4 T + H U R L
containers
U Q ` L U Q t `
dataContainer
U Q t hiddentext1 U T $ U 8 $ description U U * H U R
containers
V Q V Q
dataContainer
V Q number2 V T V
announce_freq
V ( V R d
containers
W Q x d W Q x
dataContainer
W Q list2 W T < W P < type W W R $k
containers
X Q X Q
dataContainer
X Q , text1 X T X
announce_file
X , @ X R | `k
containers
Y Q | Y Q
dataContainer
Y Q number3 Y T T Y h T wrapup_time Y Y R k
containers
Z Q Z Q
dataContainer
Z Q checkbox3 Z 0 y Z + 0 n [ T D \ X D ringinuse \ no l \ * q ] T ^ ringinuse ^ yes ^ R k
containers
` Q ` Q
dataContainer
` Q checkbox4 ` y ` + { a T b 4 joinempty b yes H b * ~ c T \ d p \ joinempty d no d R l
containers
f Q f Q
dataContainer
f Q checkbox5 f y f + g T h leavewhenempty h yes $ h * i T 8 j L 8 leavewhenempty j no ` j R t Lm
containers
m Q t m Q
dataContainer
m Q checkbox6 m y m + n T o announce-holdtime o yes
o * p T
q (
announce-holdtime q no <
q R P
m
containers
t Q d
P
t Q x
d
dataContainer
t Q
x
checkbox7 t
y t +
u T
v
announce-position v yes
v * w R
xn
containers
y Q
y Q
dataContainer
y Q , checkbox7 y @ , y y / @ @ y R T n
containers
y Q h T y Q | h
dataContainer
y Q | checkbox6 y y y 4 @ y + @ z R o
containers
{ Q { Q
dataContainer
{ Q number5 { B < { < strlen =/ { { + | T 0 } D 0 announce-frequency } X } * ~ R o
containers
Q Q
dataContainer
Q number5 T l l announce-frequency * T
announce-frequency 0
R \
8p
containers
Q p
\
Q
p
dataContainer
Q
hiddentext1 T 4
H
4
name
R
8p
containers
Q
Q
dataContainer
Q $ queuepin T
queuepin $ 8 R t 8p
containers
Q t Q
dataContainer
Q queueagentloginactivate T L ` L queueagentloginactivate R 8p modules Q Queue p get_queue_members p q getConnectedWireTo B = A = = ( j ( = < M P < N d P & x d & R q
containers
Q Q title QueueMember + R @ r
containers
Q T @ Q h T
dataContainer
Q | h list1 T T phones , r | * * 1 P $ F * * *
1 d > >
& /offload/rootfs/usr/www/cfeLogic.php.b Cont
queue_counter)f keyNy| value?8" membersw
module_key{H[ module_value'oh @ & get_playback_modules get_playback_modules 3 3 R q
containers
B < < count .f ( + ( > * & < R P ~
containers
M d P 0 N x d 0 & x & Q title Playback + / [ u modules s Playback + . T , moduleid @ p | u getRealModuleID B = = T T h T realModuleID R v
containers
Q Q
dataContainer
Q
hiddennumber1
T pin 0 R l Hv
containers
Q l Q
dataContainer
Q text1 T D X D file $ F * . * / *
1 d > > %
0 & /offload/rootfs/usr/www/cfeLogic.php.b Cont playback_counterY keyNy| value?8" membersw get_pressextension_modules get_pressextension_modules 3 3 R v
containers
B < < count .f ( + ( > * & < R P u
containers
M d P 0 N x d 0 & x & Q title
Background
+ / [ x modules s
Background
+ . T , moduleid @ p | 0y getRealModuleID B = = T T h T realModuleID R Xy
containers
Q Q
dataContainer
Q
hiddennumber1
T pin 0 R l y
containers
Q l Q
dataContainer
Q text1 T D X D file $ F * . * / *
1 d > > %
0 & /offload/rootfs/usr/www/cfeLogic.php.b Cont playback_counterY keyNy| value?8" membersw Z get_path_switches get_path_switches : : R y
containers
B < < count .f ( + ( > * & < R P x
containers
M d P 7 N x d 7 & x & Q title
PathSwitch
+ 6 [ h| modules s
PathSwitch
+ 5 T , moduleid @ p | | getRealModuleID B = = T T h T realModuleID R |
containers
Q Q
dataContainer
Q
hiddennumber1
T pin 0 R l (}
containers
Q l Q
dataContainer
Q hiddentext1 T D X D name R |}
containers
Q Q
dataContainer
Q 4
complex_text1
T execute 4 H $ \ F \ * 5 * 6 *
1 d > > ,
7 & /offload/rootfs/usr/www/cfeLogic.php.b Cont
queue_counter)f keyNy| value?8" membersw set_uniqid uniqid s
set_uniqid ? |} uniqid > & /offload/rootfs/usr/www/cfeLogic.php.b Cont uniqid`: '^ reset_priority pri reset_priority @
+ R ( old_priority priority ( * < old_priority P priority > & /offload/rootfs/usr/www/cfeLogic.php.b Cont pripl| get_next_priority get_next_priority R priority old_priority R ( priority < ( 0 / < < R P priority d P Z 4 < d + <
x priority 1 * R priority 1 + P priority n * R priority > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont V5\u201c dialplan_generate_hangup extension priority dialplan_generate_hangup ?
?
, ( , ,Hangup() ; Hangup to terminate the dialplan, > ( >
& /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y priority
Rm get_config_file_buffer line_delimiter fer get_config_file_buffer D D @
J R < write_conf_buffer M A N ( A P & < ( & d P x + x [ ] * M ? N ? & & , M @ = N T @ = | & h T & | B < < is_array )V + 0 M . N . & & B < ! A < ! A < ! < substr B ! 0 ; ! + 0 * " D # X D # * - $ l exten => % l % % * ' 1 ' * < ( B < ) A < ) A < ) < substr B ) ; ) + 9 * + + * < , exten => - - - * 0 1 @ 0 * 1 1 1 * 2 1 2 > 3 > 4 ) A ? = ! . & /offload/rootfs/usr/www/cfeLogic.php.b Cont
line_delimiterr~ buffer?
context_idV3 context
B keyNy| value?8" key2 value246@i key3 value3U6@i 4 md write_conf_file_buffer write_conf_file_buffer R write_conf_buffer 8 M 8 N ( 8 P 8 & < ( 8 & d P 8 M x : N x : : & : & : R t fp = B < =
= A < = < fwrite ,T = * > 1 x > * ? 1 ? > @ & /offload/rootfs/usr/www/cfeLogic.php.b Cont keyNy| value?8" key2 value246@i 6 @ 6Y write_conf_file extension fer string write_conf_file @ B ? B R X
subcontext
D U X write_conf_buffer D T ( D T < ( D P < D d D > E & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y string| B E 8WP post_error_message text fer post_error_message ? G R O post_error_messages I + J <br> K ( K < ( flush G L * M > N & /offload/rootfs/usr/www/cfeLogic.php.b Cont textJk G N nN set_extension extension
set_extension
? P O ext R R R O
ext_global
S ( S + ( T < <@
ext_global
U U * V p P O reset_priority W A Z = W = d W > X & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y P X set_dialed_number extension set_dialed_number ? Z L@
dialed_number
\ \ > ] & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y Z ] 6 reset_subcontext reset_subcontext tB
subcontext
a a > b & /offload/rootfs/usr/www/cfeLogic.php.b Cont _ b j get_subcontext_moduleid moduleid leid get_subcontext_moduleid ? d R E uniqid f -SUB- f ( f > ( f > g & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& d g ~ set_subcontext_moduleid moduleid leid set_subcontext_moduleid ? i p G set_subcontext k R H uniqid k ( -SUB- k < ( k A < = k = P k > l & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& i l set_subcontext
subcontext set_subcontext ? n TJ
subcontext
p p > q & /offload/rootfs/usr/www/cfeLogic.php.b Cont
subcontextt n q 6M reset_to_global_extension reset_to_global_extension R dJ
ext_global
u dJ ext u u > v & /offload/rootfs/usr/www/cfeLogic.php.b Cont s v qg
init_modules init_modules Y Y m Module { D { = ( { & < { p P init | A Tone = | A & Playback(askozia-music/askozia_jingle)& = | G d | A d = | = x | U M modules } Tone } } m Module D = & p
set_ignore
A = = , p @ init A Note = A Note = G T A T = = h U | N modules | Note m Module D = & p
set_ignore
A = = p 0 init A Start = A Start = G D Hangup A D = = X U l xN modules l Start m Module D 0 = & p init A Answer = A Answer(number1) = G Hangup A = = U 4 p modules H 4 Answer \ m p Module D p = = & p init A Hangup = A Hangup() = G A = = U dp modules Hangup $ m 8 Module D L 8 J = ` & t L p init A
SoftHangup
= A SoftHangup(list1,a) = G A = = p set_asterisk_application A app_softhangup.so = = U ] modules
SoftHangup
m ( Module D < ( Z = P & d < p x init A Phone = A C Dial(list1,number1,checkbox1checkbox2checkbox3checkbox4checkbox5go)C = G A = = U ] modules Phone m Module D g = & , p @ init A
DialNumber
= A & Goto(CFE-PHONE-UNIQUE-list1,number1,1)& = G T A T = = h U | ^ modules |
DialNumber
m Module D t = & p init A Voicemail = A : Voicemail(list1,checkbox1checkbox2checkbox3,hiddennumber1): = G A = = 0 U D ^ modules X D Voicemail l m Module D = & ; wit_browser_notifications_active wit_browser_notifications_active ] = + p init A WebIntegration = A k AGI(/usr/www/external_push_notification.sh,list1,"complex_text1","hiddentext1",hiddenlist2,"complex_text2")k = G A = = * p init A WebIntegration = A j NoOp(Web Integration is disabled for CFE: list1,"complex_text1","hiddentext1",hiddenlist2,"complex_text2")j = G 4 A 4 = = H p \ set_needed_data A list1 = = p p set_needed_data A
complex_text1
= = U 4_ modules WebIntegration m Module D = & $ p 8 init A Authenticate = A Authenticate(number1) = G L A L = = ` p t set_needed_data A number1 = = U a modules Authenticate m Module D =
&
p (
init A Authenticate = A Authenticate(number1) = G <
A <
= = P
p d
set_needed_data A number1 = = x
U
Hb modules
Authenticate
m
Module D
=
&
p init A SQLQuery = A > AGI(/usr/www/external_sql_interface.php,list1,"complex_text1")> = G , A , = = @ p T set_needed_data A list1 = = h p | set_needed_data A
complex_text1
= = U b modules SQLQuery m Module D = & p 0 init A ActionURL = A & Set(CURLRESULT=${CURL(complex_text1)})& = G D A D = = X p l set_needed_data A
complex_text1
= = p set_asterisk_application A func_curl.so = = U c modules ActionURL m Module D
=
& 4
p H
init A Queue = A 5 Queue(queueid,tcheckbox1checkbox2checkbox8,,,number1)5 = G \
A \
= = p
p
set_needed_data G
number1 H
number2 H
number3 H
number4 A
= =
p
set_asterisk_application G
app_queue.so A
= =
p
set_needed_files A text1 = = U $ d modules 8 $ Queue L m ` Module D t ` = & t p
set_ignore
A = = p init A QueueMember = A QueueMember = G A = = U 0f modules ( QueueMember < m P Module D d P = x & d p init A Transfer = A Transfer(list1) = G A = = p set_asterisk_application A app_transfer.so = = U f modules Transfer , m @ Module D T @ = h & | T p init A MusicOnHold = A 8 Set(CHANNEL(musicclass)=callflowid-MUSICONHOLD-moduleid)8 = G A = = U \g modules MusicOnHold m Module D , = 0 & D p X init A Wait = A
Wait(number1)
= G l A l = = p set_needed_data A number1 = = U g modules Wait m Module D < = & 4 p H init A WaitForSilence = A ' WaitForSilence(number2,number3,number1)' = G \ A \ = = p p set_asterisk_application A app_waitforsilence.so = = p set_needed_data G number1 H number2 H number3 A = = U h modules WaitForSilence m $ Module D 8 $ R = L & ` 8 p t init A WaitMusicOnHold = A MusicOnHold(,number1) = G A = = p set_needed_data A number1 = = U i modules WaitMusicOnHold m Module D ( b = < & P ( p d init A WaitForExtension = A WaitExten(number1) = G x A x = = U Lj modules WaitForExtension m Module D o = & p , init A ChanIsAvailable = A ChanIsAvail(list1,as) = G @ A @ = = T p h set_asterisk_application A app_chanisavail.so = = | U j modules ChanIsAvailable m Module D = & p init A Ringing = A Ringing() = G 0 A 0 = = D U X k modules l X Ringing m Module D = & p init A Text2Speech = A R Playback(/storage/usbdisk1/askoziapbx/media/sounds/cfe/speech_moduleid_callflowid)R = G A = = p set_needed_data A text1 = = 4 U H k modules \ H Text2Speech p m Module D = & p init A SayDigits = A SayDigits(text1) = G A = = p set_needed_data A text1 = = $ U 8 l modules L 8 SayDigits ` m t Module D t = & p init A
Background
= A Background(text1) = G A = = p set_needed_data A text1 = = p ( set_needed_files A text1 = = < U P lm modules d P
Background
x m Module
D
=
&
p init A Playback = A Playback(text1) = G A = = p set_needed_data A text1 = = , p @ set_needed_files
A text1 =
= T
U h 4n modules | h Playback m Module D = & p init A Playtones = A Playtones(list1) = G A = = p 0 set_needed_data A list1 = = D U X n modules l X Playtones m Module D = & p init A
StopPlaytones
= A StopPlaytones() = G A = = U o modules 4
StopPlaytones
H m \ Module D p \ = & p p init A Busy = A
Busy(number1)
= G A = = p set_needed_data A number1 = = U p modules $ Busy 8 m L Module D ` L = t & ` p init A
Congestion
= A Congestion(number1) = G A = = p set_needed_data A number1 = = U Lq modules !
Congestion
! ( ! m < Module # D P < # = d # & x P # p init $ A Echo = $ A Echo() = $ G $ A = $ = $ U q modules % Echo % % m Module ' D ' = , ' & @ ' p T init ( A Milliwatt = ( A Milliwatt() = ( G h ( A h = ( = | ( U Hr modules ) Milliwatt ) ) m Module + D ) + = + & + p init , A If = , A If = , G 0 , A 0 = , = D , p X set_needed_data - G l list1 - A l = - = - U r modules . If . . m Module 0 D : 0 = 0 & ! 0 p ! init 1 A
IfManually
= 1 A
IfManually
= 1 G 4! 1 A 4! = 1 = H! 1 p \! set_needed_data 2 G p! list1 2 A p! = 2 = ! 2 U ! <s modules 3 ! !
IfManually
3 ! 3 m ! Module 5 D ! ! K 5 = ! 5 & " ! 5 p $" init 6 A
PathSwitch
= 6 A
PathSwitch
= 6 G 8" 6 A 8" = 6 = L" 6 U `" s modules 7 t" `"
PathSwitch
7 " 7 m " Module 9 D " " X 9 = " 9 & " " 9 p " init : A MaximumCalls = : A MaximumCalls = : G # : A # = : = # : p (# set_needed_data ; A number1 = ; = <# ; p P# set_asterisk_application < A func_groupcount.so = < = d# < U x# <t modules = # x# MaximumCalls = # = m # Module ? D # # k ? = # ? & # # ? p $ init @ A
TimeSwitch
= @ A
TimeSwitch
= @ G $ @ A $ = @ = ,$ @ U @$ u modules A T$ @$
TimeSwitch
A h$ A m |$ Module C D $ |$ x C = $ C & $ $ C p $ init D A CalenderSwitch = D A CalenderSwitch = D G $ D A $ = D = $ D U % u modules E % % CalenderSwitch E 0% E m D% Module G D X% D% G = l% G & % X% G p % init H A Email = H A Email = H G % H A % = H = % H p % set_needed_data I G % text1 I H % text2 I A % = I = % I U & v modules J & & Email J 4& J m H& Module L D \& H& L = p& L & & \& L p & init M A Switch = M A Switch = M G & M A & = M = & M p & set_needed_data N G & list1 N A & = N = & N U ' v modules O $' ' Switch O 8' O m L' Module Q D `' L' Q = t' Q & ' `' Q p ' init R A SwitchManually = R A SwitchManually = R G ' R A ' = R = ' R p ' set_needed_data S G ' list1 S A ' = S = ( S U ( w modules T (( ( SwitchManually T <( T m P( Module V D d( P( V = x( V & ( d( V p ( init W A Goto = W A # Goto(context,extension,askmoduleid)# = W G ( W A ( = W = ( W U ( w modules X ( ( Goto X ) X m ) Module Z D ,) ) Z = @) Z & T) ,) Z p h) init [ A SendDTMF = [ A SendDTMF(number2) = [ G |) [ A |) = [ = ) [ p ) set_asterisk_application \ A app_senddtmf.so = \ = ) \ U ) x modules ] ) ) SendDTMF ] ) ] m * Module _ D * * _ = 0* _ & D* * _ p X* init a A
ExtensionH
= a A
ExtensionH
= a G l* a A l* = a = * a U * x modules b * *
ExtensionH
b * b m * Module d D * * d = * d & + * d p + init f A
ExtensionF
= f A
ExtensionF
= f G 4+ f A 4+ = f = H+ f U \+ ,y modules g p+ \+
ExtensionF
g + g m + Module i D + + i = + i & + + i p + init k A
ExtensionT
= k A
ExtensionT
= k G + k A + = k = , k U $, y modules l 8, $,
ExtensionT
l L, l m `, Module n D t, `, n = , n & , t, n p , init p A
ExtensionI
= p A
ExtensionI
= p G , p A , = p = , p U , z modules q - ,
ExtensionI
q - q m (- Module s D <- (-
s = P- s & d- <- s p x- init u A
ExtensionS
= u A
ExtensionS
= u G - u A - = u = - u U - pz modules v - -
ExtensionS
v - v m - Module x D . - x = . x & ,. . x p @. init y A PressX = y A PressX = y = T. y p h. set_needed_data z A number1 = z = |. z U . z modules { . . PressX { . { m . Module } D . . % } = . } & / . } p / init ~ A Press1 = ~ A Press1 = ~ G 0/ ~ A 0/ = ~ = D/ ~ U X/ d{ modules l/ X/ Press1 / m / Module D / / 2 = / & / / p / init A Press2 = A Press2 = G / A / = = 0 U 0 { modules 40 0 Press2 H0 m Module D p0 ? = 0 & 0 p0 p 0 init A Press3 = A Press3 = G 0 A 0 = = 0 U 0 $| modules 0 0 Press3 1 m $1 Module D 81 $1 L = L1 & `1 81 p t1 init A Press4 = A Press4 = G 1 A 1 = = 1 U 1 | modules 1 1 Press4 1 m 1 Module D 2 1 Y = 2 & (2 2 p <2 init A Press5 = A Press5 = G P2 A P2 = = d2 U x2 | modules 2 x2 Press5 2 m 2 Module D 2 2 f = 2 & 2 2 p 3 init A Press6 = A Press6 = G 3 A 3 = = ,3 U @3 D} modules T3 @3 Press6 h3 m |3 Module D 3 |3 s = 3 & 3 3 p 3 init A Press7 = A Press7 = G 3 A 3 = = 3 U 4 } modules 4 4 Press7 04 m D4 Module D X4 D4 = l4 & 4 X4 p 4 init A Press8 = A Press8 = G 4 A 4 = = 4 U 4 ~ modules 4 4 Press8 4 m 5 Module D 5 5 = 45 & H5 5 p init A Press9 = A Press9 = G p5 A p5 = = 5 U 5 d~ modules 5 5 Press9 5 m 5 Module D 5 5 = 5 & 6 5 p $6 init A RecordEmail = A RecordEmail = G 86 A 86 = = L6 p `6 set_needed_data G t6 text1 H t6 text2 A t6 = = 6 U 6 ~ modules 6 6 RecordEmail 6 m 6 Module D 6 6 = 7 & 7 6 p (7 init A Monitor = A ' Monitor(wav,/tmp/monitor-${UNIQUEID},m)' = G <7 A <7 = = P7 p d7 set_asterisk_application G x7 res_monitor.so H x7
chan_agent.so
A x7 = = 7 U 7 h modules 7 7 Monitor 7 m 7 Module D 7 7 = 8 & 8 7 p ,8 init A MonitorStop = A MonitorStop = G @8 A @8 = = T8 p h8 set_needed_data G |8 text1 H |8 text2 A |8 = = 8 U 8 @ modules 8 8 MonitorStop 8 m 8 Module D 8 8 = 9 & 9 8 p 09 init A MonitorPause = A PauseMonitor() = G D9 A D9 = = X9 U l9 modules 9 l9 MonitorPause 9 m 9 Module D 9 9 = 9 & 9 9 p 9 init A MonitorUnpause = A UnpauseMonitor() = G : A : = = : U 4: \ modules H: 4: MonitorUnpause \: m p: Module D : p: = : & : : p : init A SetLanguage = A Set(CHANNEL(language)=list1) = G : A : = = : U : modules ; : SetLanguage $; m 8; Module D L; 8; = `; & t; L; p ; init A Read = A % Read(text1,,number1,,number2,number3)% = G ; A ; = = ; p ; set_needed_data G ; text1 H ; number1 H ; number2 H ; number3 A ; = = ; U < X modules < < Read (< m << Module D P< << = d< & x< P< p < init A System = A
System(text1)
= G < A < = = < p < set_needed_data A text1 = = < U < 0 modules = < System = m ,= Module D @= ,= = T= & h= @= p |= init A Command = A text1 = G = A = = = = p = set_needed_data A text1 = = = U = modules = = Command > m > Module D 0> > + = D> & X> 0> p l> init A CallerID = A text1 = G > A > = = > p > set_needed_data A text1 = = > U > H modules > > CallerID > m ? Module D ? ? ; = 4? & H? ? p \? init A CallerIDName = A text1 = G p? A p? = = ? p ? set_needed_data A text1 = = ? U ? modules ? ? CallerIDName ? m ? Module D @ ? K = $@ & 8@ @ p L@ init A Log = A Log(list1,text1) = G `@ A `@ = = t@ p @ set_needed_data A text1 = = @ U @ p modules @ @ Log @ > ? & /offload/rootfs/usr/www/cfeLogic.php.b Cont
new_module}t x 4 U check_container_connection to from check_container_connection ' ' ? ? [ < modules s
( + ( > * R < < modules Q P < R d P only_connect_to x d + x B < R modules Q R only_connect_to B < < in_array :f
> * R modules Q R cannot_connect_to B < < , is_array )V
@ , + @ > * B < R T modules Q h T R | h cannot_connect_to j | < in_array :f > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont to from,u check_container_tagging check_container_tagging ( ( p getFirstExtension = R (
containers
M < ( % N P < % x & d P & x p isContainerTagged B = =
+ $ p getContainerTitle B = = & Note + 3 * p , post_error_message A Not all modules can be reached < < @ gettext T @ (MID p h getDataFromContainer B = A moduleid = = | T | ) A = = 1 < > * $ * 1 < > > % & /offload/rootfs/usr/www/cfeLogic.php.b Cont keyNy| value?8" check_container_titlef~E ;2 check_container cont from check_container ? ? ? ? p getShortContainerTitle B = = & ( p < getConnectedContainerTo B = B = = P & d P p x getDataFromContainer B = A moduleid = = MID & & + p getShortContainerTitle B = = & * M , < N @ , < h & T @ & | h p getShortContainerTitle
B =
=
&
p check_container_connection B = B = = + ;
p p getDataFromContainer B = A moduleid = = MID & 0 p D p post_error_message A & %s can not be connected to %s (%s, %s)& < < X gettext j X B < B < B < B < < l sprintf kV\ j l = 1 , > * ; * 1 , > > ! < & /offload/rootfs/usr/www/cfeLogic.php.b Cont
cont:= from,u check_container_titlef~E check_connected_title9 cont_idgB
from_title+ c_key< c_valuedc^ cvalue_titlefx from_id4 h0 save_jsondata jsondata le uniqid
save_jsondata ' ' ? ? A /tmp/cache/ < < is_dir
+ A /tmp/cache/ < < ( mkdir |2
* < /tmp/cache/JSON_ & P < B < < d is_file `(( + d ! ; file_get_content file_get_content " B = " = x " j x " < unserialize 5} " > " * # m
Services_JSON
$ D $ c SERVICES_JSON_LOOSE_TYPE $ A = $ = $ & $ p decode % B = % = % & , % ; util_file_put_contents util_file_put_contents M& B < & < @ serialize
& j @ & B = & = T & > ' > ( & /offload/rootfs/usr/www/cfeLogic.php.b Cont jsondata uniqid`: filename& json_service/\^ temp_jsonk* ( Y, init jsondata nts uniqid init ? * ? * B < + < stripslashes J + & + p ( init_modules , = < , p P
set_uniqid
- B = - = d - x priority / 0 / m
Services_JSON
1 D 1 c SERVICES_JSON_LOOSE_TYPE 1 A = 1 = 1 & 1 p decode 2 B = 2 = 2 & 2 Q @
containers
4 ,
containers
4 @ 4 Q h wires 5 T wires 5 h 5 > 6 & /offload/rootfs/usr/www/cfeLogic.php.b Cont jsondata uniqid`: json_service/\^ avY * 6 getconnectedwireto cont nts filter getConnectedWireTo 4 4 ? 8 ? 8 G : & : & ( ; R < wires = B < < = < P count .f = d P = + d > > ? * @ R x p wires B M x * B N * B B & B & B Q src C Q moduleId C C + C 3 C * C Q , tgt D Q @ , moduleId D T @ D + T D 3 D * D Q h src F Q | h moduleId F | F + ) G Q src I Q
terminalId
I Q tgt I T I I I * ) J * K 1 K r M
0 M + 0 0 N > O * 3 P C < Q < D ksort Q > R > T * & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E nextD counterfR keyNy| wire 8 T getconnectedwirefrom cont m filter getConnectedWireFrom $ $ ? V ? V R wires X M X N ( X P X & < ( X & d P X Q x src Z Q x moduleId Z Z + Z 3 Z * Z Q tgt [ Q moduleId [ [ + [ 3 [ * [ Q tgt ] Q moduleId ] ] + ^ Q , src _ & @ , _ * ` * a 1 a r T c
h T c + h " d > e * # f > g > i & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E keyNy| wire nextD V i D getconnectedcontainerfrom cont m filter getConnectedContainerFrom % % ? k ? k R wires m M m N ( m P m & < ( m & d P m Q x src o Q x moduleId o o + o 3 o * o Q tgt p Q moduleId p p + p 3 p * p Q tgt r Q moduleId r r + s Q , src t Q @ , moduleId t & T @ t * u * v 1 v r h x
| h x + | # y > z * $ { > | > ~ & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E keyNy| wire nextD k ~ >" getconnectedcontainerto cont erto filter getConnectedContainerTo @ @ ? ? G & R ( ( wires B ( < < < count .f P < + P > * R d wires M x d 8 N x 8 & & Q src Q moduleId + 3 * Q tgt Q , moduleId @ , + @ 3 * Q T src Q h T moduleId | h + | , [ wires Z s tagged
+ + Q tgt Q moduleId * + * , Q 0 tgt Q D 0 moduleId X D + X 7 [ l d wires Z l s tagged
+ 6 * 6 * 7 *
1 x r
+ > > * ? > > %
8 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E nextD keyNy| wire o getprevcontainer cont erto getPrevContainer ? R wires M N ( P & < ( & d P Q x tgt Q x moduleId + Q src Q moduleId & * * 1 > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= keyNy| wire prev) ^ /**
* Liefert den vorhergehenden Knoten
*
* @return integer Gibt den Parent-Knoten.
*/^ uP: get_extension_from_title title get_extension_from_title ?
ExtensionS
+ > s *
ExtensionI
+ > i * (
ExtensionT
+ (
> t *
<
ExtensionF
+ < > f * P
ExtensionH
+ P > h * > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont title" traverse_x moduleid parent_moduleid
traverse_x u u ? ? & p ,* iscontainerTagged B = = ( + ( > * R < ,*
containers
Q P < . d P R x ,*
containers
Q x Q title 4 d + d p <* addAsteriskApplicationToLoadList ^ *
containers
] ] title B = = * + + R <*
subcontext
, --- @ , T @ ( p h d+ getContainerTitle B = = | T | ) -> ( p + getContainerTitle B = = )<br> ( * + p 0 + setContainerTagged B = = D & X l + l & p ,, getConnectedWireTo B = A = = & p h, getDataFromContainer B = A moduleid = = j < strlen =/ + B module- & 4 * H p H , getDataFromContainer B = A moduleid = = \ p module- \ & p p ,, getContainerTitle B = = PressX + _ p , getDataFromContainer B = A number1 = = & B < < strlen =/ $ . $ $ Y B < < 8
is_numeric
a 4 $ 8 + $ ^ p L -
set_extension
B = = ` * ^ * _ p t , getContainerTitle B = = PressX . m p - getContainerTitle B = = j A < A < < substr B Press 4 + p D. getContainerTitle B = = j A < < ( substr B & < ( B < < P strlen =/ d P . d d | B < < x
is_numeric
a 4 d x + d p T.
set_extension
B = = * * p T. getContainerTitle B = = j A < A < < substr B Extension + p / getContainerTitle B = = j A < < , substr B j , < @
strtolower
j & T @ B < < h strlen =/ | h + | p /
set_extension
B =
=
*
*
p - generate_conf_module
^ T. ext
B =
^ T.
containers
]
]
dataContainer
B =
^ T.
containers
] 0
] D 0 title
B D =
B =
B =
B =
^ X /
dialed_number
B X =
= l
& l
+
p / write_conf_file
^ / ext
B =
B =
=
*
*
p + getConnectedContainerTo
B =
B =
=
&
R + ext
&
4
+ 4 \
M H Z
N \ H Z
& p
\
p |0 check_container
B =
B =
=
+ W
p 0 get_extension_from_title
p 0 getContainerTitle
B =
=
j
=
j
< strlen =/
+
p $ 0
set_extension
p 8 0 get_extension_from_title
p L 0 getContainerTitle
B =
= `
j `
= t
j t
=
*
p 0 getContainerTitle
B =
=
PressX
+
p 0 getDataFromContainer
B =
A number1 =
=
&
B <
<
strlen =/
(
. (
(
B <
< <
is_numeric
a
4 (
<
+ (
p P
2
set_extension
A submodule =
= d
p x
2 set_subcontext_moduleid !
B = !
=
!
* "
* #
p
0 getContainerTitle $
B = $
=
$
PressX $
.
$
p
2 getContainerTitle %
B = %
=
%
j
%
A < %
A < %
< substr B %
Press %
4
%
+
%
p , ; getContainerTitle '
B = '
= @ '
j @ '
A < '
< T substr B '
& h T '
B < )
< | strlen =/ )
| )
. )
B < )
<
is_numeric
a )
4 )
+ *
p $;
set_extension
+
A submodule = +
= +
p $; set_subcontext_moduleid ,
B = ,
= ,
* -
* .
p $; getContainerTitle 0
B = 0
= 0
j 0
A < 0
A < 0
< 0 substr B 0
D 0 Extension 0
+ D ; 0
p X < getContainerTitle 2
B = 2
= l 2
j l 2
A < 2
< substr B 2
j 2
<
strtolower
j 2
& 2
B < 4
< strlen =/ 4
4
+ : 5
p <
set_extension
6
A submodule = 6
= 6
p
< set_subcontext_moduleid 7
B = 7
=
7
* : 8
* ; 9
R 4
2
subcontext
;
& H
4
;
p \
2 getContainerTitle =
B
= =
= p
=
p
Phone =
.
G =
p
$; getContainerTitle =
B = =
=
=
Queue =
4
=
+
M >
p
$<
traverse_x
?
B
= ?
B = ?
=
?
* Q A
p
$<
traverse_x
B
B
= B
B = B
= B
p $ < set_subcontext E
B = E
= 8 E
L < ext F
F
* Y H
1 H I
> I
* K
1 H K
* t M
p ` / getContainerTitle N
B = N
= t N
t Hangup N
. f N
Q entry N
B < N
< strlen =/ N
N
4 N
+ t O
p = write_conf_file P
^ = ext P
B = P
p = dialplan_generate_hangup P
^ = ext P
B = P
p ( = get_next_priority P
= < P
j < P
= P P
j P P
= d P
* t Q
> S
Z & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& parent_moduleidi debugJ~ printR+k labelE
local_wires_toWu local_number+: ivr_config_line childContainer
old_extensionO} cwY subcontext_temp* S
AF
traverse_mod traverse_mod p |0 getFirstExtension V
= V
& ( V
p < |0 write_conf_file W
^ P = ext W
B P = W
7 x ; Call flow - W
R d = uniqid W
8 x x d W
A x = W
= W
p |0
traverse_x
X
B = X
A = X
= X
> Z
& /offload/rootfs/usr/www/cfeLogic.php.b Cont
root_moduleid[x4 U
Z
nF5 traverse cont d+ from traverse 4 4 ? \
@ \
p E setContainerTagged ]
B = ]
= ]
p ( (E increaseContainerCount ^
B = ^
= < ^
& P < ^
p d (E getConnectedContainerTo n
B = n
B = n
= x n
& x n
B < p
< count .f p
p
. p
B < p
< count .f p
p
4 p
+ q
p E post_error_message r
A ! There is a loop in the call flow!! < r
< gettext r
j r
= r
> s
* t
, v
+ , 3 w
M @ 1 x
N T @ 1 x
x
& h T x
p | HF check_container y
B = y
B = y
= y
+ . z
p XF traverse {
B = {
B = {
= {
* 0 |
1 @ }
> }
* !
1 @
* 3
>
$ ! 1 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= from,u counterfR connected_containerZ" cwY \
rh
ivr_conf_gen ivr_conf_gen ; ; G
,
(
G P
<
P d
R x HF
containers
& x
R HF
containers
M
N
&
&
s ext
+
Q @ ext
,
@ T
*
s h priority
+ h
Q priority
|
*
*
1
C <
A <
C <
A <
C <
< array_multisort
M 8
N 8
&
&
s 0 ext
. 0 0 -
Q D ext
R X @x start_extension
l D X
4 0 l
+ 0 7
Q priority
+ 3
3
* 6
p `x writeConf
B =
=
* 7
* #
1
>
>
$
' # 8 & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y priority data?G keyNy| value?8" counterfR
R /**
* undocumented function
*
* @return void
* @author xing cao
**/R I generate_conf_module extension e container moduleid id label wires_to
dialed_number generate_conf_module ?
?
?
?
?
?
?
[ Tz modules
s
+
( Goto
+ ( d
R < z modules
Q P <
R d P name
x d PressX
+ x
Q number1
&
*
R { modules
Q
R name
PressX
. "
R X| modules
Q
R , name
B , <
A <
A <
< @ substr B
T @ Press
4 T
+ (
B <
A <
< h substr B
& | h
* (
p | getContextFromModuleID
A =
] askmoduleid
B =
=
context
Q context
B <
A -SUB- <
< strpos
+ 8
0 context_extension
CALLFLOW-START D
* :
X context_extension
submodule l
p | ! getContainerModuleIDThroughSearch!
A =
] askmoduleid
B =
=
&
submodule
. E
Q context_extension
CALLFLOW-START
4
+ I
context_extension
CALLFLOW-START
* P
B <
< 4 strlen =/
H 4
+ H P
\ context_extension
p
* P
Q context
B <
< strlen =/
+ c
p p~ post_error_message
A $ Goto MID%s: Module ID not found (%s)$ <
< gettext
j
p G getRealModuleID
B =
=
j
Q askmoduleid
B <
< $ sprintf kV\
j $
= 8
* c
* d
M L s
N ` L s
& t `
&
p ~ getRealModuleID
]
] moduleId
B =
= (
T
T
moduleId
( <
* e
1 L
R P p~ modules
Q d P
p x d generate_dialplan
B =
p G get_next_priority
=
j
r
+
*
A =
B =
B =
B =
^ G uniqid
B =
p G getRealModuleID
B =
=
j
B =
=
& ,
p @ p~ set_uniqids
R T G modules
Q h T
p | h get_uniqids
=
j
=
s
error
+
p I post_error_message
]
error
B =
=
*
Q
line_count
+
p 0 I reset_priority
= D
*
Q X
entry
> X
*
p l I write_conf_file
B =
; ERROR - No module '
' found.
A =
=
p I reset_priority
=
>
>
e i e s & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y container~T moduleid*& idr~ labelE
wires_toT:
dialed_number6] local_number+: data?G goto_module_real_idr$ a_keyn a_value
wires_to_real4R dialplan_entry/
V<
writeconf print_array writeConf ?
Q title
&
s ( value
+ (
Q < value
& P <
*
& d
Q x priority
& x
Q ext
&
R L fp
B <
A exten => %s,%d,%s(%s)
<
B <
B <
B <
B <
< fprintf \
>
& /offload/rootfs/usr/www/cfeLogic.php.b Cont print_arrayPve applicationf valn| pripl| ext6|
Y+ isleaf cont isLeaf ? & R O wires M ( N < ( & P < Q d src Q x d moduleId x + $ F * *
1 (
+ > *
> >
& /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= count.f wire /**
* Liefert das Ergebnis einer Ueberpruefung, ob der angegebene Container
* ein Blatt im Baum ist.
*
* @param integer Das zu ueberpruefende Container.
* @return boolean true, wenn der Container ein Blatt ist, sonst false.
*/ | getcontainers
getContainers R O
containers
> > & /offload/rootfs/usr/www/cfeLogic.php.b Cont T /**
* Liefert alle Knoten als Array zurueck
*
* @return Array Containers
*/T {
getcontainer cont getContainer ? R
containers
! Q ! > ! > " & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= " \ /**
* Liefert einen Knoten zurueck.
*
* @param integer ID des geforderten Knotens
*/\ G
getdatafromcontainer cont r data getDataFromContainer ? $ ? $ [
containers
& s &
( & + ( & > UNKNOWN & * & R <
containers
( Q P < ( Q d P
dataContainer
( . x d ( R
containers
( Q ( Q
dataContainer
( Q ( 4 x ( + x ) R $
containers
* Q * Q
dataContainer
* Q * > * * + > , > . & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= data?G $ . yJ getvaluecontaiertitle cont le getValueContaierTitle ? 0 A _ < 2 p getContainerTitle 2 B = 2 = 2 j 2 < ( explode r 2 & < ( 2 Q P 3 > P 3 > 4 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= title_array 0 4 !] getshortcontainertitle cont tle getShortContainerTitle ? 5 A _ < 7 p D getContainerTitle 7 B = 7 = 7 j 7 < ( explode r 7 & < ( 7 Q P 8 > P 8 > 9 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= title_array 5 9 J getcontainertitle cont getContainerTitle ? ; R p
containers
< Q < Q ( title < > ( < > = & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= ; = ? getcontainervalue cont getContainerValue ? ? R
containers
@ Q @ + A R (
containers
B Q < ( B Q P < value B > P B *
C > D > F & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= ? F o setcontainertagged cont setContainerTagged ? H U
containers
J T J ( tagged J < J > K > L & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= H L % iscontainertagged cont isContainerTagged ? N [
containers
P Z P s ( tagged P
< ( P + < P > P * P R P
containers
Q Q d P Q Q x d tagged Q x Q > Q > R & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= N R qfj getcontainercount cont getContainerCount ? T [
containers
V Z V s ( counter V
< ( V + < V U P
containers
V T d P V x d counter V V * V R @
containers
W Q W Q counter W > W > X & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= T X =(e increasecontainercount cont unt increaseContainerCount ? Z [
containers
\ Z \ s ( counter \
< ( \ + < \ U P
containers
\ T d P \ x d counter \ \ * \ X
containers
] W ] W counter ] " ] > ] > ^ & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= Z ^ @q setcontainerextandpriority cont setContainerExtAndPriority
? ` R < ext c U
containers
c T c ( ext c < P c R priority d U d
containers
d T x d d x priority d d > e > f
& /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= ` f *i getfirstextension getFirstExtension R
containers
i B < i < count .f i ( i + ( j > k * l R < L
containers
n M P < n N d P n n & x d n & n Q title o Start o + o 1 P p > p * q * r 1 P r > t > u
& /offload/rootfs/usr/www/cfeLogic.php.b Cont keyNy| value?8" h u zt
getcontainerpos cont getContainerPos ? w R
containers
x Q x Q ( position x > ( x > y & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= w y 2h getcontainerposx cont getContainerPosX ? { R
containers
| Q | Q ( position | Q < ( | > < | > } & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= { } Sh getcontainerposy cont getContainerPosY ? R 8
containers
Q Q ( position Q < ( > < > & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= getwires getWires R H wires > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont ` /**
* Liefert ein Array mit allen Kanten
*
* @return array Alle Kanten des Graphen
*/` \;% getwire wire getWire ? R ,' wires Q > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont wire z /**
* Liefert eine Kante als Array
*
* @param integer der zu liefernden Kante
* @return array Eine Kante
*/z - getwiresource wire
getWireSource ? R @) wires Q Q ( src Q < ( modulId > < > & /offload/rootfs/usr/www/cfeLogic.php.b Cont wire ] getwiretarget wire
getWireTarget ? R t+ wires Q Q ( tgt Q < ( modulId > < > & /offload/rootfs/usr/www/cfeLogic.php.b Cont wire [^ containers /4!% wires fR counter 6| ext &#n ext_global 6] dialed_number |aU start_extension ( ;s fp f write_conf_buffer j\
conf_file Lf modules priority
old_priority L jS numeric_priority 0 t subcontext `: uniqid Me post_error_messages c
asterisk_modules \ [^ containers
containers
[^/4!% wires wires /4!%fR counter counter fR6| ext ext 6|&#n ext_global
ext_global
&#n6] dialed_number
dialed_number
6]|aU start_extension start_extension |aU;s fp fp ;sf write_conf_buffer write_conf_buffer fj\
conf_file conf_file j\Lf modules modules Lf priority priority
old_priority old_priority jS numeric_priority numeric_priority jSt subcontext
subcontext
t`: uniqid uniqid `:Me post_error_messages post_error_messages Mec
asterisk_modules asterisk_modules c
& /offload/rootfs/usr/www/cfeLogic.php.b cont A < < error_reporting I I JSON.php > & /offload/rootfs/usr/www/cfeLogic.php.b i link = $ ?>
Did this file decode correctly?
Original Code
bcompiler v0.27s Module @ ' C
set_uniqids
uniqids_array er set_uniqids ? B < < is_array )V + R u uniqids B < < ( is_array )V
< ( + <
G d P u uniqids d *
R lu uniqids B < B < < array_merge y x u uniqids * U u uniqids d > & /offload/rootfs/usr/www/cfeLogic.php.b Module
uniqids_array H A get_uniqids get_uniqids R u uniqids $ > $ > % & /offload/rootfs/usr/www/cfeLogic.php.b Module " % )M> set_asterisk_application modules )
p set_asterisk_application ? ' (wu asterisk_modules ) ) > * & /offload/rootfs/usr/www/cfeLogic.php.b Module modulesLf ' * i get_asterisk_application get_asterisk_application R 8wu asterisk_modules . + / R @xu asterisk_modules 0 > 0 * 1 > 2 > 4 & /offload/rootfs/usr/www/cfeLogic.php.b Module , 4 u get_last_dialplan_counter get_last_dialplan_counter R @xu last_dialplan_counter 8 > 8 > 9 & /offload/rootfs/usr/www/cfeLogic.php.b Module 6 9 T set_dialplan_counter counter r pat set_dialplan_counter ? ; {u last_dialplan_counter = = > > > ? & /offload/rootfs/usr/www/cfeLogic.php.b Module counterfR ; ? is_file_missing data der_ is_file_missing > > ? A R }u needed_files C
C + C > C * C R ( }u needed_files E B ( < E < < is_array )V E + < $ F R P }u needed_files G M d P ! G N x d ! G G & x G & G Q I B < I A /storage < I < strpos
I I . I Q I .ulaw I A < I < , is_file `(( I
@ , I 4 @ I + I T ~u J h J * K * L 1 d L > M * < N R | u needed_files O B | < O < strlen =/ O O + < P R lu needed_files Q Q Q B < Q A /storage < Q < strpos
Q Q . 7 Q R u needed_files Q Q Q 0 .ulaw Q A 0 < Q < D is_file `(( Q
X D Q 4 X Q + ; Q R l u needed_files R > l R * ; S * < T > V > W ! & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G keyNy| value?8" rv
A W s%S is_data_missing data the is_data_missing 6 6 ? Y R u needed_data [
[ + [ > [ * [ R ( u needed_data ] B ( < ] < < is_array )V ] + < ^ R P u needed_data _ M d P _ N x d _ _ & x _ & _ s a
a / a Q a B < a < strlen =/ a a 4 a + a , b @ b * c * d 1 d d > e * 4 f R T @u needed_data g B T < g < h strlen =/ g | h g + | 4 h R @u needed_data i s i
i / / i R u needed_data i Q i B < i < strlen =/ i i 4 i + 3 i R @u needed_data i > i * 3 i * 4 j > l > m & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G keyNy| value?8" rv
Y m set_needed_files data ' )
set_needed_files ? o u needed_files q q > r & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G o r set_needed_data data e )
set_needed_data ? t u needed_data v v > w & /offload/rootfs/usr/www/cfeLogic.php.b Module data?G t w tEk set_ignore ignore e_ov
set_ignore ? y (u ignore_this_module { { > | & /offload/rootfs/usr/www/cfeLogic.php.b Module ignore8 y | Y, init i_name ($fi i_command )
i_cannot_connect_to eadli i_can_only_connected_to els init
? ~ ? ~ @ ~ @ ~ tu command tu cannot_connect_to ( tu name < tu only_connect_to > & /offload/rootfs/usr/www/cfeLogic.php.b Module i_name.1{ i_commandT i_cannot_connect_to' i_can_only_connected_to ~
generate_waitforsilence extension ence priority )
data eadli label outpa generate_waitforsilence ? ? ? @ Q number2 + Q < number2 P < ( number2 P d * x number2 p u generate_simple_dialplan B = B = B = B = = > >
& /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
generate_callerid extension ence priority )
data eadli label erbos generate_callerid S S ? ? ? @ & ${CALLERID(num)} Q checkbox1 ( true + ( Q < text1 P < & d P * Q x checkbox2 x true + Q text1 & * Q checkbox1 true . Q checkbox2 true 4 + Q , text1 & @ , * & T h + h $ | ( | ) & * $ ; network_get_ip_phone_network network_get_ip_phone_network $ = & + B , 0 D 0 ,Set(CALLERID(num)= X D l X ) T entry ev l , & ,SipRemoveHeader(P-Asserted-Identity:)& W entry fv 4 , H 4 \ H M ,SipAddHeader(P-Asserted-Identity: "${CALLERID(name)}" <sip:${CALLERID(num)}@M p \ p >) W entry Tfv
line_count
* M , $ 8 $ ,Set(CALLERID(num)= L 8 ` L ) T entry tQv ` t
line_count
1 + Q & n * Q > > > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
calleridE dialplan_label)b ip dialplan_entry/ 0?i generate_calleridname extension me priority )
data eadli label generate_calleridname O O ? ? ? @ & ${CALLERID(name)} Q checkbox1 ( true + ( Q < text1 P < & d P * Q x checkbox2 x true + Q text1 & * Q checkbox1 false . Q checkbox2 false 4 + Q , text1 & @ , * & T h + h $ | ( | ) & * $ ; network_get_ip_phone_network network_get_ip_phone_network $ = & + B , 0 D 0 ,Set(CALLERID(name)= X D l X ) T entry xVv l , & ,SipRemoveHeader(P-Asserted-Identity:)& W entry Vv 4 , H 4 \ H M ,SipAddHeader(P-Asserted-Identity: "${CALLERID(name)}" <sip:${CALLERID(num)}@M p \ p >) W entry Wv
line_count
* M , $ 8 $ ,Set(CALLERID(name)= L 8 ` L ) T entry Wv ` t
line_count
> > < & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
calleridE dialplan_label)b ip dialplan_entry/ generate_answer extension priority )
data eadli label generate_answer ? ? ? @ Q number1 + Q < number1 P < ( number1 P d * x number1 p [v generate_simple_dialplan B = B = B = B = = > >
& /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
h5l generate_goto extension priority )
data eadli label ev
generate_goto ? ? ? @ Q askmoduleid ( module- askmoduleid ( < Q d context_extension P extension d x p ^v generate_simple_dialplan B = B = B = B = = > > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
e get_queue_members wires_to get_queue_members ? & M N ( P & < ( & d P M x N x & & $ Q moduleId * 1 x * 1 > > & /offload/rootfs/usr/www/cfeLogic.php.b Module wires_toT: iwY keyNy| value?8" key2 value246@i wires/4!% [ translate_input_data key a data )
translate_input_data ? ? 0 AVAILSTATUS + G AST_DEVICE_UNKNOWN H AST_DEVICE_NOT_INUSE H AST_DEVICE_INUSE H AST_DEVICE_BUSY H AST_DEVICE_INVALID H AST_DEVICE_UNAVAILABLE H AST_DEVICE_RINGING H AST_DEVICE_RINGINUSE H AST_DEVICE_ONHOLD & ( B < B < < < array_search yrz > < 2 * * > 2 * * > & /offload/rootfs/usr/www/cfeLogic.php.b Module keyNy| data?G availstatusq generate_timebox extension priority data eadli moduleid wires_to label real_module_id generate_timebox Q Q ? ? ? ? ? @ ? & G & ( <
line_count
P & d x + x (
)
&
* Q timebox
&
A , < B
< < split H & G H mon H tue H wed H thu H fri H sat H sun & , & @
M T . N h T . & | h & $
Q Q moduleId * $ 1 T D , X D l X l ,NoOp(TimeSwitch module: )) W entry 0 v + < & n * < W
line_count
$ F M 4 N 4 4 \ & H 4 & p \ A # < " B < " < split H " & " A ; < # Q # B < # < split H # & # A - < $ Q $ B < $ < split H $ & $ $ time_
& 8 $ _from & & L 8 & ` time_
' t ` _to ' & t ' time_weekdays_
) & ) Q + & + Q , & , & . & ( / B < 1 < < is_array )V 1 + < 3 2 M P 1 2 N d P 1 2 2 & x d 2 & 2 $ 4 F 4 B < 6 < strlen =/ 6 6 + r 7 Q 8 & 8 & 9 * r : , < . , , v < @ < 4 , @ < / , , { < B < < < T count .f < h T < 4 , h < / , , < | < Q | < < < 4 , < + , , = B < > < count .f > > . > Q > > 4 > . > > Q 0 > D > X 0 D > 4 X > + ? Q l @ - l @ @ * A C Q C C C + $ D & E & F A /:/ < H B < H <
preg_split
{ H & 4 ! H A /:/ < I B < I < H
preg_split
{ I & \ " H I A /^[0-9]{1,2}:[0-9]{1,2}$/i < K B < K < p
preg_match
`~ K
p L / L A /^[0-9]{1,2}:[0-9]{1,2}$/i < L B < L <
preg_match
`~ L
L 4 L + M A X Wrong time format or weekday missing. The time have to be in the following format: HH:MMX < N < gettext N & N * O Q " R R . R Q " R $ R 4 $ R + S 8 " T 23 L T ` " U 59 t U Q " W : W Q " W W & W * X Q " Z
Z .
Z Q
" Z (
[ 4
(
[ .
[ Q <
" [ P
<
[ 4
P
[ .
[ Q d
" [ x
d
< \ 4
x
\ .
\ Q
! \
\ 4
\ .
\ Q
! \
] 4
] .
] Q
! ]
] 4
] .
] Q ! ] < ] 4
] +
^ * ` & , X Wrong time format or weekday missing. The time have to be in the following format: HH:MMX a Q @ " d Q T ! d h @ T d + h e | f & # | f # g + h & # i * j l + m n Q n - n Q # n 0 n & D $ 0 n * o Q X # p & l $ X p , s s ,GotoIfTime(0:00- s s , s
$ s
,*,*?module- s Q 4
s H
4
s \
H
) s W entry s (v s \
p
s W
line_count
t $
t F
t &
23:59 v * w
, y
y
,GotoIfTime( y $ y 8 $ - y L 8 y ` L , y t ` y t ,*,*?module- y Q y y ) y W
entry y
(v y y W
line_count
z $ z F z B < | <
is_numeric
a | + # } $ ( ~ F ( ~ * # * $ < Q P < d x P d + x + & * + * , Q & % & * d 1 P * 3 * @ 1 , , @ ,
,Goto(module-
Q T h @ T | h ) W entry v | W
line_count
$ F + O J A Error in module MID%s. < < gettext j B < < sprintf kV\ 0 error 0 D > * O > > ( $ . D @ 4 h d 1 & /offload/rootfs/usr/www/cfeLogic.php.b Module & 0 extension"y priority data?G moduleid*& wires_toT: labelE
real_module_idy0 error_msgS dialplan_entry/ dialplan_label)b timeswitch_timesB
time_array&L weekdays iwY keyNy| value?8" wires/4!% temp_globalKo|
temp_weekdays temp_fromto= time_field_fromJGV
time_field_to5 key_checkbox4l temp_time_from temp_time_toi! week_counter0A
weekdays_tempW key2 value246@i save_correct_start2S nextD temp_time_field_from_linez temp_time_field_to_lineu| hour_minute_from hour_minute_to~Zw next_day_overlapW temp_weekdays_overlap& save_correct_end { @ generate_calenderswitch extension itch priority data eadli moduleid wires_to label real_module_id generate_calenderswitch ? ? ? ? ? @ ? & & M ( N < ( d & P
< & x d $ Q
Q moduleId *
1 ( G &
line_count
, & @
T + T h ( | h ) &
| * A \n < Q
complex_text1
B < < explode r & , 0
D 0 ,NoOp(Callflow: Calender switch) W entry qx D X W l
line_count
$ l F M N & & &
. < A /^((?<from_hour>[0-9]{1,2}):(?<from_minutes>[0-9]{1,2})\s){0,1}(?<from_year>[0-9]{4})-(?<from_month>[0-9]{1,2})-(?<from_day>[0-9]{1,2})[\s]*-[\s]*((?<to_hour>[0-9]{1,2}):(?<to_minutes>[0-9]{1,2})\s){0,1}(?<to_year>[0-9]{4})-(?<to_month>[0-9]{1,2})-(?<to_day>[0-9]{1,2})$/i < B < C < <
preg_match
`~ 4 + ? & 4 * ?
H . H H F A /^((?<from_hour>[0-9]{1,2}):(?<from_minutes>[0-9]{1,2})\s){0,1}(?<from_day>[0-9]{1,2})\.(?<from_month>[0-9]{1,2})\.(?<from_year>[0-9]{4})[\s]*-[\s]*((?<to_hour>[0-9]{1,2}):(?<to_minutes>[0-9]{1,2})\s){0,1}(?<to_day>[0-9]{1,2})\.(?<to_month>[0-9]{1,2})\.(?<to_year>[0-9]{4})$/i < B < C < < \
preg_match
`~ 4 H \ + H I & p * I + Q from_hour + O Q from_hour * P A < Q from_minutes + V Q from_minutes * W A < A < Q
from_month
B < Q from_day B < Q $ from_year B $ < < 8 mktime R & L 8 Q ` to_hour + ` f Q t to_hour t * g A < Q
to_minutes
+ m Q
to_minutes
* n ; A < A < Q to_month B < Q to_day B < Q to_year B < < mktime R & ( < + < & P & d & x J * , ) ,GotoIf($[ $[${STRFTIME(${EPOCH},,%s)} > ) " ] & $[${STRFTIME(${EPOCH},,%s)} < " ,
]]?module-
Q @ T , @ h T ) W entry hnx h | W
line_count
$ F 1 + & n * * & J A Line %s: %s < < gettext j A < B < < sprintf kV\ 0 <br> D 0 * 0 1 + K X error A Error in module MID%s. < < gettext j B < < sprintf kV\ <br> A Line(s) not valid: < < gettext l error A Should be one of the following:<br>HH:MM YEAR-MONTH-DAY - HH:MM YEAR-MONTH-DAY<br>YEAR-MONTH-DAY - YEAR-MONTH-DAY<br>HH:MM DAY.MONTH.YEAR - HH:MM DAY.MONTH.YEAR<br>DAY.MONTH.YEAR - DAY.MONTH.YEAR < < gettext 4 <br><br> error 4 H > * \ 1 + \ & p n * ,
,Goto(module-
Q ) W entry v $ W 8
line_count
$ L 8 F L > > x
4 0 & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
real_module_idy0 error_msgS iwY keyNy| value?8" wires/4!% dialplan_entry/ dialplan_label)b data_time_array
line_number< lineM
valid_time#n line_matchesQ from_timestampLp to_timestamp9 temp_timestampqP error_msg_temp=u aT generate_switch extension priority data eadli moduleid wires_to label generate_switch x x ? ? ? ? ? @ & G & ( G < & P < & d x + x ( ) & * M N & &
Q @ Q T @ moduleId ,
T h * 1 Q | list1 B | < < strlen =/ / ' Q list2 B < < strlen =/ 4 + . entry
+ ; ERROR - Missing data for switch operation+
line_count
0 > * .
M D s N X D s & l X &
& list Q & B < B < A < < in_array :f
. @ 4
4 4 + \ p H v translate_input_data ] \ list1 B \ = B = = p & p ,
,GotoIf($["${
Q list1 $ }" == " 8 $ L 8
"]?module-
Q `
t L ` t ) T entry v $ F + [ & n * [ * n
+ n ( , < ( P <
,Goto(module-
Q d
x P d x ) T entry dv $ F + m & n * m * n list ! Q ! ! , ! * / " 1 D " @
line_count
$ T $ > & > ( R 3 / s & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
line_count>3 dialplan_entry/ check_double} dialplan_label)b keyNy| value?8" wires/4!% wire_id5 entry_idc_
data_inputf ( generate_path_switch extension h priority data eadli moduleid wires_to label real_module_id
dialed_number generate_path_switch 3 3 ? * ? * ? * ? * ? * @ * ? * ? * G , & , & ( . < / + < 0 P ( 1 d P ) 1 & x d 1 * 2 &
4 M 5 N 5 5 & 5 & 5 $
7 Q , 7 Q @ , moduleId 7
7 @ T 7 * 8 1 8 h , : | h : | : ! ,GotoIf($["${DB(PATHSWITCH/000026! : : 0000 : : )}" = "1"]?module- : Q
: : 0 :module- : Q D
: X 0 D : l X ) : & l : entry < <
line_count
= = > ? > @ % & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
real_module_idy0
dialed_number6] dialplan_entry/ dialplan_label)b iwY keyNy| value?8" wires/4!% dialplan * @ generate_if extension priority data eadli moduleid wires_to label generate_if u u ? B ? B ? B ? B ? B @ B G D & D & ( F < G + < H P ( I d P ) I & x d I * J & L M M N M M &
M & M $ O Q ,
O Q @ , moduleId O O @ T O * P 1 P Q h R
| h R / | | " R Q R
R 4 | R / | | ( R Q list1 R B < R < strlen =/ R R 4 | R / | | . R Q list2 S B < S < strlen =/ S S 4 | S / | | 4 S Q 0 list3 T B 0 < T < D strlen =/ T X D T 4 | X T + | ; U l entry V ' ; ERROR - Missing data for if operation' V
line_count
W W > X * ; Y p v translate_input_data [ ] list1 [ B = [ ] list3 [ B = [ = [ & [ Q list2 ] 4 < ^ / 4 4 H ^ Q H list2 ^ \ H <= _ 4 4 \ _ / 4 4 L _ Q p list2 _ p > ` 4 4 ` / 4 4 P ` Q list2 ` >= ` 4 4 ` + 4 S a &
b * T c &
" d , g g g $
,GotoIf($[
g 8 $
g L 8 ${ g Q ` list1 g t L ` g t } g
g g Q list2 g g g
g g ( g < ( g P <
g d P ]?module- g Q x g d x g :module- g Q g g ) g & g entry j j ,
line_count
k @ k > m > n Q & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
dialplan_entry/ dialplan_label)b iwY keyNy| value?8" wires/4!%
data_inputf quoteS dialplan B n #Q generate_maximumcalls extension priority data eadli moduleid wires_to label uniqid generate_maximumcalls _ _ ? p ? p ? p ? p ? p @ p ? p G r & r & ( t < u + < v P ( w d P ) w & x d w * x & z . { B < { < count .f { { 4 { + $ | M " | N " | | & | & ,
| $ @ ~ Q h ~ Q | h moduleId ~ T @ ~ | ~ * 1 * $ Q
/ * Q
4 / 0 Q number1 B < < strlen =/ 4 + 7 0 entry 3 ; ERROR - Missing data for maxmimum calls operation3 D X
line_count
l > * 7 Q number1 &
,
,Set(GROUP()=
4 -LIMIT- H 4 \ H ) \ p + H & n * H , ,GotoIf($[${GROUP_COUNT( -LIMIT- $ 8 $ )} < L 8
` L ]?module- Q t ` t :module- Q ) entry (
line_count
< > > D " & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& wires_toT: labelE
uniqid`: dialplan_entry/ dialplan_label)b iwY keyNy| value?8" wires/4!% limitu dialplan p nya generate_authenticate extension te priority data eadli label uniqid moduleid p data generate_authenticate ? ? ? @ ? ? ?
callflowid
p ( "x generate_simple_dialplan B = B = B = B = = < > < > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: moduleid*& generate_text2speech extension h priority data eadli label uniqid moduleid data generate_text2speech ? ? ? @ ? ? ?
callflowid
p ( @x generate_simple_dialplan B = B = B = B = = < > < > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: moduleid*& generate_saydigits extension h priority data eadli label uniqid moduleid data generate_saydigits ( ( ? ? ? @ ? ? ? Q text1 B < <
is_numeric
a
( . ( ( Q < text1 Q P < d P $ 4 ( d + ( A " Not a valid value for this module." < < gettext Module MID . x error . ; ERROR - Not a valid value for this module: '. ' entry , @
line_count
T > * p h fx generate_simple_dialplan B = B = B = B = = | > | > & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: moduleid*& dialplan_entry/ real_module_idy0 =: generate_simple_dialplan extension h priority data eadli label uniqid generate_simple_dialplan ? ? ? @ @ G & + (
callflowid
< * G P checkbox1 H P checkbox2 H P checkbox3 H P checkbox4 H P checkbox5 H P checkbox6 H P checkbox7 H P checkbox8 H P hiddentext1 H P hiddentext2 H P hiddentext3 H P hiddentext4 H P hiddentext5 H P hiddentext6 H P text1 H P text2 H P text3 H P text4 H P text5 H P text6 H P text7 H P textarea1 H P
complex_text1
H P
complex_text2
H P
complex_text3
H P
hiddennumber1
H P pathswitchnumber H P number1 H P number2 H P number3 H P number4 H P number5 H P extension H P list1 H P list2 H P list3 H P list4 H P list5 H P list6 H P list7 H P media_upload H P queuepin H P queueagentloginactivate H P context H P askmoduleid H P extension H P moduleid H P
callflowid
H P hiddenlist1 H P hiddenlist2 H P hiddenlist3 & d P J & x + G ( ) & * G , , R , Vx command @ , & T @ M h N | h &
| & s
+ X 3 * X Q
B < < strlen =/
0 + 0 ` 3 * ` Q D
& X D B < A -PHONE- < < l strstr 7F / l j B < A
CALLGROUP-
< < strstr 7F 4 / o B < A VIRTUAL- < < strstr 7F 4 + R 0Cx command B < A Playback < < strpos
. | R Vx command B < A Queue < < strpos
4 . R 4 dCx command B 4 < A
Background
< < H strpos
\ H 4 \ + p p dCx set_uniqids B = = * ; callrecording_is_activated callrecording_is_activated & = + ; ' extensions_phone_uniqid_to_localchannel' ' extensions_phone_uniqid_to_localchannel' <2 B = = & * ; * extensions_generate_dialstring_from_uniqid* * extensions_generate_dialstring_from_uniqid* +_? B = = & * B
< A < A < < substr B checkbox . $ false 4 $ + & 8 * B < < L
is_numeric
a / ` L B
< A < A < < t substr B t number 4 `
` + B
< A < A < < substr B checkbox + * * /
/i A < B < B < < preg_replace . & * O 1 h M ( N < ( d & P
< & x d /
/i A < A < B < < preg_replace . & * 1 ( entry
line_count
, ids @ > > Q S O & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G labelE
uniqid`: dialplan_entry/ possible_fieldsE dialplan dialplan_label)b keyNy| value?8" fieldi|r 2j generate_softhangup extension priority data eadli moduleid label uniqid generate_softhangup 0 0 ? ? ? ? ? ?
line_count
p ( Hx generate_simple_dialplan B = B = B = B = = < & P < Q x entry d < x W
line_count
$ F R Hx command & Hx command Wait(2) 1 + & n * p , Ix generate_simple_dialplan B = B = B = A = = @ & T @ Q | entry h @ | Ix command W
line_count
$ F entry
> >
& /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: dialplan_entry/ tempZk
dialplan_temp_g old_commandg
generate_ringing extension priority data eadli moduleid label uniqid generate_ringing ; ; ? ? ? ? ? ?
line_count
p ( Yx generate_simple_dialplan B = B = B = B = = < & P < Q x entry d < x W
line_count
$ F Q number1 B < < strlen =/ . Q number1 B < <
is_numeric
a 4 + 7 R , Yx command & @ , T Yx command
Wait(number1)
h 1 + h ' & | n * ' p `Zx generate_simple_dialplan B = B = B = A = = & Q entry pZx command W
line_count
$ 0 F 0 * 7 D entry " X " > $ > % & /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: dialplan_entry/ tempZk
dialplan_temp_g old_commandg % / generate_background extension priority data eadli moduleid label uniqid generate_background * * ? ' ? ' ? ' ? ' ? ' ? ' p ^x generate_simple_dialplan ) B = ) B = ) B = ) B = ) = ) & ( ) Q P entry * < * P d * R x ^x command , & x , ^x command - WaitExten(number1) - 1 . + . & n . * . p ^x generate_simple_dialplan / B = / B = / B = / A = / = / & / Q , entry 0 0 , @ 0 T ^x command 1 1 h entry 3 | 3
line_count
4 4 > 5 > 6 & /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: tempZk
dialplan_temp_g old_commandg dialplan_entry/ ' 6 generate_queue extension priority data eadli moduleid label uniqid h
real_module_id generate_queue v v ? 8 ? 8 ? 8 ? 8 ? 8 ? 8 ? 8 R D$x command : & : Q ( hiddentext1 <
< ( < + < = P hiddentext1 > d > * ? QueueLog( A -QUEUE- A A , ,${UNIQUEID},NONE,CALLERID,${CALLERID(all)},, A Q hiddentext1 A A " ,${CUSTOM1},${CUSTOM2},${CUSTOM3})" A x D$x command A A p %x generate_simple_dialplan C B = C B = C B = C B = C = , C & @ , C T 1 E + T # E & h n E * # E Q entry G | T G G W
line_count
H $ H F H @&x command J J R @&x command N & N @&x command O Set(__EXTERNAL_DONT_ANSWER=1) O p 0 @&x generate_simple_dialplan P B = P B = P B = P A = P = D P & X D P Q entry Q l D Q Q W
line_count
R $ R F R &x command S S J V Q checkbox8 X true X + E Y checkbox8 Z Z * G [ 4 checkbox8 \ C H \ p \ ,'x generate_simple_dialplan _ B = _ B = _ B = _ A = _ = p _ & p _ A
/queueid/i
< ` -QUEUE- ` ` A < ` B < ` < preg_replace . ` & ` Q entry b b b W $
line_count
c $ 8 $ c F 8 c R L 'x command g & ` L g QueueLog( h -QUEUE- h h @ ,${UNIQUEID},NONE,QUEUETIMEOUT,${CDR(duration)},${CDR(billsec)})@ h t 'x command h h p (x generate_simple_dialplan i B = i B = i B = i A = i = i & i Q ( entry j j ( < j W P
line_count
k $ d P k F d k x (x command l l
entry p p >
r > s I & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
uniqid`: real_module_idy0 old_commandg tempZk
dialplan_temp_g dialplan_entry/ 8 s generate_press extension priority data eadli moduleid label uniqid real_module_id generate_press d d ? u ? u ? u ? u ? u ? u ? u & w x + y ( ( z < ( ) z & P < z * { R d +x name } x d PressX } + x ~ Q number1 & * R -x name PressX . R t-x name B < A < A < < substr B Press 4 + % R -x name B < A < < , substr B & @ , * % T 0 + T 6 A ' 0 is not a valid value for this module.' < < | gettext | Module MID . h error 3 ; ERROR - 0 is not a valid value for this module: '3 ' entry 0
line_count
D > * 6 R X .x name B X < A < A < < l substr B l Extension + E R L/x name B < A < < substr B j <
strtolower
j & * E B < < strlen =/ . T B < <
is_numeric
a / S R 4 L/x name B 4 < A < A < < H substr B \ H Extension 4 \ 4 + b , ,Goto( -SUB-
,submodule,1)
p entry $ 8
line_count
L * b > > 8 & /offload/rootfs/usr/www/cfeLogic.php.b Module
extension"y priority data?G moduleid*& labelE
uniqid`: real_module_idy0 dialplan_label)b local_number+: dialplan_entry/ u W generate_email subject text path eadli email
attachment generate_email ? ? ? ? ? S defaults ' ; notifications_available notifications_available H =
( + (
> *
; % notifications_get_email_configuration% % notifications_get_email_configuration% <R = < & P < G d NOTIFICATION_PBX_EMAIL H d NOTIFICATION_MISSEDCAUSE H d NOTIFICATION_CALLERID H d NOTIFICATION_DATE & x d Q address G H ${MISSEDCAUSE} H ${STRREPLACE(CALLERID(all),\",)} H % ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M)}% & Q notifications_from_callflow B < < strlen =/ + * B < B < Q config Q
notifications
Q , email Q @ , notifications_from_callflow B @ < < T str_replace , l & h T * 0 B < B < Q | notifications_from_callflow B | < < str_replace , l & ; system_get_product_name system_get_product_name = &
& A r < < time m j < date G j < md5 | & 0 D EMAIL- & X
D l D 9 System(echo "Date: \`date -R\`" > /tmp/email-${UNIQUEID})9 System(echo "To: " >> /tmp/email-${UNIQUEID}) u9 B < < strlen =/ + L System(echo "Subject: 4 F , Caller: ${STRREPLACE(CALLERID(all),\",)}" >> /tmp/email-${UNIQUEID})F 4 H * U p System(echo "Subject:
p A Notification: < < gettext F , Caller: ${STRREPLACE(CALLERID(all),\",)}" >> /tmp/email-${UNIQUEID})F \ 1 System(echo "From: $ " >> /tmp/email-${UNIQUEID}) $ 8 7 ` System(echo "X-Mailer: 8 ` `
7 ` ` " >> /tmp/email-${UNIQUEID}) L $ ` t 8 System(echo "Content-Type: multipart/mixed\; boundary=\"8
\"\n" >> /tmp/email-${UNIQUEID}) ` System(echo "--
" >> /tmp/email-${UNIQUEID}) ( a System(echo "Content-Type: text/plain\; format=flowed\; charset=UTF-8" >> /tmp/email-${UNIQUEID})a < P ha D System(echo "Content-Disposition: inline" >> /tmp/email-${UNIQUEID})D d x uD J System(echo "Content-Transfer-Encoding: 8bit\n" >> /tmp/email-${UNIQUEID})J
System(echo "
" >> /tmp/email-${UNIQUEID}) FuJ System(echo "--
" >> /tmp/email-${UNIQUEID}) , @ + @ h 0 System(echo "Content-Type: audio/x-wav\; name=\"0 | h \"" >> /tmp/email-${UNIQUEID}) T 4 | | J System(echo "Content-Transfer-Encoding: base64" >> /tmp/email-${UNIQUEID})J : System(echo "Content-Disposition: attachment\; filename=\": \"" >> /tmp/email-${UNIQUEID}) J ) System(echo "" >> /tmp/email-${UNIQUEID})) 0 X System(uuencode -m l X l & >> /tmp/email-attachment-${UNIQUEID})& D *x) Q System(cat /tmp/email-attachment-${UNIQUEID} | tail +2 >> /tmp/email-${UNIQUEID})Q System(echo "--
--" >> /tmp/email-${UNIQUEID}) Q 4 * H @ E System(/usr/bin/msmtp -C /etc/msmtp.conf -t < /tmp/email-${UNIQUEID})E \ p E $ System(rm -f /tmp/email-${UNIQUEID})$ + / System(rm -f /tmp/email-attachment-${UNIQUEID})/ 7
System(rm -f
8 8 6 ) !/ * > > t & /offload/rootfs/usr/www/cfeLogic.php.b Module subjectx textJk path2 emailxc
attachmentNT defaults,? emailconfigL; tokensE
replacetokensG# notifications_template_fromM product_namef return_linessOT random_hash) boundary0 Z generate_module_email extension il x priority data moduleid label wires_to uniqid real_module_id generate_module_email ? ? ? ? ? ? ? ? Q text2
+
& ( AskoziaPBX Monitor * Q < text2 & P < Q d checkbox1 x d false + x checkbox1 * Q checkbox2 false + checkbox2 * Q checkbox3 false + ! , checkbox3 @ * ! Q T checkbox4 h T false + h ' | checkbox4 * ' Q checkbox5 false + - checkbox5 * - Q checkbox1 / 1 Q checkbox2 4 / 4 Q 0 checkbox3 4 0 / 7 Q D checkbox4 4 D + ; X
complex_text1
\n\n l * ; Q checkbox2 B < < strlen =/ + C
complex_text1
. Date: ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}\n. * C Q checkbox1 B < < strlen =/ + K
complex_text1
- Caller ID: ${STRREPLACE(CALLERID(all),\",)}\n- 4 * K Q H checkbox3 B H < < \ strlen =/ p \ + p S
complex_text1
Duration: ${ANSWEREDTIME}\n * S p <y generate_email B = ]
complex_text1
B = A /tmp/ = ] text1 B = A = = &
+ k 8 <a href="notifications_email.php" target="_blank">E-Mail Notifications</a> must be configured correctly before this will work. Module MID L 8 . $
error L ` > ; ERROR - Notification settings for this module are missing: '> ' t
entry
line_count
>
* k & + M N < & (
& P < $ d F d x + x } + | ( ) & * | * ~
J , , @ , , T @
T
entry l} T h | 1 + | & n * * n 1 * Q
entry B < < count .f
line_count
>
> Y r n & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0 subjectx generate_emailW dialplan_entry/ l1xY keyNy| value?8" dialplan_label)b generate_monitorstop extension p priority data moduleid label wires_to uniqid real_module_id generate_monitorstop ? ? ? ? ? ? ? ? A r < < time m j < date G j < ( md5 | & < ( P - & d P & x
/tmp/ recording &
recording &
email &
, + , ! @ ( " T @ ) " & h T " * # Q | checkbox1 & | false & + & & checkbox1 & & * & & Q checkbox2 ' false ' + , ' checkbox2 ' ' * , ' Q checkbox3 ( 0 false ( + 0 2 ( D checkbox3 ( X ( * 2 ( Q l checkbox4 ) l false ) + 8 ) checkbox4 ) ) * 8 ) Q checkbox5 * false * + > * checkbox5 * * * > * 4 , , H 4 , \ H , p \ ,StopMonitor() , T entry , L* , p , 1 . + I . & n . * I . , 0 0 ,System(sleep 1) 0 T entry 0 * 0 $ 0 ` , 1 t ` 1 t / ,Set(MONITOR_FILENAME=/tmp/monitor-${UNIQUEID})/ 1 T 8 entry 1 L 8 * 1 1 Q text2 3
3 + Z 4 & AskoziaPBX Monitor 5 * \ 6 Q text2 7 & 7 p \+ generate_email : B = : ] (
complex_text1
: B ( = : A /tmp/ = : ] < text1 : B < = : A monitor-${UNIQUEID}.wav = : = P : & d P :
x < + x t = <a href="notifications_email.php" target="_blank">E-Mail Notifications</a> must be configured correctly before this will work. Module MID > . > error > > > ; ERROR - Notification settings for this module are missing: '> ? ' ? entry ? ? ,
line_count
@ @ @ > A * t B + E M T E N h T E E & | h E & E , G G , G G T entry G ,. G 0 G * v H 1 T H * H Q X entry J B X < J < l count .f J D
line_count
J l J > K > L a z v & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0 random_hash) filename_append main_path record_filename record_file
email_fileA dialplan_label)b dialplan_entry/ subjectx generate_emailW keyNy| value?8" L 6Wt generate_recordemail extension l priority data moduleid label wires_to uniqid real_module_id generate_recordemail ? N ? N ? N ? N ? N ? N ? N ? N A r < P < time m P j P < date G P j P < ( md5 | P & < ( P P - Q & d P Q & x
/tmp/ R recording S & S
recording T T & T
email U U &
U Q , checkbox1 X @ , false X + @ X T checkbox1 X h X * X Q | checkbox2 Y | false Y + & Y checkbox2 Y Y * & Y Q checkbox3 Z false Z + , Z checkbox3 Z Z * , Z Q checkbox4 [ 0 false [ + 0 2 [ D checkbox4 [ X [ * 2 [ Q l checkbox5 \ l false \ + 8 \ checkbox5 \ \ * 8 \ , ^ ^ ,Playback(vm-rec-temp) ^ T entry ^ ^ ^ 4 1 ` + 4 B ` & H n ` * B ` , b b ,Record( b b :wav,,,k b Q checkbox1 b b Q checkbox2 b $ b Q 8 checkbox3 b L $ 8 b Q ` checkbox4 b t L ` b t ) b T \ entry b p \ a b b Q text2 d
d + X e & AskoziaPBX Monitor f * Z g Q text2 h & h p (b generate_email k B = k ] (
complex_text1
k B ( = k A /tmp/ = k ] < text1 k B < = k P .wav k A P = k = d k & x d k
m + v n A <a href="notifications_email.php" target="_blank">E-Mail Notifications</a> must be configured correctly before this will work. Module MID%s. < o < gettext o j o B < o < sprintf kV\ o error o o = ; ERROR - Notification settings for this module are missing '= p ' p entry p , p @
line_count
q T q > r * v s M h u N | h u u & | u & u , w w , w 0 w T entry w Te w 0 D w * w x 1 h x Q l entry z B l < z < count .f z X
line_count
z z > { > | b { w & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0 random_hash) filename_append main_path record_filename record_file
email_fileA dialplan_entry/ subjectx generate_emailW keyNy| value?8" N | m generate_dialplan extension priority data moduleid label wires_to uniqid real_module_id
dialed_number generate_dialplan ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ ? ~ G & R ( i name & <
( p P i is_file_missing B = = d & x d + @ B < < is_array )V + + M ) N ) &
& B < < strlen =/ + ( A $ File for module WID%s-%s is missing.$ < < @ gettext T @ <br> A T < B < B
< < h sprintf kV\ , error h | * ( * 1 * 8 B < < strlen =/ + 8 A $ File for module WID%s-%s is missing.$ < < gettext j B < B < < sprintf kV\ error * 8 + ; ERROR - File for this module is missing '+ 0 '! entry 0 D X
line_count
l > * @ p i is_data_missing B = = & + s B < < is_array )V + ^ M \ N \ &
& B < < 4 strlen =/ H 4 + H [ A $ Data for module WID%s-%s is missing.$ < < p gettext p <br> A < B < B
< < sprintf kV\ \ error * [ * I 1 * k B < < strlen =/ + k A $ Data for module WID%s-%s is missing.$ < < gettext j B < B < < sprintf kV\ error $ * k L + ; ERROR - Data for this module is missing '+ ` L '! 8 entry ` t
line_count
> * s R i ignore_this_module + { entry
line_count
> * { R m command B < < ( strlen =/ < ( + < d + ; ERROR - No command available for module '+ x d '! P entry x
line_count
> * B
< < strlen =/ + ( ; ERROR - No name available for module '( '! entry , @
line_count
T > * p h i set_dialplan_counter A = = | B
< A < A < < substr B Press + &
Press * B
< A < A < < substr B Extension + &
Extension * 0
SoftHangup
+ p n generate_softhangup B = B = B = B = B = B = = 0 > 0 2 * 0
Ringing + p D Ho generate_ringing B = B = B = B = B = B = = X > X 2 * 0
Background
+ p l Ho generate_background B = B = B = B = B = B = = > 2 * 0
TimeSwitch
+ p Ho generate_timebox B = B = B = B = B = B = B = = > 2 * 0
CalenderSwitch + p Ho generate_calenderswitch B = B = B = B = B = B = B = = > 2 * 0
WaitForSilence + p Ho generate_waitforsilence B = B = B = B = = > 2 * 0
CallerID + p Ho generate_callerid B = B = B = B = = > 2 * 0
CallerIDName + p 4 Ho generate_calleridname B = B = B = B = = H > H 2 *
0
Answer + p \ o generate_answer B = B = B = B = = p > p 2 * 0
Email + % p p generate_module_email B = B = B = B = B = B = B = B = = > 2 * ' 0
Switch + 2 p p generate_switch B = B = B = B = B = B = = > 2 * 4 0
SwitchManually + ? p p generate_switch B = B = B = B = B = B = = > 2 * A 0
Queue + M p ,q generate_queue B = B = B = B = B = B = B = = > 2 * O 0
Press + [ p $ lq generate_press B = B = B = B = B = B = B = = 8 > 8 2 * ] 0
Extension + h p L lq generate_press B = B = B = B = B = B = = ` > ` 2 * j 0
Goto + s p t q
generate_goto
B = B = B = B = = > 2 * u 0
MaximumCalls + p q generate_maximumcalls B = B = B = B = B = B = B = = > 2 * 0
If + p q generate_if B = B = B = B = B = B = = > 2 * 0
IfManually
+ p q generate_if B = B = B = B = B = B = =
>
2 * 0
PathSwitch
+ p
q generate_path_switch B = B = B = B = B = B = B = B = = (
> (
2 * 0
Authenticate + p <
q generate_authenticate B = B = B = B = B = B = B = = P
> P
2 * 0
Text2Speech + p d
q generate_text2speech
B =
B =
B =
B =
B =
B =
B =
= x
> x
2 * 0
SayDigits + p
q generate_saydigits
B =
B =
B =
B =
B =
B =
B =
=
>
2 * 0
RecordEmail + p
q generate_recordemail B = B = B = B = B = B = B = B = =
>
2 * 0
MonitorStop + p
q generate_monitorstop B = B = B = B = B = B = B = B = =
>
2 * * p q generate_simple_dialplan B = B = B = B = B = = > 2 * * > ) M I \ & /offload/rootfs/usr/www/cfeLogic.php.b Module extension"y priority data?G moduleid*& labelE
wires_toT: uniqid`: real_module_idy0
dialed_number6] dialplan_entry/ name file_missing^Zhu keyNy| value?8" data_missingi ~
name <`u st cannot_connect_to #c r only_connect_to ? command "c %L ignore_this_module hu CV+D needed_data
needed_files ju last_dialplan_counter \ku c
asterisk_modules vu uniqids
name name st cannot_connect_to cannot_connect_to str only_connect_to only_connect_to r? command command ?%L ignore_this_module ignore_this_module %LCV+D needed_data needed_data CV+D
needed_files needed_files last_dialplan_counter last_dialplan_counter c
asterisk_modules asterisk_modules c
vu uniqids uniqids vu & /offload/rootfs/usr/www/cfeLogic.php.b module Cont D j` setposterrormessages b s setPostErrorMessages ? ; 8 post_error_messages = = > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont bvY ; > C
set_uniqids
uniqids_array set_uniqids ? B B < D < is_array )V D + E R H uniqids F B < F < ( is_array )V F
< ( F + <
F G d F P 8 uniqids F d F *
F R uniqids G B < G B < G < array_merge y G x 8 uniqids G G * H U 8 uniqids I d I I > K & /offload/rootfs/usr/www/cfeLogic.php.b Cont
uniqids_array H B K A get_uniqids get_uniqids R 8 uniqids O > O > P & /offload/rootfs/usr/www/cfeLogic.php.b Cont M P getasteriskapplicationloadlist getAsteriskApplicationLoadList R asterisk_modules T
T / T R ( asterisk_modules T B ( < T < < is_array )V T
P < T 4 P T / T A res_clioriginate.so < T R d asterisk_modules T B d < T < x in_array :f T
x T 4 T + U U asterisk_modules V
V res_clioriginate.so V * W R asterisk_modules Y > Y > Z & /offload/rootfs/usr/www/cfeLogic.php.b Cont R Z g,"! ! addasteriskapplicationtoloadlist module addAsteriskApplicationToLoadList ? \ R $ modules ^ Q ^
( ^ + ( ^ > ^ * ^ R < $ modules ` Q P < ` p d P get_asterisk_application ` = x ` + x a R T modules b Q b p get_asterisk_application b = b U T asterisk_modules b b b * c > d & /offload/rootfs/usr/www/cfeLogic.php.b Cont module \ d ]p getrealmoduleid moduleid getRealModuleID ? f p T getDataFromContainer h B = h A moduleid = h = h > h > i & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& f i E" " getcontainermoduleidthroughsearch moduleid main
subcontext whichcontext ! getContainerModuleIDThroughSearch @ k @ k @ k @ k & m & n ( p + ( q p < getDataFromContainer r B = r A moduleid = r = P r & d P r * s & x t w + x p getFirstExtension y = y & y z + { R ( uniqid | & | * } & ~ & , * p @ getConnectedContainerTo B = A = = T & h T | + | & M N & &
& p ` getContainerTitle B = = 0 j 0 A < A < < D substr B X D Press + X 5 & l * 5 p getContainerTitle B = = j A < A < < substr B Extension + @ & * @ p get_extension_from_title p getContainerTitle B = = j = j < 4 strlen =/ H 4 + H R p \ get_extension_from_title p p getContainerTitle B = = j = & * R p getContainerTitle B = = j A < A < < substr B Press + c p getContainerTitle B = = $ j $ A < < 8 substr B & L 8 * c & ` p t getRealModuleID B = = + p + m 1 > * o 1 > submodule * p p getContainerTitle B = = j A < A < < substr B Press + p get_subcontext_moduleid B = = & ( & < * p P t# getContainerTitle B = = d j d A < A < < x substr B x Extension + p t# get_subcontext_moduleid B = = & & * p t# ! getContainerModuleIDThroughSearch! B = B = B = B = = &
B
< < , strlen =/ @ , + @ 1 >
* < T flush G * % 1 * > > R ) % & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& mainl
subcontextt whichcontext] debugJ~ start3
j_moduleidA start_moduleid childContainer
jump_contexte67 cwY c_valuedc^ switched_context r_value9\ k q_ getcontextfrommoduleid moduleid eid main
subcontext getContextFromModuleID @ @ @ & & ( + (
p < getDataFromContainer B = A moduleid = = P & d P * & x + p getContainerTitle B = = TITLE: <br> ( * + * + START ( , , )<br> ( , * p @ D getFirstExtension = T & h T | + | ' R T uniqid & * ' & & * * p getConnectedContainerTo B = A = = & + & 0 M D N X D & l
X & & + K p getContainerTitle B
= = check (
, 4 H 4 , p \ d getRealModuleID B
= = p H p , )<br> ( * K p getRealModuleID B
= = + _ + W j_moduleid: $ main: 8 $ L 8 <br> ( L * W + \ ` FINISHED... t ` <br> ( t * \ 1 D > * _ p 4 getContainerTitle B
= = j A < A < < substr B Press + r p D get_subcontext_moduleid B
= = & + q Subcontext gefunden... ( <br> ( ( * q * r p < getContainerTitle B
= = P j P A < A < < d substr B x d Extension + x p get_subcontext_moduleid B
= = & + Subcontext gefunden... <br> ( * * +
go to module
, <br> ( , * p @ x getContextFromModuleID B
= B = B = = T & h T B < < | strlen =/ | + 1 D > * < flush G * 3 1 D * > V 7 3 & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& mainl
subcontextt debugJ~ start3
j_moduleidA start_moduleid childContainer
jump_contexte67 cwY c_valuedc^ r_value9\ get_text2speech get_text2speech . . R !
containers
B < < count .f ( + ( > * & <
R P
containers
M d P + N x d + & x & Q title Text2Speech + * [ " modules s Text2Speech + ) R @ XS
containers
Q T @ Q h T
dataContainer
Q | h text1 T , text | R hS
containers
Q Q
dataContainer
Q moduleid T moduleid R X hS uniqid T 0 D 0 callflow X l $ F * ) * * *
1 d > > !
+ & /offload/rootfs/usr/www/cfeLogic.php.b Cont text_counter?e keyNy| value?8" membersw i get_musiconhold get_musiconhold K K R hS
containers
B < < count .f ( + ( > * ! & < # R P "
containers
% M d P H % N x d H % % & x % & % Q title & MusicOnHold & + G ' [ T modules ( s MusicOnHold ( + F ) T * , moduleid * @ * p | getRealModuleID + B = + = + T T + h T realModuleID + + R
containers
, Q , Q
dataContainer
, Q text1 , T , file , 0 , Q D / Q X D file / l X _dir / A l < / < is_dir /
/ + @ 0 Q 2 Q file 2 _dir 2 A < 2 < mkdir |2
2 Q 3 Q file 3 .ulaw 3 A < 3 Q 4 3 Q H 4 file 3 \ H _dir/ 3 Q p 3 Q p file 3 B < 3 < basename a] 3 \ 3 .ulaw 3 A < 3 < copy D= 3 * @ 4 W 6 file 6 _dir 6 $ $ 8 F $ 8 * F 9 * G : *
; 1 d ; > = > > 6
H & /offload/rootfs/usr/www/cfeLogic.php.b Cont
music_counterP keyNy| value?8" musiconhold_class > |y get_queues
get_queues R
containers
B B < B < count .f B ( B + ( C > D * E & < G R P D
containers
I M d P I N x d I I & x I & I Q title J Queue J + K [ ~ modules L s Queue L + M T N , moduleid N @ N p | getRealModuleID O B = O = O T T O h T realModuleID O O R ,
containers
P Q P Q
dataContainer
P Q number1 P T P timeout P 0 P R l l
containers
Q Q l Q Q
dataContainer
Q Q number4 Q T D Q X D try_interval Q Q R
containers
R Q R Q
dataContainer
R Q 4
hiddennumber1
R T R weight R 4 H R [ \
containers
T Z p \ T Z p
dataContainer
T s hiddentext1 T . ? T R
containers
T Q T Q
dataContainer
T Q hiddentext1 T B < T < strlen =/ T T 4 T + H U R L
containers
U Q ` L U Q t `
dataContainer
U Q t hiddentext1 U T $ U 8 $ description U U * H U R
containers
V Q V Q
dataContainer
V Q number2 V T V
announce_freq
V ( V R d
containers
W Q x d W Q x
dataContainer
W Q list2 W T < W P < type W W R $k
containers
X Q X Q
dataContainer
X Q , text1 X T X
announce_file
X , @ X R | `k
containers
Y Q | Y Q
dataContainer
Y Q number3 Y T T Y h T wrapup_time Y Y R k
containers
Z Q Z Q
dataContainer
Z Q checkbox3 Z 0 y Z + 0 n [ T D \ X D ringinuse \ no l \ * q ] T ^ ringinuse ^ yes ^ R k
containers
` Q ` Q
dataContainer
` Q checkbox4 ` y ` + { a T b 4 joinempty b yes H b * ~ c T \ d p \ joinempty d no d R l
containers
f Q f Q
dataContainer
f Q checkbox5 f y f + g T h leavewhenempty h yes $ h * i T 8 j L 8 leavewhenempty j no ` j R t Lm
containers
m Q t m Q
dataContainer
m Q checkbox6 m y m + n T o announce-holdtime o yes
o * p T
q (
announce-holdtime q no <
q R P
m
containers
t Q d
P
t Q x
d
dataContainer
t Q
x
checkbox7 t
y t +
u T
v
announce-position v yes
v * w R
xn
containers
y Q
y Q
dataContainer
y Q , checkbox7 y @ , y y / @ @ y R T n
containers
y Q h T y Q | h
dataContainer
y Q | checkbox6 y y y 4 @ y + @ z R o
containers
{ Q { Q
dataContainer
{ Q number5 { B < { < strlen =/ { { + | T 0 } D 0 announce-frequency } X } * ~ R o
containers
Q Q
dataContainer
Q number5 T l l announce-frequency * T
announce-frequency 0
R \
8p
containers
Q p
\
Q
p
dataContainer
Q
hiddentext1 T 4
H
4
name
R
8p
containers
Q
Q
dataContainer
Q $ queuepin T
queuepin $ 8 R t 8p
containers
Q t Q
dataContainer
Q queueagentloginactivate T L ` L queueagentloginactivate R 8p modules Q Queue p get_queue_members p q getConnectedWireTo B = A = = ( j ( = < M P < N d P & x d & R q
containers
Q Q title QueueMember + R @ r
containers
Q T @ Q h T
dataContainer
Q | h list1 T T phones , r | * * 1 P $ F * * *
1 d > >
& /offload/rootfs/usr/www/cfeLogic.php.b Cont
queue_counter)f keyNy| value?8" membersw
module_key{H[ module_value'oh @ & get_playback_modules get_playback_modules 3 3 R q
containers
B < < count .f ( + ( > * & < R P ~
containers
M d P 0 N x d 0 & x & Q title Playback + / [ u modules s Playback + . T , moduleid @ p | u getRealModuleID B = = T T h T realModuleID R v
containers
Q Q
dataContainer
Q
hiddennumber1
T pin 0 R l Hv
containers
Q l Q
dataContainer
Q text1 T D X D file $ F * . * / *
1 d > > %
0 & /offload/rootfs/usr/www/cfeLogic.php.b Cont playback_counterY keyNy| value?8" membersw get_pressextension_modules get_pressextension_modules 3 3 R v
containers
B < < count .f ( + ( > * & < R P u
containers
M d P 0 N x d 0 & x & Q title
Background
+ / [ x modules s
Background
+ . T , moduleid @ p | 0y getRealModuleID B = = T T h T realModuleID R Xy
containers
Q Q
dataContainer
Q
hiddennumber1
T pin 0 R l y
containers
Q l Q
dataContainer
Q text1 T D X D file $ F * . * / *
1 d > > %
0 & /offload/rootfs/usr/www/cfeLogic.php.b Cont playback_counterY keyNy| value?8" membersw Z get_path_switches get_path_switches : : R y
containers
B < < count .f ( + ( > * & < R P x
containers
M d P 7 N x d 7 & x & Q title
PathSwitch
+ 6 [ h| modules s
PathSwitch
+ 5 T , moduleid @ p | | getRealModuleID B = = T T h T realModuleID R |
containers
Q Q
dataContainer
Q
hiddennumber1
T pin 0 R l (}
containers
Q l Q
dataContainer
Q hiddentext1 T D X D name R |}
containers
Q Q
dataContainer
Q 4
complex_text1
T execute 4 H $ \ F \ * 5 * 6 *
1 d > > ,
7 & /offload/rootfs/usr/www/cfeLogic.php.b Cont
queue_counter)f keyNy| value?8" membersw set_uniqid uniqid s
set_uniqid ? |} uniqid > & /offload/rootfs/usr/www/cfeLogic.php.b Cont uniqid`: '^ reset_priority pri reset_priority @
+ R ( old_priority priority ( * < old_priority P priority > & /offload/rootfs/usr/www/cfeLogic.php.b Cont pripl| get_next_priority get_next_priority R priority old_priority R ( priority < ( 0 / < < R P priority d P Z 4 < d + <
x priority 1 * R priority 1 + P priority n * R priority > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont V5\ dialplan_generate_hangup extension priority dialplan_generate_hangup ?
?
, ( , ,Hangup() ; Hangup to terminate the dialplan, > ( >
& /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y priority
Rm get_config_file_buffer line_delimiter fer get_config_file_buffer D D @
J R < write_conf_buffer M A N ( A P & < ( & d P x + x [ ] * M ? N ? & & , M @ = N T @ = | & h T & | B < < is_array )V + 0 M . N . & & B < ! A < ! A < ! < substr B ! 0 ; ! + 0 * " D # X D # * - $ l exten => % l % % * ' 1 ' * < ( B < ) A < ) A < ) < substr B ) ; ) + 9 * + + * < , exten => - - - * 0 1 @ 0 * 1 1 1 * 2 1 2 > 3 > 4 ) A ? = ! . & /offload/rootfs/usr/www/cfeLogic.php.b Cont
line_delimiterr~ buffer?
context_idV3 context
B keyNy| value?8" key2 value246@i key3 value3U6@i 4 md write_conf_file_buffer write_conf_file_buffer R write_conf_buffer 8 M 8 N ( 8 P 8 & < ( 8 & d P 8 M x : N x : : & : & : R t fp = B < =
= A < = < fwrite ,T = * > 1 x > * ? 1 ? > @ & /offload/rootfs/usr/www/cfeLogic.php.b Cont keyNy| value?8" key2 value246@i 6 @ 6Y write_conf_file extension fer string write_conf_file @ B ? B R X
subcontext
D U X write_conf_buffer D T ( D T < ( D P < D d D > E & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y string| B E 8WP post_error_message text fer post_error_message ? G R O post_error_messages I + J <br> K ( K < ( flush G L * M > N & /offload/rootfs/usr/www/cfeLogic.php.b Cont textJk G N nN set_extension extension
set_extension
? P O ext R R R O
ext_global
S ( S + ( T < <@
ext_global
U U * V p P O reset_priority W A Z = W = d W > X & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y P X set_dialed_number extension set_dialed_number ? Z L@
dialed_number
\ \ > ] & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y Z ] 6 reset_subcontext reset_subcontext tB
subcontext
a a > b & /offload/rootfs/usr/www/cfeLogic.php.b Cont _ b j get_subcontext_moduleid moduleid leid get_subcontext_moduleid ? d R E uniqid f -SUB- f ( f > ( f > g & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& d g ~ set_subcontext_moduleid moduleid leid set_subcontext_moduleid ? i p G set_subcontext k R H uniqid k ( -SUB- k < ( k A < = k = P k > l & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& i l set_subcontext
subcontext set_subcontext ? n TJ
subcontext
p p > q & /offload/rootfs/usr/www/cfeLogic.php.b Cont
subcontextt n q 6M reset_to_global_extension reset_to_global_extension R dJ
ext_global
u dJ ext u u > v & /offload/rootfs/usr/www/cfeLogic.php.b Cont s v qg
init_modules init_modules Y Y m Module { D { = ( { & < { p P init | A Tone = | A & Playback(askozia-music/askozia_jingle)& = | G d | A d = | = x | U M modules } Tone } } m Module D = & p
set_ignore
A = = , p @ init A Note = A Note = G T A T = = h U | N modules | Note m Module D = & p
set_ignore
A = = p 0 init A Start = A Start = G D Hangup A D = = X U l xN modules l Start m Module D 0 = & p init A Answer = A Answer(number1) = G Hangup A = = U 4 p modules H 4 Answer \ m p Module D p = = & p init A Hangup = A Hangup() = G A = = U dp modules Hangup $ m 8 Module D L 8 J = ` & t L p init A
SoftHangup
= A SoftHangup(list1,a) = G A = = p set_asterisk_application A app_softhangup.so = = U ] modules
SoftHangup
m ( Module D < ( Z = P & d < p x init A Phone = A C Dial(list1,number1,checkbox1checkbox2checkbox3checkbox4checkbox5go)C = G A = = U ] modules Phone m Module D g = & , p @ init A
DialNumber
= A & Goto(CFE-PHONE-UNIQUE-list1,number1,1)& = G T A T = = h U | ^ modules |
DialNumber
m Module D t = & p init A Voicemail = A : Voicemail(list1,checkbox1checkbox2checkbox3,hiddennumber1): = G A = = 0 U D ^ modules X D Voicemail l m Module D = & ; wit_browser_notifications_active wit_browser_notifications_active ] = + p init A WebIntegration = A k AGI(/usr/www/external_push_notification.sh,list1,"complex_text1","hiddentext1",hiddenlist2,"complex_text2")k = G A = = * p init A WebIntegration = A j NoOp(Web Integration is disabled for CFE: list1,"complex_text1","hiddentext1",hiddenlist2,"complex_text2")j = G 4 A 4 = = H p \ set_needed_data A list1 = = p p set_needed_data A
complex_text1
= = U 4_ modules WebIntegration m Module D = & $ p 8 init A Authenticate = A Authenticate(number1) = G L A L = = ` p t set_needed_data A number1 = = U a modules Authenticate m Module D =
&
p (
init A Authenticate = A Authenticate(number1) = G <
A <
= = P
p d
set_needed_data A number1 = = x
U
Hb modules
Authenticate
m
Module D
=
&
p init A SQLQuery = A > AGI(/usr/www/external_sql_interface.php,list1,"complex_text1")> = G , A , = = @ p T set_needed_data A list1 = = h p | set_needed_data A
complex_text1
= = U b modules SQLQuery m Module D = & p 0 init A ActionURL = A & Set(CURLRESULT=${CURL(complex_text1)})& = G D A D = = X p l set_needed_data A
complex_text1
= = p set_asterisk_application A func_curl.so = = U c modules ActionURL m Module D
=
& 4
p H
init A Queue = A 5 Queue(queueid,tcheckbox1checkbox2checkbox8,,,number1)5 = G \
A \
= = p
p
set_needed_data G
number1 H
number2 H
number3 H
number4 A
= =
p
set_asterisk_application G
app_queue.so A
= =
p
set_needed_files A text1 = = U $ d modules 8 $ Queue L m ` Module D t ` = & t p
set_ignore
A = = p init A QueueMember = A QueueMember = G A = = U 0f modules ( QueueMember < m P Module D d P = x & d p init A Transfer = A Transfer(list1) = G A = = p set_asterisk_application A app_transfer.so = = U f modules Transfer , m @ Module D T @ = h & | T p init A MusicOnHold = A 8 Set(CHANNEL(musicclass)=callflowid-MUSICONHOLD-moduleid)8 = G A = = U \g modules MusicOnHold m Module D , = 0 & D p X init A Wait = A
Wait(number1)
= G l A l = = p set_needed_data A number1 = = U g modules Wait m Module D < = & 4 p H init A WaitForSilence = A ' WaitForSilence(number2,number3,number1)' = G \ A \ = = p p set_asterisk_application A app_waitforsilence.so = = p set_needed_data G number1 H number2 H number3 A = = U h modules WaitForSilence m $ Module D 8 $ R = L & ` 8 p t init A WaitMusicOnHold = A MusicOnHold(,number1) = G A = = p set_needed_data A number1 = = U i modules WaitMusicOnHold m Module D ( b = < & P ( p d init A WaitForExtension = A WaitExten(number1) = G x A x = = U Lj modules WaitForExtension m Module D o = & p , init A ChanIsAvailable = A ChanIsAvail(list1,as) = G @ A @ = = T p h set_asterisk_application A app_chanisavail.so = = | U j modules ChanIsAvailable m Module D = & p init A Ringing = A Ringing() = G 0 A 0 = = D U X k modules l X Ringing m Module D = & p init A Text2Speech = A R Playback(/storage/usbdisk1/askoziapbx/media/sounds/cfe/speech_moduleid_callflowid)R = G A = = p set_needed_data A text1 = = 4 U H k modules \ H Text2Speech p m Module D = & p init A SayDigits = A SayDigits(text1) = G A = = p set_needed_data A text1 = = $ U 8 l modules L 8 SayDigits ` m t Module D t = & p init A
Background
= A Background(text1) = G A = = p set_needed_data A text1 = = p ( set_needed_files A text1 = = < U P lm modules d P
Background
x m Module
D
=
&
p init A Playback = A Playback(text1) = G A = = p set_needed_data A text1 = = , p @ set_needed_files
A text1 =
= T
U h 4n modules | h Playback m Module D = & p init A Playtones = A Playtones(list1) = G A = = p 0 set_needed_data A list1 = = D U X n modules l X Playtones m Module D = & p init A
StopPlaytones
= A StopPlaytones() = G A = = U o modules 4
StopPlaytones
H m \ Module D p \ = & p p init A Busy = A
Busy(number1)
= G A = = p set_needed_data A number1 = = U p modules $ Busy 8 m L Module D ` L = t & ` p init A
Congestion
= A Congestion(number1) = G A = = p set_needed_data A number1 = = U Lq modules !
Congestion
! ( ! m < Module # D P < # = d # & x P # p init $ A Echo = $ A Echo() = $ G $ A = $ = $ U q modules % Echo % % m Module ' D ' = , ' & @ ' p T init ( A Milliwatt = ( A Milliwatt() = ( G h ( A h = ( = | ( U Hr modules ) Milliwatt ) ) m Module + D ) + = + & + p init , A If = , A If = , G 0 , A 0 = , = D , p X set_needed_data - G l list1 - A l = - = - U r modules . If . . m Module 0 D : 0 = 0 & ! 0 p ! init 1 A
IfManually
= 1 A
IfManually
= 1 G 4! 1 A 4! = 1 = H! 1 p \! set_needed_data 2 G p! list1 2 A p! = 2 = ! 2 U ! <s modules 3 ! !
IfManually
3 ! 3 m ! Module 5 D ! ! K 5 = ! 5 & " ! 5 p $" init 6 A
PathSwitch
= 6 A
PathSwitch
= 6 G 8" 6 A 8" = 6 = L" 6 U `" s modules 7 t" `"
PathSwitch
7 " 7 m " Module 9 D " " X 9 = " 9 & " " 9 p " init : A MaximumCalls = : A MaximumCalls = : G # : A # = : = # : p (# set_needed_data ; A number1 = ; = <# ; p P# set_asterisk_application < A func_groupcount.so = < = d# < U x# <t modules = # x# MaximumCalls = # = m # Module ? D # # k ? = # ? & # # ? p $ init @ A
TimeSwitch
= @ A
TimeSwitch
= @ G $ @ A $ = @ = ,$ @ U @$ u modules A T$ @$
TimeSwitch
A h$ A m |$ Module C D $ |$ x C = $ C & $ $ C p $ init D A CalenderSwitch = D A CalenderSwitch = D G $ D A $ = D = $ D U % u modules E % % CalenderSwitch E 0% E m D% Module G D X% D% G = l% G & % X% G p % init H A Email = H A Email = H G % H A % = H = % H p % set_needed_data I G % text1 I H % text2 I A % = I = % I U & v modules J & & Email J 4& J m H& Module L D \& H& L = p& L & & \& L p & init M A Switch = M A Switch = M G & M A & = M = & M p & set_needed_data N G & list1 N A & = N = & N U ' v modules O $' ' Switch O 8' O m L' Module Q D `' L' Q = t' Q & ' `' Q p ' init R A SwitchManually = R A SwitchManually = R G ' R A ' = R = ' R p ' set_needed_data S G ' list1 S A ' = S = ( S U ( w modules T (( ( SwitchManually T <( T m P( Module V D d( P( V = x( V & ( d( V p ( init W A Goto = W A # Goto(context,extension,askmoduleid)# = W G ( W A ( = W = ( W U ( w modules X ( ( Goto X ) X m ) Module Z D ,) ) Z = @) Z & T) ,) Z p h) init [ A SendDTMF = [ A SendDTMF(number2) = [ G |) [ A |) = [ = ) [ p ) set_asterisk_application \ A app_senddtmf.so = \ = ) \ U ) x modules ] ) ) SendDTMF ] ) ] m * Module _ D * * _ = 0* _ & D* * _ p X* init a A
ExtensionH
= a A
ExtensionH
= a G l* a A l* = a = * a U * x modules b * *
ExtensionH
b * b m * Module d D * * d = * d & + * d p + init f A
ExtensionF
= f A
ExtensionF
= f G 4+ f A 4+ = f = H+ f U \+ ,y modules g p+ \+
ExtensionF
g + g m + Module i D + + i = + i & + + i p + init k A
ExtensionT
= k A
ExtensionT
= k G + k A + = k = , k U $, y modules l 8, $,
ExtensionT
l L, l m `, Module n D t, `, n = , n & , t, n p , init p A
ExtensionI
= p A
ExtensionI
= p G , p A , = p = , p U , z modules q - ,
ExtensionI
q - q m (- Module s D <- (-
s = P- s & d- <- s p x- init u A
ExtensionS
= u A
ExtensionS
= u G - u A - = u = - u U - pz modules v - -
ExtensionS
v - v m - Module x D . - x = . x & ,. . x p @. init y A PressX = y A PressX = y = T. y p h. set_needed_data z A number1 = z = |. z U . z modules { . . PressX { . { m . Module } D . . % } = . } & / . } p / init ~ A Press1 = ~ A Press1 = ~ G 0/ ~ A 0/ = ~ = D/ ~ U X/ d{ modules l/ X/ Press1 / m / Module D / / 2 = / & / / p / init A Press2 = A Press2 = G / A / = = 0 U 0 { modules 40 0 Press2 H0 m \0 Module D p0 \0 ? = 0 & 0 p0 p 0 init A Press3 = A Press3 = G 0 A 0 = = 0 U 0 $| modules 0 0 Press3 1 m $1 Module D 81 $1 L = L1 & `1 81 p t1 init A Press4 = A Press4 = G 1 A 1 = = 1 U 1 | modules 1 1 Press4 1 m 1 Module D 2 1 Y = 2 & (2 2 p <2 init A Press5 = A Press5 = G P2 A P2 = = d2 U x2 | modules 2 x2 Press5 2 m 2 Module D 2 2 f = 2 & 2 2 p 3 init A Press6 = A Press6 = G 3 A 3 = = ,3 U @3 D} modules T3 @3 Press6 h3 m |3 Module D 3 |3 s = 3 & 3 3 p 3 init A Press7 = A Press7 = G 3 A 3 = = 3 U 4 } modules 4 4 Press7 04 m D4 Module D X4 D4 = l4 & 4 X4 p 4 init A Press8 = A Press8 = G 4 A 4 = = 4 U 4 ~ modules 4 4 Press8 4 m 5 Module D 5 5 = 45 & H5 5 p \5 init A Press9 = A Press9 = G p5 A p5 = = 5 U 5 d~ modules 5 5 Press9 5 m 5 Module D 5 5 = 5 & 6 5 p $6 init A RecordEmail = A RecordEmail = G 86 A 86 = = L6 p `6 set_needed_data G t6 text1 H t6 text2 A t6 = = 6 U 6 ~ modules 6 6 RecordEmail 6 m 6 Module D 6 6 = 7 & 7 6 p (7 init A Monitor = A ' Monitor(wav,/tmp/monitor-${UNIQUEID},m)' = G <7 A <7 = = P7 p d7 set_asterisk_application G x7 res_monitor.so H x7
chan_agent.so
A x7 = = 7 U 7 h modules 7 7 Monitor 7 m 7 Module D 7 7 = 8 & 8 7 p ,8 init A MonitorStop = A MonitorStop = G @8 A @8 = = T8 p h8 set_needed_data G |8 text1 H |8 text2 A |8 = = 8 U 8 @ modules 8 8 MonitorStop 8 m 8 Module D 8 8 = 9 & 9 8 p 09 init A MonitorPause = A PauseMonitor() = G D9 A D9 = = X9 U l9 modules 9 l9 MonitorPause 9 m 9 Module D 9 9 = 9 & 9 9 p 9 init A MonitorUnpause = A UnpauseMonitor() = G : A : = = : U 4: \ modules H: 4: MonitorUnpause \: m p: Module D : p: = : & : : p : init A SetLanguage = A Set(CHANNEL(language)=list1) = G : A : = = : U : modules ; : SetLanguage $; m 8; Module D L; 8; = `; & t; L; p ; init A Read = A % Read(text1,,number1,,number2,number3)% = G ; A ; = = ; p ; set_needed_data G ; text1 H ; number1 H ; number2 H ; number3 A ; = = ; U < X modules < < Read (< m << Module D P< << = d< & x< P< p < init A System = A
System(text1)
= G < A < = = < p < set_needed_data A text1 = = < U < 0 modules = < System = m ,= Module D @= ,= = T= & h= @= p |= init A Command = A text1 = G = A = = = = p = set_needed_data A text1 = = = U = modules = = Command > m > Module D 0> > + = D> & X> 0> p l> init A CallerID = A text1 = G > A > = = > p > set_needed_data A text1 = = > U > H modules > > CallerID > m ? Module D ? ? ; = 4? & H? ? p \? init A CallerIDName = A text1 = G p? A p? = = ? p ? set_needed_data A text1 = = ? U ? modules ? ? CallerIDName ? m ? Module D @ ? K = $@ & 8@ @ p L@ init A Log = A Log(list1,text1) = G `@ A `@ = = t@ p @ set_needed_data A text1 = = @ U @ p modules @ @ Log @ > ? & /offload/rootfs/usr/www/cfeLogic.php.b Cont
new_module}t x 4 U check_container_connection to from check_container_connection ' ' ? ? [ < modules s
( + ( > * R < < modules Q P < R d P only_connect_to x d + x B < R modules Q R only_connect_to B < < in_array :f
> * R modules Q R cannot_connect_to B < < , is_array )V
@ , + @ > * B < R T modules Q h T R | h cannot_connect_to j | < in_array :f > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont to from,u check_container_tagging check_container_tagging ( ( p getFirstExtension = R (
containers
M < ( % N P < % x & d P & x p isContainerTagged B = =
+ $ p getContainerTitle B = = & Note + 3 * p , post_error_message A Not all modules can be reached < < @ gettext T @ (MID p h getDataFromContainer B = A moduleid = = | T | ) A = = 1 < > * $ * 1 < > > % & /offload/rootfs/usr/www/cfeLogic.php.b Cont keyNy| value?8" check_container_titlef~E ;2 check_container cont from check_container ? ? ? ? p getShortContainerTitle B = = & ( p < getConnectedContainerTo B = B = = P & d P p x getDataFromContainer B = A moduleid = = MID & & + p getShortContainerTitle B = = & * M , < N @ , < h & T @ & | h p getShortContainerTitle
B =
=
&
p check_container_connection B = B = = + ;
p p getDataFromContainer B = A moduleid = = MID & 0 p D p post_error_message A & %s can not be connected to %s (%s, %s)& < < X gettext j X B < B < B < B < < l sprintf kV\ j l = 1 , > * ; * 1 , > > ! < & /offload/rootfs/usr/www/cfeLogic.php.b Cont
cont:= from,u check_container_titlef~E check_connected_title9 cont_idgB
from_title+ c_key< c_valuedc^ cvalue_titlefx from_id4 h0 save_jsondata jsondata le uniqid
save_jsondata ' ' ? ? A /tmp/cache/ < < is_dir
+ A /tmp/cache/ < < ( mkdir |2
* < /tmp/cache/JSON_ & P < B < < d is_file `(( + d ! ; file_get_content file_get_content " B = " = x " j x " < unserialize 5} " > " * # m
Services_JSON
$ D $ c SERVICES_JSON_LOOSE_TYPE $ A = $ = $ & $ p decode % B = % = % & , % ; util_file_put_contents util_file_put_contents M& B < & < @ serialize
& j @ & B = & = T & > ' > ( & /offload/rootfs/usr/www/cfeLogic.php.b Cont jsondata uniqid`: filename& json_service/\^ temp_jsonk* ( Y, init jsondata nts uniqid init ? * ? * B < + < stripslashes J + & + p ( init_modules , = < , p P
set_uniqid
- B = - = d - x priority / 0 / m
Services_JSON
1 D 1 c SERVICES_JSON_LOOSE_TYPE 1 A = 1 = 1 & 1 p decode 2 B = 2 = 2 & 2 Q @
containers
4 ,
containers
4 @ 4 Q h wires 5 T wires 5 h 5 > 6 & /offload/rootfs/usr/www/cfeLogic.php.b Cont jsondata uniqid`: json_service/\^ avY * 6 getconnectedwireto cont nts filter getConnectedWireTo 4 4 ? 8 ? 8 G : & : & ( ; R < wires = B < < = < P count .f = d P = + d > > ? * @ R x p wires B M x * B N * B B & B & B Q src C Q moduleId C C + C 3 C * C Q , tgt D Q @ , moduleId D T @ D + T D 3 D * D Q h src F Q | h moduleId F | F + ) G Q src I Q
terminalId
I Q tgt I T I I I * ) J * K 1 K r M
0 M + 0 0 N > O * 3 P C < Q < D ksort Q > R > T * & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E nextD counterfR keyNy| wire 8 T getconnectedwirefrom cont m filter getConnectedWireFrom $ $ ? V ? V R wires X M X N ( X P X & < ( X & d P X Q x src Z Q x moduleId Z Z + Z 3 Z * Z Q tgt [ Q moduleId [ [ + [ 3 [ * [ Q tgt ] Q moduleId ] ] + ^ Q , src _ & @ , _ * ` * a 1 a r T c
h T c + h " d > e * # f > g > i & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E keyNy| wire nextD V i D getconnectedcontainerfrom cont m filter getConnectedContainerFrom % % ? k ? k R wires m M m N ( m P m & < ( m & d P m Q x src o Q x moduleId o o + o 3 o * o Q tgt p Q moduleId p p + p 3 p * p Q tgt r Q moduleId r r + s Q , src t Q @ , moduleId t & T @ t * u * v 1 v r h x
| h x + | # y > z * $ { > | > ~ & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E keyNy| wire nextD k ~ >" getconnectedcontainerto cont erto filter getConnectedContainerTo @ @ ? ? G & R ( ( wires B ( < < < count .f P < + P > * R d wires M x d 8 N x 8 & & Q src Q moduleId + 3 * Q tgt Q , moduleId @ , + @ 3 * Q T src Q h T moduleId | h + | , [ wires Z s tagged
+ + Q tgt Q moduleId * + * , Q 0 tgt Q D 0 moduleId X D + X 7 [ l d wires Z l s tagged
+ 6 * 6 * 7 *
1 x r
+ > > * ? > > %
8 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= filter+E nextD keyNy| wire o getprevcontainer cont erto getPrevContainer ? R wires M N ( P & < ( & d P Q x tgt Q x moduleId + Q src Q moduleId & * * 1 > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= keyNy| wire prev) ^ /**
* Liefert den vorhergehenden Knoten
*
* @return integer Gibt den Parent-Knoten.
*/^ uP: get_extension_from_title title get_extension_from_title ?
ExtensionS
+ > s *
ExtensionI
+ > i * (
ExtensionT
+ (
> t *
<
ExtensionF
+ < > f * P
ExtensionH
+ P > h * > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont title" traverse_x moduleid parent_moduleid
traverse_x u u ? ? & p ,* iscontainerTagged B = = ( + ( > * R < ,*
containers
Q P < . d P R x ,*
containers
Q x Q title 4 d + d p <* addAsteriskApplicationToLoadList ^ *
containers
] ] title B = = * + + R <*
subcontext
, --- @ , T @ ( p h d+ getContainerTitle B = = | T | ) -> ( p + getContainerTitle B = = )<br> ( * + p 0 + setContainerTagged B = = D & X l + l & p ,, getConnectedWireTo B = A = = & p h, getDataFromContainer B = A moduleid = = j < strlen =/ + B module- & 4 * H p H , getDataFromContainer B = A moduleid = = \ p module- \ & p p ,, getContainerTitle B = = PressX + _ p , getDataFromContainer B = A number1 = = & B < < strlen =/ $ . $ $ Y B < < 8
is_numeric
a 4 $ 8 + $ ^ p L -
set_extension
B = = ` * ^ * _ p t , getContainerTitle B = = PressX . m p - getContainerTitle B = = j A < A < < substr B Press 4 + p D. getContainerTitle B = = j A < < ( substr B & < ( B < < P strlen =/ d P . d d | B < < x
is_numeric
a 4 d x + d p T.
set_extension
B = = * * p T. getContainerTitle B = = j A < A < < substr B Extension + p / getContainerTitle B = = j A < < , substr B j , < @
strtolower
j & T @ B < < h strlen =/ | h + | p /
set_extension
B =
=
*
*
p - generate_conf_module
^ T. ext
B =
^ T.
containers
]
]
dataContainer
B =
^ T.
containers
] 0
] D 0 title
B D =
B =
B =
B =
^ X /
dialed_number
B X =
= l
& l
+
p / write_conf_file
^ / ext
B =
B =
=
*
*
p + getConnectedContainerTo
B =
B =
=
&
R + ext
&
4
+ 4 \
M H Z
N \ H Z
& p
\
p |0 check_container
B =
B =
=
+ W
p 0 get_extension_from_title
p 0 getContainerTitle
B =
=
j
=
j
< strlen =/
+
p $ 0
set_extension
p 8 0 get_extension_from_title
p L 0 getContainerTitle
B =
= `
j `
= t
j t
=
*
p 0 getContainerTitle
B =
=
PressX
+
p 0 getDataFromContainer
B =
A number1 =
=
&
B <
<
strlen =/
(
. (
(
B <
< <
is_numeric
a
4 (
<
+ (
p P
2
set_extension
A submodule =
= d
p x
2 set_subcontext_moduleid !
B = !
=
!
* "
* #
p
0 getContainerTitle $
B = $
=
$
PressX $
.
$
p
2 getContainerTitle %
B = %
=
%
j
%
A < %
A < %
< substr B %
Press %
4
%
+
%
p , ; getContainerTitle '
B = '
= @ '
j @ '
A < '
< T substr B '
& h T '
B < )
< | strlen =/ )
| )
. )
B < )
<
is_numeric
a )
4 )
+ *
p $;
set_extension
+
A submodule = +
= +
p $; set_subcontext_moduleid ,
B = ,
= ,
* -
* .
p $; getContainerTitle 0
B = 0
= 0
j 0
A < 0
A < 0
< 0 substr B 0
D 0 Extension 0
+ D ; 0
p X < getContainerTitle 2
B = 2
= l 2
j l 2
A < 2
< substr B 2
j 2
<
strtolower
j 2
& 2
B < 4
< strlen =/ 4
4
+ : 5
p <
set_extension
6
A submodule = 6
= 6
p
< set_subcontext_moduleid 7
B = 7
=
7
* : 8
* ; 9
R 4
2
subcontext
;
& H
4
;
p \
2 getContainerTitle =
B
= =
= p
=
p
Phone =
.
G =
p
$; getContainerTitle =
B = =
=
=
Queue =
4
=
+
M >
p
$<
traverse_x
?
B
= ?
B = ?
=
?
* Q A
p
$<
traverse_x
B
B
= B
B = B
= B
p $ < set_subcontext E
B = E
= 8 E
L < ext F
F
* Y H
1 H I
> I
* K
1 H K
* t M
p ` / getContainerTitle N
B = N
= t N
t Hangup N
. f N
Q entry N
B < N
< strlen =/ N
N
4 N
+ t O
p = write_conf_file P
^ = ext P
B = P
p = dialplan_generate_hangup P
^ = ext P
B = P
p ( = get_next_priority P
= < P
j < P
= P P
j P P
= d P
* t Q
> S
Z & /offload/rootfs/usr/www/cfeLogic.php.b Cont moduleid*& parent_moduleidi debugJ~ printR+k labelE
local_wires_toWu local_number+: ivr_config_line childContainer
old_extensionO} cwY subcontext_temp* S
AF
traverse_mod traverse_mod p |0 getFirstExtension V
= V
& ( V
p < |0 write_conf_file W
^ P = ext W
B P = W
7 x ; Call flow - W
R d = uniqid W
8 x x d W
A x = W
= W
p |0
traverse_x
X
B = X
A = X
= X
> Z
& /offload/rootfs/usr/www/cfeLogic.php.b Cont
root_moduleid[x4 U
Z
nF5 traverse cont d+ from traverse 4 4 ? \
@ \
p E setContainerTagged ]
B = ]
= ]
p ( (E increaseContainerCount ^
B = ^
= < ^
& P < ^
p d (E getConnectedContainerTo n
B = n
B = n
= x n
& x n
B < p
< count .f p
p
. p
B < p
< count .f p
p
4 p
+ q
p E post_error_message r
A ! There is a loop in the call flow!! < r
< gettext r
j r
= r
> s
* t
, v
+ , 3 w
M @ 1 x
N T @ 1 x
x
& h T x
p | HF check_container y
B = y
B = y
= y
+ . z
p XF traverse {
B = {
B = {
= {
* 0 |
1 @ }
> }
* !
1 @
* 3
>
$ ! 1 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= from,u counterfR connected_containerZ" cwY \
rh
ivr_conf_gen ivr_conf_gen ; ; G
,
(
G P
<
P d
R x HF
containers
& x
R HF
containers
M
N
&
&
s ext
+
Q @ ext
,
@ T
*
s h priority
+ h
Q priority
|
*
*
1
C <
A <
C <
A <
C <
< array_multisort
M 8
N 8
&
&
s 0 ext
. 0 0 -
Q D ext
R X @x start_extension
l D X
4 0 l
+ 0 7
Q priority
+ 3
3
* 6
p `x writeConf
B =
=
* 7
* #
1
>
>
$
' # 8 & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y priority data?G keyNy| value?8" counterfR
R /**
* undocumented function
*
* @return void
* @author xing cao
**/R I generate_conf_module extension e container moduleid id label wires_to
dialed_number generate_conf_module ?
?
?
?
?
?
?
[ Tz modules
s
+
( Goto
+ ( d
R < z modules
Q P <
R d P name
x d PressX
+ x
Q number1
&
*
R { modules
Q
R name
PressX
. "
R X| modules
Q
R , name
B , <
A <
A <
< @ substr B
T @ Press
4 T
+ (
B <
A <
< h substr B
& | h
* (
p | getContextFromModuleID
A =
] askmoduleid
B =
=
context
Q context
B <
A -SUB- <
< strpos
+ 8
0 context_extension
CALLFLOW-START D
* :
X context_extension
submodule l
p | ! getContainerModuleIDThroughSearch!
A =
] askmoduleid
B =
=
&
submodule
. E
Q context_extension
CALLFLOW-START
4
+ I
context_extension
CALLFLOW-START
* P
B <
< 4 strlen =/
H 4
+ H P
\ context_extension
p
* P
Q context
B <
< strlen =/
+ c
p p~ post_error_message
A $ Goto MID%s: Module ID not found (%s)$ <
< gettext
j
p G getRealModuleID
B =
=
j
Q askmoduleid
B <
< $ sprintf kV\
j $
= 8
* c
* d
M L s
N ` L s
& t `
&
p ~ getRealModuleID
]
] moduleId
B =
= (
T
T
moduleId
( <
* e
1 L
R P p~ modules
Q d P
p x d generate_dialplan
B =
p G get_next_priority
=
j
r
+
*
A =
B =
B =
B =
^ G uniqid
B =
p G getRealModuleID
B =
=
j
B =
=
& ,
p @ p~ set_uniqids
R T G modules
Q h T
p | h get_uniqids
=
j
=
s
error
+
p I post_error_message
]
error
B =
=
*
Q
line_count
+
p 0 I reset_priority
= D
*
Q X
entry
> X
*
p l I write_conf_file
B =
; ERROR - No module '
' found.
A =
=
p I reset_priority
=
>
>
e i e s & /offload/rootfs/usr/www/cfeLogic.php.b Cont extension"y container~T moduleid*& idr~ labelE
wires_toT:
dialed_number6] local_number+: data?G goto_module_real_idr$ a_keyn a_value
wires_to_real4R dialplan_entry/
V<
writeconf print_array writeConf ?
Q title
&
s ( value
+ (
Q < value
& P <
*
& d
Q x priority
& x
Q ext
&
R L fp
B <
A exten => %s,%d,%s(%s)
<
B <
B <
B <
B <
< fprintf \
>
& /offload/rootfs/usr/www/cfeLogic.php.b Cont print_arrayPve applicationf valn| pripl| ext6|
Y+ isleaf cont isLeaf ? & R O wires M ( N < ( & P < Q d src Q x d moduleId x + $ F * *
1 (
+ > *
> >
& /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= count.f wire /**
* Liefert das Ergebnis einer Ueberpruefung, ob der angegebene Container
* ein Blatt im Baum ist.
*
* @param integer Das zu ueberpruefende Container.
* @return boolean true, wenn der Container ein Blatt ist, sonst false.
*/ | getcontainers
getContainers R O
containers
> > & /offload/rootfs/usr/www/cfeLogic.php.b Cont T /**
* Liefert alle Knoten als Array zurueck
*
* @return Array Containers
*/T {
getcontainer cont getContainer ? R
containers
! Q ! > ! > " & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= " \ /**
* Liefert einen Knoten zurueck.
*
* @param integer ID des geforderten Knotens
*/\ G
getdatafromcontainer cont r data getDataFromContainer ? $ ? $ [
containers
& s &
( & + ( & > UNKNOWN & * & R <
containers
( Q P < ( Q d P
dataContainer
( . x d ( R
containers
( Q ( Q
dataContainer
( Q ( 4 x ( + x ) R $
containers
* Q * Q
dataContainer
* Q * > * * + > , > . & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= data?G $ . yJ getvaluecontaiertitle cont le getValueContaierTitle ? 0 A _ < 2 p getContainerTitle 2 B = 2 = 2 j 2 < ( explode r 2 & < ( 2 Q P 3 > P 3 > 4 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= title_array 0 4 !] getshortcontainertitle cont tle getShortContainerTitle ? 5 A _ < 7 p D getContainerTitle 7 B = 7 = 7 j 7 < ( explode r 7 & < ( 7 Q P 8 > P 8 > 9 & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= title_array 5 9 J getcontainertitle cont getContainerTitle ? ; R p
containers
< Q < Q ( title < > ( < > = & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= ; = ? getcontainervalue cont getContainerValue ? ? R
containers
@ Q @ + A R (
containers
B Q < ( B Q P < value B > P B *
C > D > F & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= ? F o setcontainertagged cont setContainerTagged ? H U
containers
J T J ( tagged J < J > K > L & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= H L % iscontainertagged cont isContainerTagged ? N [
containers
P Z P s ( tagged P
< ( P + < P > P * P R P
containers
Q Q d P Q Q x d tagged Q x Q > Q > R & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= N R qfj getcontainercount cont getContainerCount ? T [
containers
V Z V s ( counter V
< ( V + < V U P
containers
V T d P V x d counter V V * V R @
containers
W Q W Q counter W > W > X & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= T X =(e increasecontainercount cont unt increaseContainerCount ? Z [
containers
\ Z \ s ( counter \
< ( \ + < \ U P
containers
\ T d P \ x d counter \ \ * \ X
containers
] W ] W counter ] " ] > ] > ^ & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= Z ^ @q setcontainerextandpriority cont setContainerExtAndPriority
? ` R < ext c U
containers
c T c ( ext c < P c R priority d U d
containers
d T x d d x priority d d > e > f
& /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= ` f *i getfirstextension getFirstExtension R
containers
i B < i < count .f i ( i + ( j > k * l R < L
containers
n M P < n N d P n n & x d n & n Q title o Start o + o 1 P p > p * q * r 1 P r > t > u
& /offload/rootfs/usr/www/cfeLogic.php.b Cont keyNy| value?8" h u zt
getcontainerpos cont getContainerPos ? w R
containers
x Q x Q ( position x > ( x > y & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= w y 2h getcontainerposx cont getContainerPosX ? { R
containers
| Q | Q ( position | Q < ( | > < | > } & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= { } Sh getcontainerposy cont getContainerPosY ? R 8
containers
Q Q ( position Q < ( > < > & /offload/rootfs/usr/www/cfeLogic.php.b Cont cont:= getwires getWires R H wires > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont ` /**
* Liefert ein Array mit allen Kanten
*
* @return array Alle Kanten des Graphen
*/` \;% getwire wire getWire ? R ,' wires Q > > & /offload/rootfs/usr/www/cfeLogic.php.b Cont wire z /**
* Liefert eine Kante als Array
*
* @param integer der zu liefernden Kante
* @return array Eine Kante
*/z - getwiresource wire
getWireSource ? R @) wires Q Q ( src Q < ( modulId > < > & /offload/rootfs/usr/www/cfeLogic.php.b Cont wire ] getwiretarget wire
getWireTarget ? R t+ wires Q Q ( tgt Q < ( modulId > < > & /offload/rootfs/usr/www/cfeLogic.php.b Cont wire [^ containers /4!% wires fR counter 6| ext &#n ext_global 6] dialed_number |aU start_extension ( ;s fp f write_conf_buffer j\
conf_file Lf modules priority
old_priority L jS numeric_priority 0 t subcontext `: uniqid Me post_error_messages c
asterisk_modules \ [^ containers
containers
[^/4!% wires wires /4!%fR counter counter fR6| ext ext 6|&#n ext_global
ext_global
&#n6] dialed_number
dialed_number
6]|aU start_extension start_extension |aU;s fp fp ;sf write_conf_buffer write_conf_buffer fj\
conf_file conf_file j\Lf modules modules Lf priority priority
old_priority old_priority jS numeric_priority numeric_priority jSt subcontext
subcontext
t`: uniqid uniqid `:Me post_error_messages post_error_messages Mec
asterisk_modules asterisk_modules c
& /offload/rootfs/usr/www/cfeLogic.php.b cont A < < error_reporting I I JSON.php > & /offload/rootfs/usr/www/cfeLogic.php.b i link = $
Function Calls
| None |
Stats
| MD5 | 720f9d2b2e45653bf41d31611f5cb938 |
| Eval Count | 0 |
| Decode Time | 405 ms |