-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathRestore.php
More file actions
52 lines (50 loc) · 1.46 KB
/
Restore.php
File metadata and controls
52 lines (50 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
namespace FreePBX\modules\Callforward;
use FreePBX\modules\Backup as Base;
class Restore Extends Base\RestoreBase{
public function runRestore(){
$configs = $this->getConfigs();
global $astman;
$astman->database_deltree("CF");
$cf = $this->FreePBX->Callforward;
if(array_key_exists('data', $configs)) {
foreach($configs['data'] as $k => $v){
$cf->setMultipleNumberByExten($k,$v['numbers']);
$cf->setRingTimerByExtension($k,$v['ringtimer']);
}
}
$this->importFeatureCodes($configs['features']);
}
public function processLegacy($pdo, $data, $tables, $unknownTables){
$cf = $this->FreePBX->Callforward;
$astdb = $data['astdb'];
if (isset($astdb['CF'])) {
foreach($astdb['CF'] as $exten => $val){
$cf->setNumberByExtension($exten, $val, 'CF');
}
}
if (isset($astdb['CFU'])) {
foreach ($astdb['CFU'] as $exten => $val) {
$cf->setNumberByExtension($exten, $val, 'CFU');
}
}
if (isset($astdb['CFB'])) {
foreach ($astdb['CFB'] as $exten => $val) {
$cf->setNumberByExtension($exten, $val, 'CFB');
}
}
if(isset($astdb['AMPUSER'])){
foreach ($astdb['AMPUSER'] as $key => $value) {
if(!str_contains((string) $key, 'ringtimer')){
continue;
}
$parts = explode('/', (string) $key);
if($parts[1] !== 'ringtimer'){
continue;
}
$cf->setRingTimerByExtension($parts[0], $value);
}
}
$this->restoreLegacyFeatureCodes($pdo);
}
}