function prepare_for_generateconfig() { # This contains the last 2 digits of y0000000000xx.cfg, for each model. $model_suffixes = array('T28' => '00', 'T26' => '04', 'T22' => '05', 'T20' => '07'); //Yealink likes lower case letters in its mac address $this->mac = strtolower($this->mac); $this->config_file_replacements['$suffix'] = $model_suffixes[$this->model]; parent::prepare_for_generateconfig(); //Setup password if not set if (!isset($this->settings['adminpw']) or empty($this->settings['adminpw'])) { $this->settings['adminpw'] = substr(strrev(md5(filemtime(__FILE__) . date("j"))), 0, 8); } //Set softkeys or defaults if (isset($this->settings['loops']['softkey'])) { foreach ($this->settings['loops']['softkey'] as $key => $data) { //HIstory, Dir, DND, and Menu if ($this->settings['loops']['softkey'][$key]['type'] == '0') { unset($this->settings['loops']['softkey'][$key]); } } } else { $this->settings['loops']['softkey'][1]['type'] = 28; $this->settings['loops']['softkey'][1]['label'] = "History"; $this->settings['loops']['softkey'][2]['type'] = 22; $this->settings['loops']['softkey'][2]['label'] = "Directory"; $this->settings['loops']['softkey'][3]['type'] = 5; $this->settings['loops']['softkey'][3]['label'] = "DND"; $this->settings['loops']['softkey'][4]['type'] = 30; $this->settings['loops']['softkey'][4]['label'] = "Menu"; } if (isset($this->settings['loops']['remotephonebook'])) { foreach ($this->settings['loops']['remotephonebook'] as $key => $data) { if ($this->settings['loops']['remotephonebook'][$key]['url'] == '') { unset($this->settings['loops']['remotephonebook'][$key]); } } } //Set line key defaults $s = $this->max_lines; for ($i = 1; $i <= $s; $i++) { if (!isset($this->settings['loops']['linekey'][$i])) { $this->settings['loops']['linekey'][$i] = array("mode" => "blf", "type" => 15, "line" => 0); } elseif ($this->settings['loops']['linekey'][$i]['type'] == '16') { $this->settings['loops']['linekey'][$i]['line'] = $this->settings['loops']['linekey'][$i]['line'] != '0' ? $this->settings['loops']['linekey'][$i]['line'] : $this->settings['loops']['linekey'][$i]['line']; $this->settings['loops']['linekey'][$i]['pickup_value'] = $this->settings['call_pickup']; } } if (isset($this->settings['loops']['sdext38'])) { foreach ($this->settings['loops']['sdext38'] as $key => $data) { if ($this->settings['loops']['sdext38'][$key]['type'] == '16') { $this->settings['loops']['sdext38'][$key]['pickup_value'] = $this->settings['call_pickup']; } elseif ($this->settings['loops']['sdext38'][$key]['type'] == '0') { unset($this->settings['loops']['sdext38'][$key]); } else { $this->settings['loops']['sdext38'][$key]['pickup_value'] = '**'; } } } if (isset($this->settings['loops']['memkey'])) { foreach ($this->settings['loops']['memkey'] as $key => $data) { if ($this->settings['loops']['memkey'][$key]['type'] == '16') { $this->settings['loops']['memkey'][$key]['pickup_value'] = $this->settings['call_pickup']; } elseif ($this->settings['loops']['memkey'][$key]['type'] == '0') { unset($this->settings['loops']['memkey'][$key]); } else { $this->settings['loops']['memkey'][$key]['pickup_value'] = '**'; } } } if (isset($this->settings['loops']['memkey2'])) { foreach ($this->settings['loops']['memkey2'] as $key => $data) { if ($this->settings['loops']['memkey2'][$key]['type'] == '16') { $this->settings['loops']['memkey2'][$key]['pickup_value'] = $this->settings['call_pickup']; } elseif ($this->settings['loops']['memkey2'][$key]['type'] == '0') { unset($this->settings['loops']['memkey2'][$key]); } else { $this->settings['loops']['memkey2'][$key]['pickup_value'] = '**'; } } } }
function prepare_for_generateconfig() { $this->settings['call_pickup'] = isset($this->settings['call_pickup']) ? $this->settings['call_pickup'] : '*8'; # This contains the last 2 digits of y0000000000xx.cfg, for each model. $model_suffixes = array('T46G' => '28', 'T41P' => '41', 'T42G' => '41', 'T40P' => '54', 'T48G' => '35', 'VP-T49G' => '51'); //Yealink likes lower case letters in its mac address $this->mac = strtolower($this->mac); $this->config_file_replacements['$suffix'] = $model_suffixes[$this->model]; parent::prepare_for_generateconfig(); if (isset($this->settings['loops']['linekey'])) { foreach ($this->settings['loops']['linekey'] as $key => $data) { if ($key >= 1 && $key <= 6) { $this->settings['loops']['linekey'][$key] = $this->settings['loops']['linekey'][$key]; } } } //Set line key defaults $s = $this->max_lines; for ($i = 1; $i <= $s; $i++) { if (!isset($this->settings['loops']['linekey'][$i])) { $this->settings['loops']['linekey'][$i] = array("mode" => "blf", "type" => 15); } elseif ($this->settings['loops']['linekey'][$i]['type'] == '16') { $this->settings['loops']['linekey'][$i]['pickup_value'] = $this->settings['call_pickup']; $this->settings['loops']['linekey'][$i]['line'] = $this->settings['loops']['linekey'][$i]['line'] != '0' ? $this->settings['loops']['linekey'][$i]['line'] - 1 : $this->settings['loops']['linekey'][$i]['line']; } } if (isset($this->settings['loops']['softkey'])) { foreach ($this->settings['loops']['softkey'] as $key => $data) { if ($this->settings['loops']['softkey'][$key]['type'] == '0') { unset($this->settings['loops']['softkey'][$key]); } } } else { $this->settings['loops']['softkey'][1]['type'] = 28; $this->settings['loops']['softkey'][2]['type'] = 29; $this->settings['loops']['softkey'][3]['type'] = 5; $this->settings['loops']['softkey'][4]['type'] = 30; } if (isset($this->settings['loops']['remotephonebook'])) { foreach ($this->settings['loops']['remotephonebook'] as $key => $data) { if ($this->settings['loops']['remotephonebook'][$key]['url'] == '') { unset($this->settings['loops']['remotephonebook'][$key]); } } } if (isset($this->settings['loops']['sdexp'])) { foreach ($this->settings['loops']['sdexp'] as $key => $data) { if ($this->settings['loops']['sdexp'][$key]['type'] == '16') { $this->settings['loops']['sdexp'][$key]['pickup_value'] = $this->settings['call_pickup'] . $this->settings['loops']['sdexp'][$key]['value']; } elseif ($this->settings['loops']['sdexp'][$key]['type'] == '0') { unset($this->settings['loops']['sdexp'][$key]); } else { $this->settings['loops']['sdexp'][$key]['pickup_value'] = '*8'; } } } if (isset($this->settings['loops']['memkey'])) { foreach ($this->settings['loops']['memkey'] as $key => $data) { if ($this->settings['loops']['memkey'][$key]['type'] == '16') { $this->settings['loops']['memkey'][$key]['pickup_value'] = $this->settings['call_pickup'] . $this->settings['loops']['memkey'][$key]['value']; } elseif ($this->settings['loops']['memkey'][$key]['type'] == '0') { unset($this->settings['loops']['memkey'][$key]); } else { $this->settings['loops']['memkey'][$key]['pickup_value'] = '*8'; } } } if (isset($this->settings['loops']['memkey2'])) { foreach ($this->settings['loops']['memkey2'] as $key => $data) { if ($this->settings['loops']['memkey2'][$key]['type'] == '16') { $this->settings['loops']['memkey2'][$key]['pickup_value'] = $this->settings['call_pickup'] . $this->settings['loops']['memkey2'][$key]['value']; } elseif ($this->settings['loops']['memkey2'][$key]['type'] == '0') { unset($this->settings['loops']['memkey2'][$key]); } else { $this->settings['loops']['memkey2'][$key]['pickup_value'] = '*8'; } } } }