Update Grandstream provisioning (#2652)

* Update Grandstream provisioning

* Add Vtech

* Create app_config.php

fix typo

* Update app_config.php

remove newline at end as it can break php

* Update app_config.php

remove newline at end as it can break php

* Create app_config.php

remove newline at end.

* Update app_config.php

remove trailing newline

* Create device_edit.php

Add both http and https

* Create app_config.php

remove newline

* Add gxp16xx and fix typos
This commit is contained in:
Dean Montgomery
2017-06-08 16:21:47 -06:00
committed by FusionPBX
parent 137a282a1b
commit 66b849d946
39 changed files with 47198 additions and 2922 deletions
+43 -1
View File
@@ -1859,6 +1859,48 @@
$vendors[$y]['functions'][$z]['value'] = "ldap search";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$z++;
$vendors[$y]['functions'][$z]['uuid'] = "bbb4c3f9-7a2f-4670-a194-e7ab92c5c3d1";
$vendors[$y]['functions'][$z]['label'] = "label-conference";
$vendors[$y]['functions'][$z]['name'] = "conference";
$vendors[$y]['functions'][$z]['value'] = "conference";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$z++;
$vendors[$y]['functions'][$z]['uuid'] = "8434d505-36e0-422c-a1ab-8950e7849829";
$vendors[$y]['functions'][$z]['label'] = "label-menu";
$vendors[$y]['functions'][$z]['name'] = "menu";
$vendors[$y]['functions'][$z]['value'] = "menu";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$z++;
$vendors[$y]['functions'][$z]['uuid'] = "4792c9dd-9342-4894-9987-61c45e46e7d7";
$vendors[$y]['functions'][$z]['label'] = "label-monitored_call_park";
$vendors[$y]['functions'][$z]['name'] = "monitored_call_park";
$vendors[$y]['functions'][$z]['value'] = "monitored call park";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$z++;
$vendors[$y]['functions'][$z]['uuid'] = "27edbba6-14bb-48e8-8fa6-25f86bfc9ccc";
$vendors[$y]['functions'][$z]['label'] = "label-multicast_paging";
$vendors[$y]['functions'][$z]['name'] = "multicast_paging";
$vendors[$y]['functions'][$z]['value'] = "multicast paging";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$z++;
$vendors[$y]['functions'][$z]['uuid'] = "d28bc679-b984-49a7-963f-7e5d9fc4dbcb";
$vendors[$y]['functions'][$z]['label'] = "label-record";
$vendors[$y]['functions'][$z]['name'] = "record";
$vendors[$y]['functions'][$z]['value'] = "record";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$z++;
$vendors[$y]['functions'][$z]['uuid'] = "f99f55b8-113e-4fbb-aed1-84af66f5320c";
$vendors[$y]['functions'][$z]['label'] = "label-none";
$vendors[$y]['functions'][$z]['name'] = "none";
$vendors[$y]['functions'][$z]['value'] = "none";
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
$y++;
$vendors[$y]['uuid'] = "03931359-917e-455b-b4fc-f875c530b79c";
@@ -2243,4 +2285,4 @@
$vendors[$y]['functions'][$z]['groups'][] = "superadmin";
$vendors[$y]['functions'][$z]['groups'][] = "admin";
?>
?>
+34
View File
@@ -1463,6 +1463,40 @@ $text['label-lcr']['ru-ru'] = "LCR";
$text['label-lcr']['sv-se'] = "LCR";
$text['label-lcr']['uk-ua'] = "";
$text['label-monitored_call_park']['en-us'] = "Monitored Call Park";
$text['label-monitored_call_park']['ar-eg'] = "";
$text['label-monitored_call_park']['de-at'] = "Monitored Call Park";
$text['label-monitored_call_park']['de-de'] = "Monitored Call Park";
$text['label-monitored_call_park']['es-cl'] = "";
$text['label-monitored_call_park']['fr-fr'] = "";
$text['label-monitored_call_park']['he-il'] = "";
$text['label-monitored_call_park']['it-it'] = "";
$text['label-monitored_call_park']['nl-nl'] = "";
$text['label-monitored_call_park']['pl-pl'] = "";
$text['label-monitored_call_park']['pt-br'] = "";
$text['label-monitored_call_park']['pt-pt'] = "";
$text['label-monitored_call_park']['ro-ro'] = "";
$text['label-monitored_call_park']['ru-ru'] = "Monitored Call Park";
$text['label-monitored_call_park']['sv-se'] = "Monitored Call Park";
$text['label-monitored_call_park']['uk-ua'] = "";
$text['label-multicast_paging']['en-us'] = "Multicast Paging";
$text['label-multicast_paging']['ar-eg'] = "";
$text['label-multicast_paging']['de-at'] = "Multicast Paging";
$text['label-multicast_paging']['de-de'] = "Multicast Paging";
$text['label-multicast_paging']['es-cl'] = "";
$text['label-multicast_paging']['fr-fr'] = "";
$text['label-multicast_paging']['he-il'] = "";
$text['label-multicast_paging']['it-it'] = "";
$text['label-multicast_paging']['nl-nl'] = "";
$text['label-multicast_paging']['pl-pl'] = "";
$text['label-multicast_paging']['pt-br'] = "";
$text['label-multicast_paging']['pt-pt'] = "";
$text['label-multicast_paging']['ro-ro'] = "";
$text['label-multicast_paging']['ru-ru'] = "Multicast Paging";
$text['label-multicast_paging']['sv-se'] = "Multicast Paging";
$text['label-multicast_paging']['uk-ua'] = "";
$text['label-page']['en-us'] = "Page";
$text['label-page']['ar-eg'] = "";
$text['label-page']['de-at'] = "Page";
+3 -1
View File
@@ -349,6 +349,7 @@
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$device_mac_address = $row["device_mac_address"];
$device_provisioned_ip = $row["device_provisioned_ip"];
$domain_uuid = $row["domain_uuid"];
$device_label = $row["device_label"];
//$device_mac_address = substr($device_mac_address, 0,2).'-'.substr($device_mac_address, 2,2).'-'.substr($device_mac_address, 4,2).'-'.substr($device_mac_address, 6,2).'-'.substr($device_mac_address, 8,2).'-'.substr($device_mac_address, 10,2);
@@ -562,7 +563,7 @@
if ($_SERVER['HTTPS'] == 'on') { $_SERVER['HTTP_PROTOCOL'] = 'https'; }
if ($_SERVER['SERVER_PORT'] == '443') { $_SERVER['HTTP_PROTOCOL'] = 'https'; }
}
echo " window.location = '".$_SERVER['HTTP_PROTOCOL']."://".$domain_name.PROJECT_PATH."/app/provision?mac=".$device_mac_address."&file=' + d + '&content_type=application/octet-stream';\n";
echo " window.location = '".$_SERVER['HTTP_PROTOCOL']."://".$domain_name.PROJECT_PATH."/app/provision/index.php?mac=".$device_mac_address."&file=' + d + '&content_type=application/octet-stream';\n";
echo " }\n";
echo "\n";
@@ -649,6 +650,7 @@
echo $device_mac_address;
}
echo " <div style='display: none;' id='duplicate_mac_response'></div>\n";
echo " ".$device_provisioned_ip."(<a href='http://".$device_provisioned_ip."' target='_blank'>http</a>|<a href='https://".$device_provisioned_ip."' target='_blank'>https</a>)\n";
echo "</td>\n";
echo "</tr>\n";
+1 -1
View File
@@ -256,7 +256,7 @@
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_vendor']."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_template']."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$text['label-'.$row['device_enabled']]."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_provisioned_date']." - ".$row['device_provisioned_method']." - ".$row['device_provisioned_ip']."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_provisioned_date']." - ".$row['device_provisioned_method']." - <a href='http://".$row['device_provisioned_ip']."' target='_blank'>".$row['device_provisioned_ip']."</a>&nbsp;</td>\n";
echo " <td valign='top' class='row_stylebg'>".$row['device_description']."&nbsp;</td>\n";
echo " <td class='list_control_icons'>";
if (permission_exists('device_edit')) {
+265 -1
View File
@@ -442,5 +442,269 @@
$apps[$x]['default_settings'][$y]['default_setting_value'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "N-Way conferencing for devices supporting network conference uri";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "5f97afa2-b8ae-45fc-a47c-4131b6b4e1fd";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "contact_grandstream";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable Address Book for Grandstream based on users and groups assigned to contact.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "3a8841f3-e1c0-4eb1-abd3-068a3e3701a5";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_gxp_time_zone";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "PST8PDT";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "See provision profile for codes.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "bce5c360-ec90-468b-9bed-aa5ceabfe87d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_check_sip_user_id";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "GXV Android phones - fix auto-ring bug.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "4965e699-65a2-4309-b30c-6c6aae9c5e60";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_config_server_path";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "none";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "mydomain.com/provision to Fusionpbx provisioning. Phones will use firmware url if this is set to: none";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "eb4ad508-aab8-478c-a42c-71f02f5e9f3e";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_dns_mode_1";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "DNS Mode 0=A; 1=SRV; 2=NAPTR/SRV;";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "0d6fb5f8-6ec8-4495-b99a-fff6e7a053e8";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_dns_mode_2";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "DNS Mode 0=A; 1=SRV; 2=NAPTR/SRV;";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "1d1d4b7c-2cd2-474b-8cdf-8f5b8842a9e5";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_firmware_path";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mydomain.com/provision";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Grandstream firmware and provision.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "712daa4c-d657-4ed1-85f6-9134bef2969d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_global_contact_groups";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "contacts_elementary,contacts_facilities,contacts_other,contacts_secondary";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "List of contact groups that every phone will have access to. Namely building sites.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "daeec650-12ab-47b7-a079-d274beee66f5";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_lan_port_vlan";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Default VLAN for phone LAN port.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "a3adbb11-4e9f-4a56-86f8-0fefa5fb8c1d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_base_dn";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "dc=mydomain,dc=com";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Base DN";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "2d820643-b2ad-4824-946e-540d800ebd82";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_display_name";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "givenName sn title";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Which named attributes to display on device. Must be pulled in through gs_ldap_name_attr.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "108f9c23-d44b-41f0-b332-ef9d586ecb8d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_mail_attr";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mail";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Mail attribute returned to phone";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "a8acdbb0-98de-48d6-9d6d-1f7961a50a6b";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_mail_filter";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "(mail=%)";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Search filter for mail lookups";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "3f1fa270-7a73-41b0-8210-8a9e9295f658";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_name_attr";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "givenName sn title mail";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "The NAME attributes returned in the LDAP search result available to device";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "72b87ed4-588c-4706-a221-e15d5fcaa79d";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_name_filter";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "(cn=%)";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Search filter for name lookups";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "902d7bd7-4040-4082-a6ab-737f5f6e76a0";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_number_attr";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "telephoneNumber mobile homePhone";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Number attributes returned to the phone.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "7f123561-b35f-475b-b3c7-202df5be63b6";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_number_filter";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "(|(telephoneNumber=%)(homePhone=%)(moblie=%))";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Search filter for number lookups.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "33728232-dd89-4e30-8bc9-379891f2696b";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_password";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "super-secret";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Ldap bind user password.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "614745a2-2441-48f7-a62d-e0dc098c7db0";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_server";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mydomain.com";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Ldap server host name";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "c5d91dcd-cc74-4bc9-a3a8-e3b8ee5bd1a6";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_user_base";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "ou=users,dc=mydomain,dc=com";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Ldap base for users.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "35dfa15a-1bfb-43e1-ba91-79c78dc89f04";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_ldap_username";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "cn=pbxadmin,dc=mydomain,dc=com";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Ldap server bind username";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "66d886c4-2cbb-4b4d-8667-f68de7d998e6";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_nat_traversal_1";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "NAT Traversal Acct1. 0 - No, 1 - STUN, 2 - keep alive, 3 - UPnP, 4 - Auto, 5 - VPN";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "f7bf7fb8-5d2a-46a8-b218-32826c29fd53";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_phonebook_download_interval";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "720";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "0=disabled, 5-720 minutes";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "66c37aae-8381-460d-bac3-d08fea5d3217";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_phonebook_xml_server_path";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mydomain.com/provision/pb";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Grandstream Phonebook Server Path - NOTE template adds MAC on the end of this if contact_grandstream is enabled. This also requires nginx rewrite rules for phonebook.xml";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "00f51316-4405-4450-b619-12e0b2594e1a";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_qos_rtp";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "5";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 2 QoS 802.1p Priority Value for RTP media";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "4e1e89b8-f114-4580-944a-2537eebb0915";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_qos_sip";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "3";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Layer 2 QoS 802.1p Priority Value for SIP signaling";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "be807a0d-d939-484a-b34a-5605c28b7e11";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_sip_only_known_servers";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "GXV Android phones - fix auto-ring bug.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "40435232-cdc7-412a-8927-892f2bd44bda";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_stun_server";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "mydomain.com";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Bug in Grandstream where null stun_server defaults to sip server/port";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "6dbe4a02-33a3-4c1d-9145-0b8d6a5b8c81";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_validate_incoming_sip";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "GXV Android phones - fix auto-ring bug.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "0971caf6-679a-4442-a16f-e729f2f402d7";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "gs_wallpaper_url";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "https://mydomain.com/files/wallpaper.jpg";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Wallpaper Image JPEG 480x272 16-bit depth dithered";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "b20b6547-14a8-416b-a5b1-990524a1afac";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "vtech_vlan_wan_enable";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Enable vlan=1";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "cfa6d612-906d-414e-9e1f-639e2eaa493e";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "vtech_vlan_wan_id";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "1";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "VLAN ID";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "ee208229-d66c-46b6-9286-3cd4edda7628";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "provision";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "vtech_vlan_wan_priority";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "0";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "VLAN Priority";
?>
?>
+2 -2
View File
@@ -62,7 +62,7 @@
$domain_array = explode(":", $_SERVER["HTTP_HOST"]);
$domain_name = $domain_array[0];
$device = device_by_ext($db, $ext, $domain_name);
if(($device !== false)&&($device['device_vendor']=='escene')){
if(($device !== false)&&(($device['device_vendor']=='escene')||($device['device_vendor']=='grandstream'))){
$mac = $device['device_mac_address'];
}
}
@@ -81,7 +81,7 @@
$mac = substr($_SERVER['HTTP_USER_AGENT'],-14);
$mac = preg_replace("#[^a-fA-F0-9./]#", "", $mac);
}
//Grandstream: $_SERVER['HTTP_USER_AGENT'] = "Grandstream Model HW GXP2135 SW 1.0.7.97 DevId 000b828aa872"
//Grandstream: $_SERVER['HTTP_USER_AGENT'] = "Grandstream Model HW GXP2135 SW 1.0.7.97 DevId 000b828aa872"
if (substr($_SERVER['HTTP_USER_AGENT'],0,11) == "Grandstream") {
$mac = substr($_SERVER['HTTP_USER_AGENT'],-12);
$mac = preg_replace("#[^a-fA-F0-9./]#", "", $mac);
@@ -153,6 +153,9 @@ include "root.php";
case "escene":
$mac = strtolower($mac);
break;
case "grandstream":
$mac = strtolower($mac);
break;
default:
$mac = strtolower($mac);
$mac = substr($mac, 0,2).'-'.substr($mac, 2,2).'-'.substr($mac, 4,2).'-'.substr($mac, 6,2).'-'.substr($mac, 8,2).'-'.substr($mac, 10,2);
@@ -238,6 +241,185 @@ include "root.php";
}
}
private function contact_grandstream(&$contacts, &$line, $domain_uuid, $device_user_uuid){
// Get username for this.
$sql = "SELECT username FROM v_users WHERE user_uuid = '${device_user_uuid}' AND domain_uuid = '${domain_uuid}' LIMIT 1";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$my_username = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($prep_statement, $sql);
$my_username = $my_username[0]['username'];
// Global contact groups available to every phone if ['provision']['global_contact_groups']['text'] is set.
// Easier than assigning these common groups to every user.
// Check provision global_contact_groups and sanitize for sql.
$global_contact_groups['enabled']=false;
if ( preg_match('/[a-zA-Z0-9-_, ]/',$_SESSION['provision']['gs_global_contact_groups']['text'])){
$global_contact_groups['enabled']=true;
$gp=array();
$groups=explode(',',$_SESSION['provision']['gs_global_contact_groups']['text']);
foreach ($groups as $group){
$gp[] = trim($group);
}
$global_contact_groups['sql']="'".implode("','", $gp)."'";
}
// Get a list of groups the user has access to see.
$sql = "SELECT DISTINCT g.group_uuid, g.group_name, g.group_description ";
$sql .= "FROM v_groups g ";
$sql .= " INNER JOIN v_group_users gu ";
$sql .= " ON gu.group_uuid=g.group_uuid ";
$sql .= " INNER JOIN v_contact_groups cg ";
$sql .= " ON cg.group_uuid=g.group_uuid ";
$sql .= "WHERE gu.user_uuid = '$device_user_uuid' ";
if ( $global_contact_groups['enabled'] ){
$sql .= "UNION ";
$sql .= "SELECT g.group_uuid, g.group_name, g.group_description ";
$sql .= "FROM v_groups g ";
$sql .= "WHERE g.group_name IN( ".$global_contact_groups['sql'].") ";
}
$sql .= "ORDER BY group_description";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$user_groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($prep_statement, $sql);
$key=0;
foreach ($user_groups as &$row) {
$contacts[] = array("contact_type"=>"group", "group_name"=>$row['group_name'], "group_description"=>$row['group_description'], "id"=>++$key);
$groups[$row['group_uuid']] = $key;
$my_groups[] = '@'.$row['group_name']; // Used to show/hide
}
// Get a list of contacts that this user/phone has access based on assigned users and groups.
$sql = "SELECT c.contact_uuid, c.contact_name_given, c.contact_name_family, c.contact_title, c.contact_category, c.contact_role, c.contact_organization, u.user_uuid ";
$sql .= "FROM v_contacts c ";
$sql .= " LEFT JOIN v_users u ";
$sql .= " ON c.contact_uuid = u.contact_uuid ";
$sql .= "WHERE c.contact_uuid IN ("; // assigned groups
$sql .= " SELECT cg.contact_uuid";
$sql .= " FROM v_contact_groups cg ";
$sql .= " WHERE cg.group_uuid IN (";
$sql .= " SELECT gu.group_uuid ";
$sql .= " FROM v_group_users gu ";
$sql .= " WHERE gu.user_uuid = '$device_user_uuid' ";
$sql .= " AND gu.domain_uuid = '$domain_uuid' ";
if ( $global_contact_groups['enabled'] ){
$sql .= " UNION ";
$sql .= " SELECT g.group_uuid ";
$sql .= " FROM v_groups g ";
$sql .= " WHERE g.group_name IN( ".$global_contact_groups['sql'].") ";
}
$sql .= " )";
$sql .= " UNION "; // assigned users
$sql .= " SELECT cu.contact_uuid ";
$sql .= " FROM v_contact_users cu ";
$sql .= " WHERE cu.user_uuid = '$device_user_uuid' ";
$sql .= " AND cu.domain_uuid = '$domain_uuid' ";
$sql .= ")";
$sql .= "ORDER BY contact_name_given, contact_name_family";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$user_contacts = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($prep_statement, $sql);
$groupid=0;
foreach ($user_contacts as &$row) {
$last_extention = $row['extension'];
unset($contact);
// Grandsteam phonebook manager: First, Last, Department, Primary, (Work, Home, Mobile, Fax, Pager, Car... with number and account), email(s), Photo, Ringtone, Group(s)
// GXP21xx serries has First, Last, Company, Department, Job, Job TItle, 1Work ,1Home, 1Mobile, Accounts, Groups(1-many)
$contact = array();
$contact['contact_type'] = "contact";
$contact['contact_uuid'] = $row['contact_uuid'];
$contact['user_uuid'] = $row['user_uuid'];
$contact['contact_name_given'] = $row['contact_name_given']; //FirstName
$contact['contact_name_family'] = $row['contact_name_family']; // LastName
$contact['contact_title'] = $row['contact_title'];
$contact['contact_category'] = $row['contact_category']; // Department
$contact['contact_role'] = $row['contact_role']; // Job Title
$contact['contact_organization']= $row['contact_organization']; // Company
$contact['contact_work'] = $row['extension'];
//$contact['contact_account_index'] = $line['line_number']; // This was empty so disabled it.
// Look up groups for this contact
$sql = "SELECT g.group_description, g.group_uuid ";
$sql .= "FROM v_groups g ";
$sql .= " INNER JOIN v_contact_groups cg ";
$sql .= " ON cg.group_uuid=g.group_uuid ";
$sql .= "WHERE cg.contact_uuid = '".$row['contact_uuid']."' ";
$sql .= "AND cg.domain_uuid = '$domain_uuid'";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$user_groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($user_groups as $group ){
if ( ! empty($groups[$group['group_uuid']])){
$contact['groups'][] = $groups[$group['group_uuid']];
}
}
if ( empty($contact['groups']) && !empty($groups['Other'])){
$contact['groups'][] = $groups['Other'];
}
// Look up extention(s) for this contact.
if ( ! empty ($row['user_uuid']) ){
$sql = "SELECT e.extension, e.description ";
$sql .= "FROM v_extensions e ";
$sql .= " INNER JOIN v_extension_users eu ";
$sql .= " ON e.extension_uuid = eu.extension_uuid ";
$sql .= "WHERE eu.user_uuid = '".$row['user_uuid']."' ";
$sql .= "AND eu.domain_uuid = '$domain_uuid' ";
$sql .= "AND e.enabled = 'true' ";
$sql .= "AND e.directory_visible = 'true' "; # TODO: not right field but it works for our district.
$sql .= "AND e.directory_exten_visible = 'true' "; # TODO: not right field but it works for our district.
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$user_extentions = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($user_extentions as $ext ){
if ( preg_match ('/ (Cell|Mobile)/i', $ext['description'])){
$contact['contact_cell'] = $ext['extension'];
} elseif ( preg_match ("/ Home/i", $ext['description'])){
$contact['contact_home'] = $ext['extension'];
} else {
$contact['contact_work'] = $ext['extension'];
}
}
}
// Additional phone numbers for this contact.
$sql = "select phone_number, phone_label, phone_description from v_contact_phones ";
$sql .= "where contact_uuid='".$row['contact_uuid']."' ";
$sql .= "and domain_uuid='".$domain_uuid."' ";
$sql .= "and phone_type_voice = '1' ";
$sql .= "and phone_label in ('Home', 'Mobile', 'Work') ";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$user_phones = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($prep_statement, $sql);
foreach ($user_phones as $phone){
// Check permission in phone_description field for string :allow:username1:username2:@group1:@group2:
$show = true;
if ( preg_match ('/:allow:/i', $phone['phone_description'] )){
$show = false;
$allows = explode ( ':', $phone['phone_description'] );
foreach ( $allows as $allow ){
if ( in_array($allow, $my_groups) || preg_match('/^'.$my_username.'$/', $allow)){
$show = true;
break 1;
}
}
}
if ( $show && $phone['phone_label'] == "Home" ) {
$contact['contact_home'] = $phone['phone_number'];
} elseif ( $show && $phone['phone_label'] == "Mobile" ){
$contact['contact_cell'] = $phone['phone_number'];
} elseif ( $show && $phone['phone_label'] == "Work" ){
// Work phones are usually just extentions already assigned above.
if (empty($contact['contact_work'])){
$contact['contact_work'] = $phone['phone_number'];
}
}
}
// Only add to contact list if a phone number exists.
if(!empty($contact['contact_work']) || !empty($contact['contact_home']) || !empty($contact['contact_cell'])){
$contacts[] = &$contact;
}
}
}
public function render() {
//debug
@@ -387,10 +569,24 @@ include "root.php";
"yealink SIP-T22"=>"yealink/t22",
"yealink SIP-T26"=>"yealink/t26",
"Yealink SIP-T32"=>"yealink/t32",
"HW DP750"=>"grandstream/dp750",
"HW GXP1450"=>"grandstream/gxp1450",
"HW GXP1628"=>"grandstream/gxp16xx",
"HW GXP1610"=>"grandstream/gxp16xx",
"HW GXP1620"=>"grandstream/gxp16xx",
"HW GXP1625"=>"grandstream/gxp16xx",
"HW GXP1628"=>"grandstream/gxp16xx",
"HW GXP1630"=>"grandstream/gxp16xx",
"HW GXP2124"=>"grandstream/gxp2124",
"HW GXP2130"=>"grandstream/gxp2130",
"HW GXP2135"=>"grandstream/gxp2135",
"HW GXP2140"=>"grandstream/gxp2140",
"HW GXP2160"=>"grandstream/gxp2160",
"HW GXP2170"=>"grandstream/gxp2170",
"HW GXV3140"=>"grandstream/gxv3140",
"HW GXV3240"=>"grandstream/gxv3240",
"HW GXV3175"=>"grandstream/gxv3175",
"Vesa VCS754"=>"vtech/vcs754",
"Wget/1.11.3"=>"konftel/kt300ip"
);
@@ -624,6 +820,10 @@ include "root.php";
if ($_SESSION['provision']['contact_users']['boolean'] == "true") {
$this->contact_append($contacts, $line, $domain_uuid, $device_user_uuid, false);
}
// Grandstream get the contacts assigned to the user and groups and add to the contacts array
if ($_SESSION['provision']['contact_grandstream']['text'] == "true") {
$this->contact_grandstream($contacts, $line, $domain_uuid, $device_user_uuid);
}
}
//get the extensions and add them to the contacts array
@@ -888,6 +1088,18 @@ include "root.php";
$view->assign("password",$password);
$view->assign("template",$device_template);
// personal ldap password
global $laddr_salt;
if (isset($device_user_uuid)){
$sql = "SELECT contact_uuid FROM v_users WHERE user_uuid='".$device_user_uuid."'";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$c_uuid = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$view->assign("ldap_username","uid=".$c_uuid[0]['contact_uuid'].",".$_SESSION['provision']['gs_ldap_user_base']['text']);
$view->assign("ldap_password",md5($laddr_salt.$device_user_uuid));
}
//get the time zone
$time_zone_name = $_SESSION['domain']['time_zone']['name'];
if (strlen($time_zone_name) > 0) {
+80
View File
@@ -202,5 +202,85 @@
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"christmas_day":{"mday":"25","mon":"12"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "USA Holiday";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"new_years_day":{"mday":"1","mon":"1"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"family_day":{"wday":"2","mon":"2","mday":"8-14"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"victoria_day":{"wday":"2","mon":"5","mday":"18-24"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"canada_day":{"mday":"1","mon":"7"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"bc_day":{"wday":"2","mon":"8","mday":"1-7"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"thanksgiving_day":{"wday":"2","mon":"10","mday":"8-14"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"remembrance_day":{"mday":"11","mon":"11"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"christmas_day":{"mday":"25","mon":"12"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"boxing_day":{"mday":"26","mon":"12"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = '';
$apps[$x]['default_settings'][$y]['default_setting_category'] = 'time_conditions';
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = 'preset_canada';
$apps[$x]['default_settings'][$y]['default_setting_name'] = 'array';
$apps[$x]['default_settings'][$y]['default_setting_value'] = '{"labour_day":{"wday":"2","mon":"9","mday":"1-7"}}';
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = 'true';
$apps[$x]['default_settings'][$y]['default_setting_description'] = 'Canada Holiday';
?>