Fork of FusionPBX but with LDAP kinda working
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

134 lines
4.3 KiB

<?php
/*
FusionPBX
Version: MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2017 - 2022
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
if ($domains_processed == 1) {
//update the v_destinations set destination_app and destination_data
$sql = "select dialplan_uuid, dialplan_detail_type as destination_app, dialplan_detail_data as destination_data\n";
$sql .= "from v_dialplan_details\n";
$sql .= "where dialplan_uuid in (select dialplan_uuid from v_destinations where destination_type = 'inbound' and destination_app is null and destination_data is null)\n";
$sql .= "and dialplan_detail_tag = 'action'\n";
$sql .= "and (dialplan_detail_type = 'transfer' or dialplan_detail_type = 'bridge')\n";
$sql .= "order by dialplan_detail_order;\n";
$database = new database;
$extensions = $database->select($sql, null, 'all');
unset($sql);
if (is_array($extensions) && @sizeof($extensions) != 0) {
foreach($extensions as $row) {
$sql = "update v_destinations ";
$sql .= "set destination_app = :destination_app, destination_data = :destination_data ";
$sql .= "where dialplan_uuid = :dialplan_uuid ";
$parameters['destination_app'] = $row['destination_app'];
$parameters['destination_data'] = $row['destination_data'];
$parameters['dialplan_uuid'] = $row['dialplan_uuid'];
$database = new database;
$database->execute($sql, $parameters);
unset($sql, $parameters);
}
}
unset($extensions, $row, $array);
//use destinations actions to
$sql = "select * from v_destinations ";
$sql .= "where destination_actions is null ";
$database = new database;
$destinations = $database->select($sql, null, 'all');
if (is_array($destinations)) {
//pre-set the numbers
$row_id = 0;
$z=0;
//loop through the array
foreach ($destinations as $row) {
//prepare the actions array
if (isset($row['destination_app']) && $row['destination_data'] != '') {
$actions[0]['destination_app'] = $row['destination_app'];
$actions[0]['destination_data'] = $row['destination_data'];
}
if (isset($row['destination_alternate_data']) && $row['destination_alternate_data'] != '') {
$actions[1]['destination_app'] = $row['destination_alternate_app'];
$actions[1]['destination_data'] = $row['destination_alternate_data'];
}
//build the array of destinations
if (is_array($actions)) {
$array['destinations'][$z]['destination_uuid'] = $row['destination_uuid'];
$array['destinations'][$z]['destination_actions'] = json_encode($actions);
$z++;
}
//process a chunk of the array
if ($row_id === 1000) {
//save to the data
if (is_array($array)) {
//add temporary permissions
$p = new permissions;
$p->add('destination_edit', 'temp');
//create the database object and save the data
$database = new database;
$database->app_name = 'destinations';
$database->app_uuid = '5ec89622-b19c-3559-64f0-afde802ab139';
$database->save($array, false);
unset($array);
//remove the temporary permissions
$p->delete('destination_edit', 'temp');
}
//set the row id back to 0
$row_id = 0;
}
//increment the number
$row_id++;
//unset actions
unset($actions);
}
if (is_array($array)) {
//add temporary permissions
$p = new permissions;
$p->add('destination_edit', 'temp');
//create the database object and save the data
$database = new database;
$database->app_name = 'destinations';
$database->app_uuid = '5ec89622-b19c-3559-64f0-afde802ab139';
$database->save($array, false);
unset($array);
//remove the temporary permissions
$p->delete('destination_edit', 'temp');
}
}
unset($sql, $num_rows);
}
?>