diff --git a/conf/sccpgeneral.xml.v433 b/conf/sccpgeneral.xml.v433
index 4bfe55b..261de0c 100644
--- a/conf/sccpgeneral.xml.v433
+++ b/conf/sccpgeneral.xml.v433
@@ -1119,7 +1119,7 @@ and open the template in the editor. Base Version before all crash :-)
off
- Enable/Disable conferencing via meetme (on/off), make sure you have one of the meetme apps mentioned below activated in module.conf
+ Enable/Disable conferencing via meetme (on/off), make sure you have one of the meetme apps mentioned below is activated in module.conf
-
@@ -1534,7 +1534,7 @@ and open the template in the editor. Base Version before all crash :-)
-
conf_play_general_announce
-
+
on
@@ -1542,7 +1542,7 @@ and open the template in the editor. Base Version before all crash :-)
-
conf_play_part_announce
-
+
on
diff --git a/sccpManTraits/ajaxHelper.php b/sccpManTraits/ajaxHelper.php
index 33e2620..2e2fdc3 100644
--- a/sccpManTraits/ajaxHelper.php
+++ b/sccpManTraits/ajaxHelper.php
@@ -299,61 +299,67 @@ trait ajaxHelper {
return $result;
break;
case 'getPhoneGrid':
+ $dbDevices = array();
$cmd_type = !empty($request['type']) ? $request['type'] : '';
- $result = $this->dbinterface->HWextension_db_SccpTableData('SccpDevice', array('type' => $cmd_type));
+ // Find all devices defined in the database
+ $dbDevices = $this->dbinterface->HWextension_db_SccpTableData('SccpDevice', array('type' => $cmd_type));
+ // Return if only interested in SIP devices
if ($cmd_type == 'cisco-sip') {
- return $result;
+ return $dbDevices; //this may be empty
}
- $staus = $this->aminterface->sccp_get_active_device();
- if (empty($result)) {
- $result = array();
- } else {
- foreach ($result as &$dev_id) {
- $id_name = $dev_id['name'];
- if (!empty($staus[$id_name])) {
- $dev_id['description'] = $staus[$id_name]['descr'];
- $dev_id['status'] = $staus[$id_name]['status'];
- $dev_id['address'] = $staus[$id_name]['address'];
- $dev_id['new_hw'] = 'N';
- $staus[$id_name]['news'] = 'N';
- } else {
- $dev_id['description'] = '- -';
- $dev_id['status'] = 'not connected';
- $dev_id['address'] = '- -';
- }
+ // Find all devices currently connected
+ $activeDevices = $this->aminterface->sccp_get_active_device();
+
+ foreach ($dbDevices as &$dev_id) {
+ $id_name = $dev_id['name'];
+ if (!empty($activeDevices[$id_name])) {
+ // Device is in db and is connected
+ $dev_id['description'] = $activeDevices[$id_name]['descr'];
+ $dev_id['status'] = $activeDevices[$id_name]['status'];
+ $dev_id['address'] = $activeDevices[$id_name]['address'];
+ $dev_id['new_hw'] = 'N';
+ // No further action required on this active device
+ unset($activeDevices[$id_name]);
+ } else {
+ // Device is in db but not connected
+ $dev_id['description'] = '- -';
+ $dev_id['status'] = 'not connected';
+ $dev_id['address'] = '- -';
}
}
- if (!empty($staus)) {
- foreach ($staus as $dev_ids) {
+
+ if (!empty($activeDevices)) {
+ // Have a device that is connected but is not currently in the database
+ // This device must have been configured by sccp.conf
+ // Pass parameters to addDevice so that can be added to db.
+ foreach ($activeDevices as $dev_ids) {
$id_name = $dev_ids['name'];
- if (empty($dev_ids['news'])) {
- $dev_data = $this->aminterface->sccp_getdevice_info($id_name);
- if (!empty($dev_data['SCCP_Vendor']['model_id'])) {
- $dev_addon = $dev_data['SCCP_Vendor']['model_addon'];
- if (empty($dev_addon)) {
- $dev_addon = null;
- }
- $dev_schema = $this->getSccpModelInformation('byciscoid', false, "all", array('model' => $dev_data['SCCP_Vendor']['model_id']));
- if (empty($dev_schema)) {
- $dev_schema[0]['model'] = "ERROR in Model Schema";
- }
- $result[] = array(
- 'name' => $id_name,
- 'mac' => $id_name,
- 'button' => '---',
- 'type' => $dev_schema[0]['model'],
- 'new_hw' => 'Y',
- 'description' => '*NEW* ' . $dev_ids['descr'],
- 'status' => '*NEW* ' . $dev_ids['status'],
- 'address' => $dev_ids['address'],
- 'addon' => $dev_addon
- );
+ $dev_data = $this->aminterface->sccp_getdevice_info($id_name);
+ if (!empty($dev_data['SCCP_Vendor']['model_id'])) {
+ $dev_addon = $dev_data['SCCP_Vendor']['model_addon'];
+ if (empty($dev_addon)) {
+ $dev_addon = null;
}
+ $dev_schema = $this->getSccpModelInformation('byciscoid', false, "all", array('model' => $dev_data['SCCP_Vendor']['model_id']));
+ if (empty($dev_schema)) {
+ $dev_schema[0]['model'] = "ERROR in Model Schema";
+ }
+ $dbDevices[] = array(
+ 'name' => $id_name,
+ 'mac' => $id_name,
+ 'button' => '---',
+ 'type' => $dev_schema[0]['model'],
+ 'new_hw' => 'Y',
+ 'description' => '*NEW* ' . $dev_ids['descr'],
+ 'status' => '*NEW* ' . $dev_ids['status'],
+ 'address' => $dev_ids['address'],
+ 'addon' => $dev_addon
+ );
}
}
}
- return $result;
+ return $dbDevices;
break;
case 'getDialTemplate':
// ------------------------------- Old device support - In the development---
diff --git a/views/form.adddevice.php b/views/form.adddevice.php
index 47f046d..f220a6e 100644
--- a/views/form.adddevice.php
+++ b/views/form.adddevice.php
@@ -4,7 +4,7 @@
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
-$def_val = null;
+$def_val = array();
$dev_id = null;
$dev_new = null;
$device_warning= null;
@@ -15,7 +15,18 @@ $def_val['devlang'] = array("keyword" => 'devlang', "data" => $this->sccpvalues
$def_val['directed_pickup_context'] = array("keyword" => 'directed_pickup_context', "data" => $this->sccpvalues['directed_pickup_context']['data'], "seq" => "99");
if (!empty($_REQUEST['new_id'])) {
+ // Adding device that is connected but not in database
$dev_id = $_REQUEST['new_id'];
+
+ // Get device defaults from db
+ $sccpDeviceDesc = $this->dbinterface->HWextension_db_SccpTableData('get_columns_sccpdevice');
+
+ foreach ($sccpDeviceDesc as $data) {
+ $key = (string) $data['Field'];
+ $def_val[$key] = array("keyword" => $key, "data" => $data['Default'], "seq" => "99");
+ }
+
+ // Overwrite some specific defaults based on $_REQUEST
$val = str_replace(array('SEP','ATA','VG'), '', $dev_id);
$val = implode('.', sscanf($val, '%4s%4s%4s')); // Convert to Cisco display Format
$def_val['mac'] = array("keyword" => 'mac', "data" => $val, "seq" => "99");
@@ -24,13 +35,17 @@ if (!empty($_REQUEST['new_id'])) {
if (!empty($_REQUEST['addon'])) {
$def_val['addon'] = array("keyword" => 'type', "data" => $_REQUEST['addon'], "seq" => "99");
}
- // TODO Default values should be used to populate this device
- // Currently these are read from sccpgeneral.xml
- // Need to get these from the db as defaults may have changed.
}
+if (empty($_REQUEST['id'])) {
+ // Adding new device to database
+ $sccpDeviceDesc = $this->dbinterface->HWextension_db_SccpTableData('get_columns_sccpdevice');
-// Editing an existing Device
-if (!empty($_REQUEST['id'])) {
+ foreach ($sccpDeviceDesc as $data) {
+ $key = (string) $data['Field'];
+ $def_val[$key] = array("keyword" => $key, "data" => $data['Default'], "seq" => "99");
+ }
+} else {
+ // Editing an existing Device
$dev_id = $_REQUEST['id'];
$dev_new = $dev_id;
$db_res = $this->dbinterface->HWextension_db_SccpTableData('get_sccpdevice_byid', array("id" => $dev_id));
@@ -68,8 +83,9 @@ if (!empty($_REQUEST['id'])) {
// $key = $key . '_mask';
// $val = after('/', $val);
// break;
+ default:
+ $def_val[$key] = array("keyword" => $key, "data" => $val, "seq" => "99");
}
- $def_val[$key] = array("keyword" => $key, "data" => $val, "seq" => "99");
}
}