Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions endpoint/gigaset/base.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?PHP

/**
* Gigaset Base File
*
* @author Matthias Binder
* @license MPL / GPLv2 / LGPL
* @package Provisioner
*/
abstract class endpoint_gigaset_base extends endpoint_base {

public $brand_name = 'gigaset';
protected $use_system_dst = FALSE;

function reboot() {
if (($this->engine == "asterisk") AND ($this->system == "unix")) {
exec($this->engine_location . " -rx 'sip notify reboot-gigaset " . $this->settings['line'][0]['username'] . "'");
exec($this->engine_location . " -rx 'pjsip send notify reboot-gigaset endpoint " . $this->settings['line'][0]['username'] . "'");
}
}

function prepare_for_generateconfig() {
$this->mac = strtoupper($this->mac);
parent::prepare_for_generateconfig();
preg_match('/.*(-|\+)(\d*):(\d*)/i', $this->timezone['timezone'], $matches);
switch ($matches[3]) {
case '30':
$point = '.5';
break;
default:
$point = '';
break;
}
$this->timezone['timezone'] = $matches[1] . $matches[2] . $point;
}

}
23 changes: 23 additions & 0 deletions endpoint/gigaset/brand_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"data": {
"brands": {
"name": "Gigaset",
"brand_id": "23",
"directory": "gigaset",
"package": "gigaset.tgz",
"md5sum": "9ba016be1845391113f6ff9596249630",
"last_modified": 1525377662,
"family_list": [
{
"id": "1",
"name": "Gigaset N5X Models: [N510 IP PRO]",
"directory": "n5x",
"description": "Make more configuration settings available from UI",
"changelog": "",
"last_modified": null
}
],
"changelog": "PACKAGER: "
}
}
}
288 changes: 288 additions & 0 deletions endpoint/gigaset/n5x/$mac.xml

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions endpoint/gigaset/n5x/family_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"data":{
"name":"Gigaset N5X Models: [N510 IP PRO]",
"id":"1",
"directory":"n5x",
"firmware_ver":"",
"firmware_pkg":"NULL",
"firmware_md5sum":"",
"description":"Make more settings available in user interface",
"configuration_files":"$mac.xml",
"changelog":"",
"provisioning_types": [
"tftp",
"http"
],
"model_list":[
{
"model":"N510 IP PRO",
"lines":"6",
"id":"1",
"template_data":[
"n510.json",
"template_data.json"

]
}
]
}
}
47 changes: 47 additions & 0 deletions endpoint/gigaset/n5x/n510.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"template_data":{
"category":[
{
"name":"N510 IP Pro specific Settings",
"subcategory":[
{
"name":"N510 IP Pro specific",
"item":[
{
"type":"break"
},
{
"variable":"$firmware",
"default_value":"",
"description":"Firmware Version",
"type":"list",
"data":[
{
"text":"No Firmware Update",
"value":""
}
]
},
{
"type":"break"
},
{
"type":"break"
},
{
"type":"break"
},
{
"type":"break"
},
{
"type":"break"
}
]
}
]
}

]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,24 @@
* @license MPL / GPLv2 / LGPL
* @package Provisioner
*/
class endpoint_yealinkv70_vPhone_phone extends endpoint_yealinkv70_base {
class endpoint_gigaset_n5x_phone extends endpoint_gigaset_base {

public $family_line = 'vPhone';
public $family_line = 'n5x';
protected $use_system_dst = TRUE;

function parse_lines_hook($line_data, $line_total) {
$this->settings['call_pickup'] = isset($this->settings['call_pickup']) ? $this->settings['call_pickup'] : '**';
$line_data['line_active'] = 1;
$line_data['line_m1'] = $line_data['line'];
$line_data['voicemail_number'] = '*97';
$line_data['missed_call_log'] = isset($this->settings['missed_call_log']) ? $this->settings['missed_call_log'] : 0;
$line_data['custom_ringtone'] = isset($this->settings['custom_ringtone']) ? $this->settings['custom_ringtone'] : 'Ring1.wav';
$line_data['sip_server_override'] = isset($this->settings['sip_server_override']) ? $this->settings['sip_server_override'] : '{$server_host}';
$line_data['manual_use_outbound_proxy'] = isset($this->settings['manual_use_outbound_proxy']) ? $this->settings['manual_use_outbound_proxy'] : 0;
$line_data['manual_outbound_proxy_server'] = isset($this->settings['manual_outbound_proxy_server']) ? $this->settings['manual_outbound_proxy_server'] : '{$server_host}';
$line_data['missed_call_log'] = isset($this->settings['missed_call_log']) ? $this->settings['missed_call_log'] : 1;
$line_data['custom_ringtone'] = isset($this->settings['custom_ringtone']) ? $this->settings['custom_ringtone'] : 'Ring1.wav';
$line_data['sip_server_override'] = isset($this->settings['sip_server_override']) ? $this->settings['sip_server_override'] : '{$server_host}';
$line_data['manual_use_outbound_proxy'] = isset($this->settings['manual_use_outbound_proxy']) ? $this->settings['manual_use_outbound_proxy'] : 0;
$line_data['manual_outbound_proxy_server'] = isset($this->settings['manual_outbound_proxy_server']) ? $this->settings['manual_outbound_proxy_server'] : '{$server_host}';
$line_data['pickup_value'] = isset($this->settings['pickup_value']) ? $this->settings['pickup_value'] : $this->settings['call_pickup'];


if (isset($line_data['transport'])) {
if (isset($line_data['transport'])) {
switch ($line_data['transport']) {
case "UDP":
$line_data['transport'] = 0;
Expand All @@ -49,8 +50,10 @@ function parse_lines_hook($line_data, $line_total) {
}

function prepare_for_generateconfig() {
$this->settings['call_pickup'] = isset($this->settings['call_pickup']) ? $this->settings['call_pickup'] : '**';
# This contains the last 2 digits of y0000000000xx.cfg, for each model.
$model_suffixes = array('VP530' => '23', 'VP540' => '12');
# $model_suffixes = array('T46G' => '28', 'T41P' => '41', 'T42G' => '41');
$model_suffixes = array('T41P' => '36', 'T42G' => '29', 'T46G' => '28', 'T48G' => '35', 'T41S' => '68', 'T42S' => '67', 'T46S' => '66', 'T48S' => '65');
//Yealink likes lower case letters in its mac address
$this->mac = strtolower($this->mac);
$this->config_file_replacements['$suffix'] = $model_suffixes[$this->model];
Expand All @@ -59,9 +62,11 @@ function 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];
}
if ($this->settings['loops']['linekey'][$key]['type'] == '0') {
unset($this->settings['loops']['linekey'][$key]);
} elseif (($key >= 1) && ($key <= 6)) {
$this->settings['loops']['linekey'][$key] = $this->settings['loops']['linekey'][$key];
}
}
}

Expand All @@ -71,9 +76,11 @@ function prepare_for_generateconfig() {
if (!isset($this->settings['loops']['linekey'][$i])) {
$this->settings['loops']['linekey'][$i] = array(
"mode" => "blf",
"type" => 15
"type" => 15,
"line" => 1
);
} 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'];
}
}
Expand All @@ -86,7 +93,7 @@ function prepare_for_generateconfig() {
}
} else {
$this->settings['loops']['softkey'][1]['type'] = 28;
$this->settings['loops']['softkey'][2]['type'] = 29;
$this->settings['loops']['softkey'][2]['type'] = 61;
$this->settings['loops']['softkey'][3]['type'] = 5;
$this->settings['loops']['softkey'][4]['type'] = 30;
}
Expand All @@ -99,23 +106,14 @@ function prepare_for_generateconfig() {
}
}

if (isset($this->settings['loops']['phonebook'])) {
foreach ($this->settings['loops']['phonebook'] as $key => $data) {
if ($this->settings['loops']['phonebook'][$key]['name'] == '') {
unset($this->settings['loops']['phonebook'][$key]);
}
}
}


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'] . $this->settings['loops']['sdext38'][$key]['value'];
} elseif ($this->settings['loops']['sdext38'][$key]['type'] == '0') {
unset($this->settings['loops']['sdext38'][$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']['sdext38'][$key]['pickup_value'] = '*8';
$this->settings['loops']['sdexp'][$key]['pickup_value'] = '**';
}
}
}
Expand All @@ -128,7 +126,7 @@ function prepare_for_generateconfig() {
} elseif ($this->settings['loops']['memkey'][$key]['type'] == '0') {
unset($this->settings['loops']['memkey'][$key]);
} else {
$this->settings['loops']['memkey'][$key]['pickup_value'] = '*8';
$this->settings['loops']['memkey'][$key]['pickup_value'] = '**';
}
}
}
Expand All @@ -140,7 +138,7 @@ function prepare_for_generateconfig() {
} elseif ($this->settings['loops']['memkey2'][$key]['type'] == '0') {
unset($this->settings['loops']['memkey2'][$key]);
} else {
$this->settings['loops']['memkey2'][$key]['pickup_value'] = '*8';
$this->settings['loops']['memkey2'][$key]['pickup_value'] = '**';
}
}
}
Expand Down
Loading