diff --git a/app/destinations/destination_edit.php b/app/destinations/destination_edit.php index 66882613c1..f2ba66c4a8 100644 --- a/app/destinations/destination_edit.php +++ b/app/destinations/destination_edit.php @@ -562,17 +562,70 @@ $condition_expression = str_replace("+", "\+", $row['condition_expression']); } - //add to the dialplan_details array + //add to the dialplan_details array - condition regex='all' $dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid; $dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid; $dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "condition"; - $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $row['condition_field']; - $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = '^'.$condition_expression.'$'; + $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = 'regex'; + $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = 'all'; + $dialplan["dialplan_details"][$y]["dialplan_detail_break"] = 'never'; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '0'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; //increment the dialplan detail order $dialplan_detail_order = $dialplan_detail_order + 10; + + //check the destination number + $dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid; + $dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid; + $dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "regex"; + if (!empty($destination_condition_field)) { + $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $destination_condition_field; + } + elseif (!empty($_SESSION['dialplan']['destination']['text'])) { + $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $_SESSION['dialplan']['destination']['text']; + } + else { + $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "regex"; + } + $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = $destination_number_regex; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '0'; + $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; + $y++; + + //increment the dialplan detail order + $dialplan_detail_order = $dialplan_detail_order + 10; + + $dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid; + $dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid; + $dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "regex"; + $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $row['condition_field']; + $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = '^'.$condition_expression.'$'; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '0'; + $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; + $y++; + + if (isset($row['condition_app']) && !empty($row['condition_app'])) { + if ($destination->valid($row['condition_app'].':'.$row['condition_data'])) { + + //increment the dialplan detail order + $dialplan_detail_order = $dialplan_detail_order + 10; + + $dialplan["dialplan_details"][$y]["domain_uuid"] = $domain_uuid; + $dialplan["dialplan_details"][$y]["dialplan_uuid"] = $dialplan_uuid; + $dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action"; + $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = xml::sanitize($row['condition_app']); + $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = xml::sanitize($row['condition_data']); + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '0'; + $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; + $y++; + + } + } + + //increment the dialplan detail order + $dialplan_detail_order = $dialplan_detail_order + 10; } } @@ -590,7 +643,9 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "destination_number"; } $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = $destination_number_regex; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; + $y++; //increment the dialplan detail order @@ -605,6 +660,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "hangup_after_bridge=true"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -618,6 +674,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "continue_on_fail=true"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; } @@ -633,6 +690,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "effective_caller_id_name=".$destination_cid_name_prefix."#\${caller_id_name}"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "false"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -648,6 +706,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "export"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "accountcode=".$destination_accountcode; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -663,6 +722,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "carrier=$destination_carrier"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -678,8 +738,12 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "export"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "hold_music=".$destination_hold_music; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; + + //increment the dialplan detail order + $dialplan_detail_order = $dialplan_detail_order + 10; } //set the distinctive ring @@ -690,8 +754,12 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "export"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "sip_h_Alert-Info=".$destination_distinctive_ring; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; + + //increment the dialplan detail order + $dialplan_detail_order = $dialplan_detail_order + 10; } //add fax detection @@ -704,6 +772,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "tone_detect_hits=1"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -717,6 +786,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "execute_on_tone_detect=transfer ".$fax_extension." XML \${domain_name}"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -729,6 +799,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action"; $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "tone_detect"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "fax 1100 r +5000"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -749,6 +820,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_path=\${recordings_dir}/\${domain_name}/archive/\${strftime(%Y)}/\${strftime(%b)}/\${strftime(%d)}"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -762,6 +834,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_name=\${uuid}.\${record_ext}"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -775,6 +848,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_append=true"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -788,6 +862,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "record_in_progress=true"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -801,6 +876,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "set"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "recording_follow_transfer=true"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "true"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -814,6 +890,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = "record_session"; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = "\${record_path}/\${record_name}"; $dialplan["dialplan_details"][$y]["dialplan_detail_inline"] = "false"; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; $y++; @@ -834,6 +911,7 @@ $dialplan["dialplan_details"][$y]["dialplan_detail_tag"] = "action"; $dialplan["dialplan_details"][$y]["dialplan_detail_type"] = $action_app; $dialplan["dialplan_details"][$y]["dialplan_detail_data"] = $action_data; + $dialplan["dialplan_details"][$y]["dialplan_detail_group"] = '1'; $dialplan["dialplan_details"][$y]["dialplan_detail_order"] = $dialplan_detail_order; //set inline to true @@ -1502,7 +1580,7 @@ } //destination conditions - if (permission_exists('destination_conditions') && $_SESSION['destinations']['dialplan_details']['boolean'] == "false") { + if (permission_exists('destination_conditions')) { echo "