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 15:21:47 -07:00
committed by FusionPBX
parent 137a282a1b
commit 66b849d946
39 changed files with 47198 additions and 2922 deletions

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";
?>
?>

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";

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";

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')) {

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";
?>
?>

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);

View File

@@ -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) {

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';
?>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Mobile">
<phonenumber>{$contact.contact_cell}</phonenumber>
</Phone>
{/if}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,324 @@
<?xml version="1.0" encoding="UTF-8" ?>
<gs_provision version="1">
<config version="1">
<!-- ############################################################################################## -->
<!-- ### Configuration Template for Grandstream Wave #### -->
<!-- ############################################################################################## -->
<!-- ############################################################################# -->
<!-- # Account 1 Settings ## -->
<!-- ############################################################################# -->
<!-- ###################################################################### -->
<!-- # Account 1 General Settings ## -->
<!-- ###################################################################### -->
<!-- Account Active. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
{if isset($user_password_1)}
<P271>1</P271>
{else}
<P271>0</P271>
{/if}
<!-- Account Name -->
<P270>{$display_name_1}</P270>
<!-- SIP Server -->
<P47>{$server_address_1}</P47>
<!-- SIP User ID -->
<P35>{$user_id_1}</P35>
<!-- SIP Authentication ID -->
<P36>{$user_id_1}</P36>
<!-- SIP Authentication Password -->
<P34>{$user_password_1}</P34>
<!-- Voice Mail Access Number -->
<!--<P33>*97</P33> -->
<P33>*98</P33>
<!-- Name (Display Name, e.g., John Doe) -->
<P3>{$display_name_1}</P3>
<!-- Show Account Name Only. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
<P2380>0</P2380>
<!-- Tel URI. 0 - Disable, 1 - User=Phone, 2 - Enabled. Default value is 0 -->
<!-- Number: 0, 1, 2 -->
<P63>0</P63>
<!-- ###################################################################### -->
<!-- # Account 1 Network Settings ## -->
<!-- ###################################################################### -->
<!-- Outbound Proxy -->
<P48></P48>
<!-- Secondary Outbound Proxy -->
<P2333></P2333>
<!-- DNS Mode. 0 - A Record, 1 - SRV, 2 - NAPTR/SRV. Default value is 0 -->
<!-- Number: 0, 1, 2 -->
<P103>0</P103>
<!-- NAT Traversal. 0 - NAT No, 1 - STUN, 2 - Keep-alive, 3 - UPnP, 4 - Auto, 5 - VPN. Default value is 2 -->
<!-- Number: 0, 1, 2, 3, 4, 5 -->
<P52>2</P52>
<!-- Proxy-Require -->
<!-- <P197></P197> -->
<!-- Disable DialPlan. 0 - No Selection, 1 - Dial Page, 2 - Contact, 4 - Incoming Call History, 8 - Outgoing Call History, 16, MPK & Click2Dial. -->
<!-- If need to check multiple selections, add the specific values for each selections together. Default value is 0 -->
<!-- Number: 0-31 -->
<!--<P2382>0</P2382> -->
<!-- Dial Plan. Default value is { x+ | \+x+ | *x+ | *xx*x+ } -->
<!-- <P290>{ x+ | \+x+ | *x+ | *xx*x+ }</P290> -->
<!-- Use # as Dial Key. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<!-- <P72>1</P72> -->
<!-- ###################################################################### -->
<!-- # Account 1 SIP Settings ## -->
<!-- ###################################################################### -->
<!-- SIP Registration. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<!-- <P31>1</P31> -->
<!-- Unregister Before New Registration. 0 - No, 1 - All, 2 - Instance . Default value is 2 -->
<!-- Number: 0, 1, 2 -->
<!-- <P81>2</P81> -->
<!-- Register Expiration (m). In minutes. Default value is 60 -->
<!-- Number: 0 - 64800 -->
<!-- <P32>3</P32> -->
<!-- Re-register before Expiration (s). Default Value is 0 -->
<!-- Number : 0 -->
<!-- <P2330>0</P2330> -->
<!-- Registration Retry Wait Time (s). In seconds. Default value is 20 -->
<!-- Number: 1 - 3600 -->
<!-- <P138>20</P138> -->
<!-- Local SIP Port. Default value is 5060 -->
<!-- Number: 5 - 65535 -->
<P40>5060</P40>
<!-- SIP Transport -->
<!-- 0 - UDP , 1 - TCP, 2 - TLS. Default value is 0 -->
<!-- Number: 0, 1, 2 -->
<P130>0</P130>
<!-- ###################################################################### -->
<!-- # Account 1 Codec Settings ## -->
<!-- ###################################################################### -->
<!-- DTMF: in audio. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
<P2301>0</P2301>
<!-- DTMF: via RFC2833. 0 - No, 1 - Yes. Default value is 1 -->
<!-- Number: 0, 1 -->
<P2302>1</P2302>
<!-- DTMF: via SIP INFO. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
<P2303>0</P2303>
<!-- Preferred Vocoder -->
<!-- First codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 0 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P57>9</P57>
<!-- Second codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 8 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P58>0</P58>
<!-- Third codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 9 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P59>8</P59>
<!-- Forth codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 9 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P60>98</P60>
<!-- Fifth codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 9 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P61>2</P61>
<!-- Sixth codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 9 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P62>9</P62>
<!-- Seventh codec. 0 - PCMU, 8 - PCMA, 9 - G.722, 2 - G.726-32, 18 - G729A/B, 98 - iLBC, 123 - Opus. Default value is 9 -->
<!-- Number: 0, 8, 9, 2, 18, 98, 123 -->
<P46>9</P46>
<!-- SRTP Mode. Default value is 0. 0 - Disable, 1 - Enable but not forced, 2 - Enable and forced. -->
<!-- Number: 0, 1, 2 -->
<!-- <P183>0</P183> -->
<!-- Enable SRTP Key Lifetime. 0 - No, 1 - Yes. -->
<!-- Number: 0,1 -->
<!-- <P2363>0</P2363> -->
<!-- ###################################################################### -->
<!-- # Maintenance - Contacts ## -->
<!-- ###################################################################### -->
<!-- Sort Phonebook by. 0 - Last Name, 1 - First Name. Default Value is 0 -->
<!-- Number : 0, 1 -->
<P2914>1</P2914>
<!-- Phonebook Key Function. 0 - Default, 1 - LDAP Search, 2 - Local Phonebook, 3 - Local Group, 4 - Broadsoft Phonebook. Default value is 0. -->
<!-- Number : 0, 1, 2, 3, 4 -->
<P1526>2</P1526>
<!-- Emergency Call Numbers. Default Value is 911 -->
<!-- String -->
<!-- Example 911,921,931,941 -->
<P25675>911</P25675>
<!-- Clear The Old List. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1435>1</P1435>
<!-- Replace Duplicate Items. 0 - No, 1 - Yes. Default value is 0 -->
<!-- Number: 0, 1 -->
<P1436>0</P1436>
<!-- Download Mode. 0 - OFF, 1 - TFTP, 2 - HTTP. Default value is 0 -->
<!-- Number: 0, 1, 2 -->
<P330>2</P330>
<!-- File Encoding. GBK - GBK, UTF-8 - UTF-8, UTF-16 - UTF-16, UTF-32 - UTF-32, Big5 - Big5, Big5-HKSCS - Big5-HKSCS, Shift-JIS - Shift-JIS -->
<!-- ISO 2022-JP - ISO 2022-JP, KOI8-R - KOI8-R, ISO8859-1 - ISO8859-1, ISO8859-15 - ISO8859-15, Windows-1251 - Windows-1251, EUC-KR - EUC-KR -->
<!-- Default Value is UTF-8 -->
<!-- String : GBK, UTF-8, UTF-16, UTF-32, Big5, Big5-HKSCS, Shift-JIS, ISO 2022-JP, KOI8-R, ISO8859-1, ISO8859-15, Windows-1251, EUC-KR -->
<P1681>UTF-8</P1681>
<!-- Download Server. It MUST be in the host/path format -->
<!-- For example: directory.grandstream.com/engineering -->
<!-- String -->
{if isset($contact_grandstream)}
<P331>{$gs_phonebook_xml_server_path}{$user_id_1}/</P331>
{elseif isset($gs_phonebook_xml_server_path)}
<P331>{$gs_phonebook_xml_server_path}</P331>
{else}
<P331></P331>
{/if}
<!-- HTTP/HTTPS User Name -->
<P6713></P6713>
<!-- HTTP/HTTPS Password -->
<P6714></P6714>
<!-- Download Interval. Default is 0 for disabled -->
<!-- Number: 0, 120, 240, 360, 480, 720 -->
<P332>0</P332>
<!-- ###################################################################### -->
<!-- # Maintenance - LDAP Phonebook ## -->
<!-- ###################################################################### -->
<!-- Connection Mode. 0 - LDAP, 1 - LDAPS. Default Value is 0 -->
<!-- Number : 0, 1 -->
<P8037>0</P8037>
<!-- Server Address, up to 256 characters can be used. It can be IP address or Domain name -->
<!-- String -->
<P8020>{$gs_ldap_server}</P8020>
<!-- Port. Default value is 389 -->
<!-- Number: 1 - 65535 -->
<P8021>389</P8021>
<!-- Base DN. The LDAP search base refers to the location in the directory where the search is requested to begin -->
<!-- Example 1: dc=grandstream,dc=com -->
<!-- Example 2: ou=Boston, dc=grandstream,dc=com -->
<!-- String -->
<P8022>{$gs_ldap_base_dn}</P8022>
<!-- User Name. The bind "Username" for querying LDAP servers. Some LDAP servers allow anonymous binds in which case the setting can be left blank -->
<!-- String -->
<P8023>{$ldap_username}</P8023>
<!-- Password. The bind "Password" for querying LDAP servers. And the field can be left blank if the LDAP server allows anonymous binds -->
<!-- String -->
<P8024>{$ldap_password}</P8024>
<!-- LDAP Name Attributes. This setting specifies the "name" attributes of each record which are returned in the LDAP search result -->
<!-- The setting allows the users to configure multiple space separated name attributes -->
<!-- String -->
<P8028>{$gs_ldap_name_attr}</P8028>
<!-- LDAP Number Attributes. This setting specifies the "number" attributes of each record which are returned in the LDAP search result -->
<!-- The setting allows the users to configure multiple space separated number attributes -->
<!-- String -->
<P8029>{$gs_ldap_number_attr}</P8029>
<!-- LDAP Mail Attributes. This setting specifies the "mail" attributes of each record which are returned in the LDAP search result -->
<!-- The setting allows the users to configure multiple space separated mail attributes -->
<!-- String -->
<P8038>{$gs_ldap_mail_attr}</P8038>
<!-- LDAP Name Filter -->
<!-- LDAP name filter is the filter used for name look ups. Please refer to usermanual for examples -->
<!-- P8025 and P8026 are reversed on gswave -->
<!-- String -->
<P8025>{$gs_ldap_name_filter}</P8025>
<!-- LDAP Number Filter -->
<!-- LDAP name filter is the filter used for number look ups. Please refer to usermanual for examples -->
<!-- P8025 and P8026 are reversed on gswave -->
<!-- String -->
<P8026>{$gs_ldap_number_filter}</P8026>
<!-- LDAP Mail Filter -->
<!-- LDAP mail filter is the filter used for mail look ups. Please refer to usermanual for examples -->
<!-- String -->
<P8039>{$gs_ldap_mail_filter}</P8039>
<!-- LDAP Displaying Name Attributes. The entry information to be shown on phone LCD. Grandstream phones will display up to 3 fields -->
<!-- String -->
<P8030>givenName sn title</P8030>
<!-- Max Hits. The setting specifies the maximum number of results to be returned by the LDAP server -->
<!-- If the value is set to 0, server will return all search results. Default is 50 -->
<!-- Number: 0 - 32000 -->
<P8032>50</P8032>
<!-- Search Timeout (in seconds). Default is 4 -->
<!-- The setting specifies how long the server should process the request and client waits for server to return -->
<!-- Number: 0 - 180 -->
<P8031>4</P8031>
<!-- LDAP Lookup For Dial. 0 - No, 1 - Yes. Default is 0 -->
<P8034>1</P8034>
<!-- LDAP Lookup For Incoming Calls. 0 - No, 1 - Yes. Default is 0 -->
<P8035>1</P8035>
<!-- LDAP Dialing Default Account. 0 - Default, 1 - Account 1, 2 - Account 2, 3 - Account 3, 4 - Account 4, 5 - Account 5, 6 - Account 6. Default is 0 -->
<!-- Number : 0-6 -->
<P22039>0</P22039>
</config>
</gs_provision>

View File

@@ -0,0 +1,31 @@
{$rows=8}
{$cols=1}
{if $template == "grandstream/gxp16xx"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1628"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1630"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp2160"}{$rows=12}{$cols=2}{/if}
{if $template == "grandstream/gxp2130"}{$rows=4}{$cols=2}{/if}
{if $cols == 2}
{for $row=1 to $rows}
{$mem=$row+$rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{$mem=$row}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{else}
{for $mem=1 to $rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{/if}

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given|truncate:24}</FirstName>
<LastName>{$contact.contact_name_family|truncate:24}</LastName>
{if $contact.contact_title != "" }
<JobTitle>{$contact.contact_title|truncate:24}</JobTitle>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work|truncate:24}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home|truncate:24}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell|truncate:24}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_role != "" }
<Department>{$contact.contact_role|truncate:24}</Department>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization|truncate:24}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,77 @@
======================
Provision
======================
Grandstream looks for {$mac}, then cfg{$mac}.xml.
I've added symlinks so you can download both files for upload to the phone if auto-provision isn't working.
- auto provision requires
nginx rewrite rules
provision enabled text true
provision gs_config_server_path text mydomain.com/provision
# to enable phonebook contacts see below...
======================
label.txt - is a phone label for gxp2160 memory keys
======================
Plain text is copy/pasted into openoffice template that formats the label.
======================
phonebook.xml
======================
This provisions the phonebook button and the phone's display for incoming/outgoing calls.
- requires nginx rewrite rules
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
- requires Default Settings:
provision enabled text true
provision contact_extensions boolean false
provision contact_grandstream text true
provision gs_phonebook_xml_server_path text mydomain.com/provision/pb # note provision template adds {$mac} on the end
handled by nginx (above).
provision gs_config_server_path text mydomain.com/provision
provision gs_phonebook_download_interval text 720
provision gs_global_contact_groups text contacts_it,contacts_finance # these are setup in Group Manager (see below).
Comma seperated groups listed here will be on all phones, saving the need to add these groups to every user.
- Grandstream and FusionPBX supports contact groups. To setup groups
1) Advanced=>Group Manager=> Add
2) Group NAME is prefixed with "contacts_". eg. contacts_it contacts_finance contacts_purchasing
3) Group DESCRIPTION is what appears on the Phone's display. Best view is 1 word 10 characters max width.
- Contacts can be two types:
A) User/Extention local to Fusionpbx
B) Customer/External phone number.
A) Setup User/Extension contact
1) Create a new user Accounts=>Users
2) Assign contact_GROUPS (above) to that user will be assigned to on the phone's group display.
2) Create a new extension and assign it to that user Accounts=>Extensions ( this auto adds user's extention to the phonebook )
3) Create a new device and assign it to that user Accounts=>Devices ( this tells device which phonebook contacts to download )
4) Apps=>Contacts
- Type "User"
- Organization - Appears on phone. e.g. School Board Office, Aberdeen Elementary
- First Name
- Last Name
- Category - is used for "Department". e.g. IT, Finance, Purchasing
- Roll - Roll in the company. e.g. Network Support Technitian, Teacher, Stenno1.
- Users - Users who can see this contact on their phone.
- Groups - Groups that can see this contact on their phone.
- Extensions - this is the default "Work" number that appears on the phone.
- Numbers - make sure they are type "Voice"
- "Work" can be assigned
- "Home"
- "Mobile"
- Some want their extension shown but restrict their cell number to certain users.
This may be done by Numbers Description field allow:username1,username2
( NOTE private cell numbers, could be better coded )
B) Setup Costomer/External phone numbers similar to step #4) Apps=>Contacts
- Type "Customer"
- Fill in Organiation, First Name, Last Name, Category, Roll, Users, Groups
- Numbers - Add "Work" "Voice" number

View File

@@ -0,0 +1,31 @@
{$rows=8}
{$cols=1}
{if $template == "grandstream/gxp16xx"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1628"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1630"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp2160"}{$rows=12}{$cols=2}{/if}
{if $template == "grandstream/gxp2130"}{$rows=4}{$cols=2}{/if}
{if $cols == 2}
{for $row=1 to $rows}
{$mem=$row+$rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{$mem=$row}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{else}
{for $mem=1 to $rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{/if}

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,77 @@
======================
Provision
======================
Grandstream looks for {$mac}, then cfg{$mac}.xml.
I've added symlinks so you can download both files for upload to the phone if auto-provision isn't working.
- auto provision requires
nginx rewrite rules
provision enabled text true
provision gs_config_server_path text mydomain.com/provision
# to enable phonebook contacts see below...
======================
label.txt - is a phone label for gxp2160 memory keys
======================
Plain text is copy/pasted into openoffice template that formats the label.
======================
phonebook.xml
======================
This provisions the phonebook button and the phone's display for incoming/outgoing calls.
- requires nginx rewrite rules
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
- requires Default Settings:
provision enabled text true
provision contact_extensions boolean false
provision contact_grandstream text true
provision gs_phonebook_xml_server_path text mydomain.com/provision/pb # note provision template adds {$mac} on the end
handled by nginx (above).
provision gs_config_server_path text mydomain.com/provision
provision gs_phonebook_download_interval text 720
provision gs_global_contact_groups text contacts_it,contacts_finance # these are setup in Group Manager (see below).
Comma seperated groups listed here will be on all phones, saving the need to add these groups to every user.
- Grandstream and FusionPBX supports contact groups. To setup groups
1) Advanced=>Group Manager=> Add
2) Group NAME is prefixed with "contacts_". eg. contacts_it contacts_finance contacts_purchasing
3) Group DESCRIPTION is what appears on the Phone's display. Best view is 1 word 10 characters max width.
- Contacts can be two types:
A) User/Extention local to Fusionpbx
B) Customer/External phone number.
A) Setup User/Extension contact
1) Create a new user Accounts=>Users
2) Assign contact_GROUPS (above) to that user will be assigned to on the phone's group display.
2) Create a new extension and assign it to that user Accounts=>Extensions ( this auto adds user's extention to the phonebook )
3) Create a new device and assign it to that user Accounts=>Devices ( this tells device which phonebook contacts to download )
4) Apps=>Contacts
- Type "User"
- Organization - Appears on phone. e.g. School Board Office, Aberdeen Elementary
- First Name
- Last Name
- Category - is used for "Department". e.g. IT, Finance, Purchasing
- Roll - Roll in the company. e.g. Network Support Technitian, Teacher, Stenno1.
- Users - Users who can see this contact on their phone.
- Groups - Groups that can see this contact on their phone.
- Extensions - this is the default "Work" number that appears on the phone.
- Numbers - make sure they are type "Voice"
- "Work" can be assigned
- "Home"
- "Mobile"
- Some want their extension shown but restrict their cell number to certain users.
This may be done by Numbers Description field allow:username1,username2
( NOTE private cell numbers, could be better coded )
B) Setup Costomer/External phone numbers similar to step #4) Apps=>Contacts
- Type "Customer"
- Fill in Organiation, First Name, Last Name, Category, Roll, Users, Groups
- Numbers - Add "Work" "Voice" number

View File

@@ -0,0 +1,31 @@
{$rows=8}
{$cols=1}
{if $template == "grandstream/gxp16xx"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1628"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1630"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp2160"}{$rows=12}{$cols=2}{/if}
{if $template == "grandstream/gxp2130"}{$rows=4}{$cols=2}{/if}
{if $cols == 2}
{for $row=1 to $rows}
{$mem=$row+$rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{$mem=$row}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{else}
{for $mem=1 to $rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{/if}

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,77 @@
======================
Provision
======================
Grandstream looks for {$mac}, then cfg{$mac}.xml.
I've added symlinks so you can download both files for upload to the phone if auto-provision isn't working.
- auto provision requires
nginx rewrite rules
provision enabled text true
provision gs_config_server_path text mydomain.com/provision
# to enable phonebook contacts see below...
======================
label.txt - is a phone label for gxp2160 memory keys
======================
Plain text is copy/pasted into openoffice template that formats the label.
======================
phonebook.xml
======================
This provisions the phonebook button and the phone's display for incoming/outgoing calls.
- requires nginx rewrite rules
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
- requires Default Settings:
provision enabled text true
provision contact_extensions boolean false
provision contact_grandstream text true
provision gs_phonebook_xml_server_path text mydomain.com/provision/pb # note provision template adds {$mac} on the end
handled by nginx (above).
provision gs_config_server_path text mydomain.com/provision
provision gs_phonebook_download_interval text 720
provision gs_global_contact_groups text contacts_it,contacts_finance # these are setup in Group Manager (see below).
Comma seperated groups listed here will be on all phones, saving the need to add these groups to every user.
- Grandstream and FusionPBX supports contact groups. To setup groups
1) Advanced=>Group Manager=> Add
2) Group NAME is prefixed with "contacts_". eg. contacts_it contacts_finance contacts_purchasing
3) Group DESCRIPTION is what appears on the Phone's display. Best view is 1 word 10 characters max width.
- Contacts can be two types:
A) User/Extention local to Fusionpbx
B) Customer/External phone number.
A) Setup User/Extension contact
1) Create a new user Accounts=>Users
2) Assign contact_GROUPS (above) to that user will be assigned to on the phone's group display.
2) Create a new extension and assign it to that user Accounts=>Extensions ( this auto adds user's extention to the phonebook )
3) Create a new device and assign it to that user Accounts=>Devices ( this tells device which phonebook contacts to download )
4) Apps=>Contacts
- Type "User"
- Organization - Appears on phone. e.g. School Board Office, Aberdeen Elementary
- First Name
- Last Name
- Category - is used for "Department". e.g. IT, Finance, Purchasing
- Roll - Roll in the company. e.g. Network Support Technitian, Teacher, Stenno1.
- Users - Users who can see this contact on their phone.
- Groups - Groups that can see this contact on their phone.
- Extensions - this is the default "Work" number that appears on the phone.
- Numbers - make sure they are type "Voice"
- "Work" can be assigned
- "Home"
- "Mobile"
- Some want their extension shown but restrict their cell number to certain users.
This may be done by Numbers Description field allow:username1,username2
( NOTE private cell numbers, could be better coded )
B) Setup Costomer/External phone numbers similar to step #4) Apps=>Contacts
- Type "Customer"
- Fill in Organiation, First Name, Last Name, Category, Roll, Users, Groups
- Numbers - Add "Work" "Voice" number

View File

@@ -0,0 +1,31 @@
{$rows=8}
{$cols=1}
{if $template == "grandstream/gxp16xx"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1628"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1630"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp2160"}{$rows=12}{$cols=2}{/if}
{if $template == "grandstream/gxp2130"}{$rows=4}{$cols=2}{/if}
{if $cols == 2}
{for $row=1 to $rows}
{$mem=$row+$rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{$mem=$row}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{else}
{for $mem=1 to $rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{/if}

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,77 @@
======================
Provision
======================
Grandstream looks for {$mac}, then cfg{$mac}.xml.
I've added symlinks so you can download both files for upload to the phone if auto-provision isn't working.
- auto provision requires
nginx rewrite rules
provision enabled text true
provision gs_config_server_path text mydomain.com/provision
# to enable phonebook contacts see below...
======================
label.txt - is a phone label for gxp2160 memory keys
======================
Plain text is copy/pasted into openoffice template that formats the label.
======================
phonebook.xml
======================
This provisions the phonebook button and the phone's display for incoming/outgoing calls.
- requires nginx rewrite rules
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
- requires Default Settings:
provision enabled text true
provision contact_extensions boolean false
provision contact_grandstream text true
provision gs_phonebook_xml_server_path text mydomain.com/provision/pb # note provision template adds {$mac} on the end
handled by nginx (above).
provision gs_config_server_path text mydomain.com/provision
provision gs_phonebook_download_interval text 720
provision gs_global_contact_groups text contacts_it,contacts_finance # these are setup in Group Manager (see below).
Comma seperated groups listed here will be on all phones, saving the need to add these groups to every user.
- Grandstream and FusionPBX supports contact groups. To setup groups
1) Advanced=>Group Manager=> Add
2) Group NAME is prefixed with "contacts_". eg. contacts_it contacts_finance contacts_purchasing
3) Group DESCRIPTION is what appears on the Phone's display. Best view is 1 word 10 characters max width.
- Contacts can be two types:
A) User/Extention local to Fusionpbx
B) Customer/External phone number.
A) Setup User/Extension contact
1) Create a new user Accounts=>Users
2) Assign contact_GROUPS (above) to that user will be assigned to on the phone's group display.
2) Create a new extension and assign it to that user Accounts=>Extensions ( this auto adds user's extention to the phonebook )
3) Create a new device and assign it to that user Accounts=>Devices ( this tells device which phonebook contacts to download )
4) Apps=>Contacts
- Type "User"
- Organization - Appears on phone. e.g. School Board Office, Aberdeen Elementary
- First Name
- Last Name
- Category - is used for "Department". e.g. IT, Finance, Purchasing
- Roll - Roll in the company. e.g. Network Support Technitian, Teacher, Stenno1.
- Users - Users who can see this contact on their phone.
- Groups - Groups that can see this contact on their phone.
- Extensions - this is the default "Work" number that appears on the phone.
- Numbers - make sure they are type "Voice"
- "Work" can be assigned
- "Home"
- "Mobile"
- Some want their extension shown but restrict their cell number to certain users.
This may be done by Numbers Description field allow:username1,username2
( NOTE private cell numbers, could be better coded )
B) Setup Costomer/External phone numbers similar to step #4) Apps=>Contacts
- Type "Customer"
- Fill in Organiation, First Name, Last Name, Category, Roll, Users, Groups
- Numbers - Add "Work" "Voice" number

View File

@@ -0,0 +1,31 @@
{$rows=8}
{$cols=1}
{if $template == "grandstream/gxp16xx"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1628"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1630"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp2160"}{$rows=12}{$cols=2}{/if}
{if $template == "grandstream/gxp2130"}{$rows=4}{$cols=2}{/if}
{if $cols == 2}
{for $row=1 to $rows}
{$mem=$row+$rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{$mem=$row}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{else}
{for $mem=1 to $rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{/if}

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,77 @@
======================
Provision
======================
Grandstream looks for {$mac}, then cfg{$mac}.xml.
I've added symlinks so you can download both files for upload to the phone if auto-provision isn't working.
- auto provision requires
nginx rewrite rules
provision enabled text true
provision gs_config_server_path text mydomain.com/provision
# to enable phonebook contacts see below...
======================
label.txt - is a phone label for gxp2160 memory keys
======================
Plain text is copy/pasted into openoffice template that formats the label.
======================
phonebook.xml
======================
This provisions the phonebook button and the phone's display for incoming/outgoing calls.
- requires nginx rewrite rules
rewrite "^.*/provision/pb([A-Fa-f0-9-]{12,17})/phonebook\.xml$" /app/provision/?mac=$1&file=phonebook.xml;
- requires Default Settings:
provision enabled text true
provision contact_extensions boolean false
provision contact_grandstream text true
provision gs_phonebook_xml_server_path text mydomain.com/provision/pb # note provision template adds {$mac} on the end
handled by nginx (above).
provision gs_config_server_path text mydomain.com/provision
provision gs_phonebook_download_interval text 720
provision gs_global_contact_groups text contacts_it,contacts_finance # these are setup in Group Manager (see below).
Comma seperated groups listed here will be on all phones, saving the need to add these groups to every user.
- Grandstream and FusionPBX supports contact groups. To setup groups
1) Advanced=>Group Manager=> Add
2) Group NAME is prefixed with "contacts_". eg. contacts_it contacts_finance contacts_purchasing
3) Group DESCRIPTION is what appears on the Phone's display. Best view is 1 word 10 characters max width.
- Contacts can be two types:
A) User/Extention local to Fusionpbx
B) Customer/External phone number.
A) Setup User/Extension contact
1) Create a new user Accounts=>Users
2) Assign contact_GROUPS (above) to that user will be assigned to on the phone's group display.
2) Create a new extension and assign it to that user Accounts=>Extensions ( this auto adds user's extention to the phonebook )
3) Create a new device and assign it to that user Accounts=>Devices ( this tells device which phonebook contacts to download )
4) Apps=>Contacts
- Type "User"
- Organization - Appears on phone. e.g. School Board Office, Aberdeen Elementary
- First Name
- Last Name
- Category - is used for "Department". e.g. IT, Finance, Purchasing
- Roll - Roll in the company. e.g. Network Support Technitian, Teacher, Stenno1.
- Users - Users who can see this contact on their phone.
- Groups - Groups that can see this contact on their phone.
- Extensions - this is the default "Work" number that appears on the phone.
- Numbers - make sure they are type "Voice"
- "Work" can be assigned
- "Home"
- "Mobile"
- Some want their extension shown but restrict their cell number to certain users.
This may be done by Numbers Description field allow:username1,username2
( NOTE private cell numbers, could be better coded )
B) Setup Costomer/External phone numbers similar to step #4) Apps=>Contacts
- Type "Customer"
- Fill in Organiation, First Name, Last Name, Category, Roll, Users, Groups
- Numbers - Add "Work" "Voice" number

View File

@@ -0,0 +1,31 @@
{$rows=8}
{$cols=1}
{if $template == "grandstream/gxp16xx"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1628"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp1630"}{$rows=8}{$cols=1}{/if}
{if $template == "grandstream/gxp2160"}{$rows=12}{$cols=2}{/if}
{if $template == "grandstream/gxp2130"}{$rows=4}{$cols=2}{/if}
{if $cols == 2}
{for $row=1 to $rows}
{$mem=$row+$rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{$mem=$row}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{else}
{for $mem=1 to $rows}
{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type)}
{$keys.memory.$mem.device_key_label}
{else}
{/if}
{/for}
{/if}

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description|truncate:10}</name>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
{if $contact.contact_role != "" }
<JobTitle>{$contact.contact_role}</JobTitle>
{/if}
{if $contact.contact_category != "" }
<Department>{$contact.contact_category}</Department>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<AddressBook>
<version>1</version>
{foreach $contacts as $contact}
{if $contact.contact_type == "group"}
<pbgroup>
<id>{$contact.id}</id>
<name>{$contact.group_description}</name>
<ringtones/>
</pbgroup>
{/if}
{/foreach}
{$i=0}
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<Contact>
<FirstName>{$contact.contact_name_given}</FirstName>
<LastName>{$contact.contact_name_family}</LastName>
<Primary>0</Primary>
<Frequent>0</Frequent>
{if $contact.contact_title != "" }
<JobTitle>{$contact.contact_title}</JobTitle>
{/if}
<Phone type="Work">
<phonenumber>{$contact.contact_work}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{if $contact.contact_home != "" }
<Phone type="Home">
<phonenumber>{$contact.contact_home}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if $contact.contact_cell != "" }
<Phone type="Cell">
<phonenumber>{$contact.contact_cell}</phonenumber>
<accountindex>1</accountindex>
</Phone>
{/if}
{if false}
{if $contact.contact_role != "" }
<Department>{$contact.contact_role}</Department>
{/if}
{if $contact.contact_organization != "" }
<Company>{$contact.contact_organization}</Company>
{/if}
{/if}
{foreach $contact.groups as $group}
<Group>{$group}</Group>
{/foreach}
</Contact>
{/if}
{/foreach}
</AddressBook>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
<?xml version="1.0"?>
<directory>
<DIR_GROUP>
{foreach $contacts as $contact}
{if $contact.contact_name_given != "" && $contact.contact_type == "contact"}
<DIR_ENTRY>
<DIR_ENTRY_NAME_FIRST>{$contact.contact_name_given}</DIR_ENTRY_NAME_FIRST>
<DIR_ENTRY_NAME_LAST>{$contact.contact_name_family}</DIR_ENTRY_NAME_LAST>
<DIR_ENTRY_NUMBER_WORK>{$contact.contact_work}</DIR_ENTRY_NUMBER_WORK>
{if $contact.contact_cell != "" }
<DIR_ENTRY_NUMBER_MOBILE>{$contact.contact_cell}</DIR_ENTRY_NUMBER_MOBILE>
{/if}
{if $contact.contact_home != "" }
<DIR_ENTRY_NUMBER_OTHER>{$contact.contact_home}</DIR_ENTRY_NUMBER_OTHER>
{/if}
<DIR_ENTRY_LINE_NUMBER>0</DIR_ENTRY_LINE_NUMBER>
<DIR_ENTRY_BLOCK>0</DIR_ENTRY_BLOCK>
<DIR_ENTRY_RINGER>0</DIR_ENTRY_RINGER>
</DIR_ENTRY>
{/if}
{/foreach}
</DIR_GROUP>
</directory>

View File

@@ -0,0 +1,550 @@
# Model Number = VCS754
# SW Version = 1.1.1.1-0
time_date.date_format = DD/MM/YY
time_date.24hr_clock = 1
time_date.ntp_dhcp_option = 0
time_date.ntp_server = 1
{if isset($ntp_server_primary)}
time_date.ntp_server_addr = {$ntp_server_primary}
{else}
time_date.ntp_server_addr = pool.ntp.org
{/if}
time_date.ntp_server_update_interval = 1000
time_date.timezone_dhcp_option = 0
time_date.selected_timezone = America/Los_Angeles
time_date.daylight_saving_auto_adjust = 1
time_date.daylight_saving_user_defined = 0
time_date.daylight_saving_start_month = March
time_date.daylight_saving_start_week = 2
time_date.daylight_saving_start_day = Sunday
time_date.daylight_saving_start_hour = 2
time_date.daylight_saving_end_month = November
time_date.daylight_saving_end_week = 1
time_date.daylight_saving_end_day = Sunday
time_date.daylight_saving_end_hour = 2
time_date.daylight_saving_amount = 60
profile.admin.access_password = {$admin_password}
profile.user.access_password = {$user_password}
remoteDir.ldap_directory_name = LDAP
remoteDir.ldap_number_filter = {$gs_ldap_number_filter}
remoteDir.ldap_firstname_filter = (givenName=%)
remoteDir.ldap_lastname_filter = (sn=%)
remoteDir.ldap_server_address = {$gs_ldap_server}
remoteDir.ldap_port = 389
remoteDir.ldap_authentication_type = simple
remoteDir.ldap_base = {$gs_ldap_base_dn}
remoteDir.ldap_user_name = {$ldap_username}
remoteDir.ldap_access_password = {$ldap_password}
remoteDir.ldap_max_hits = 200
remoteDir.ldap_work_number_attributes = telephoneNumber
remoteDir.ldap_mobile_number_attributes = mobile
remoteDir.ldap_other_number_attributes = homePhone
remoteDir.ldap_protocol_version = version_3
remoteDir.ldap_search_delay = 0
remoteDir.ldap_incall_lookup_enable = 1
remoteDir.ldap_outcall_lookup_enable = 1
remoteDir.ldap_enable = 1
remoteDir.ldap_firstname_attribute = givenName
remoteDir.ldap_lastname_attribute = sn
remoteDir.ldap_check_certificate = 0
remoteDir.broadsoft_enable = 0
remoteDir.broadsoft_display_name =
remoteDir.broadsoft_server =
remoteDir.broadsoft_port = 0
remoteDir.broadsoft_user_name =
remoteDir.broadsoft_access_password =
remoteDir.broadsoft_dir_type = Group
remoteDir.broadsoft_check_certificate = 0
{if isset($user_password_1) }
sip_account.1.sip_account_enable = 1
{else}
sip_account.1.sip_account_enable = 0
{/if}
sip_account.1.label = {$display_name_1}
sip_account.1.display_name = {$display_name_1}
sip_account.1.user_id = {$auth_id_1}
sip_account.1.authentication_name = {$auth_id_1}
sip_account.1.authentication_access_password = {$user_password_1}
sip_account.1.dial_plan = x+P
sip_account.1.inter_digit_timeout = 3
sip_account.1.maximum_call_number = 6
sip_account.1.auto_answer_enable = 0
sip_account.1.auto_answer_during_active_call = 0
sip_account.1.feature_sync_enable = 0
sip_account.1.music_on_hold_enable = 1
sip_account.1.mwi_enable = 1
sip_account.1.mwi_ignore_unsolicited = 1
sip_account.1.mwi_uri =
sip_account.1.mwi_subscription_expires = 3600
sip_account.1.stutter_dial_tone_enable = 1
sip_account.1.voice_encryption_enable = 0
sip_account.1.primary_sip_server_port = {$sip_port_1}
sip_account.1.primary_sip_server_address = {$server_address_1}
sip_account.1.primary_outbound_proxy_server_port = 5060
sip_account.1.primary_outbound_proxy_server_address = {$outbound_proxy_1}
sip_account.1.primary_registration_server_port = 5060
sip_account.1.primary_registration_server_address = {$server_address_1}
sip_account.1.primary_registration_expires = 3600
sip_account.1.access_code_page =
sip_account.1.access_code_park_call =
sip_account.1.access_code_retrieve_parked_call =
sip_account.1.access_code_retrieve_voicemail = *97
sip_account.1.access_code_dnd_on = *78
sip_account.1.access_code_dnd_off = *79
sip_account.1.access_code_cfa_on = *72
sip_account.1.access_code_cfa_off = *73
sip_account.1.access_code_cfna_on =
sip_account.1.access_code_cfna_off =
sip_account.1.access_code_cfb_on =
sip_account.1.access_code_cfb_off =
sip_account.1.access_code_anonymous_call_block_on =
sip_account.1.access_code_anonymous_call_block_off =
sip_account.1.access_code_outgoing_call_anonymous_on =
sip_account.1.access_code_outgoing_call_anonymous_off =
sip_account.1.access_code_call_waiting_on =
sip_account.1.access_code_call_waiting_off =
sip_account.1.access_code_group_call_pickup =
sip_account.1.access_code_direct_call_pickup =
sip_account.1.nat_traversal_stun_enable = 0
sip_account.1.nat_traversal_stun_server_port = 3478
sip_account.1.nat_traversal_stun_server_address =
sip_account.1.nat_traversal_udp_keep_alive_enable = 1
sip_account.1.nat_traversal_udp_keep_alive_interval = 60
sip_account.1.network_conference_enable = 0
sip_account.1.network_bridge_uri =
sip_account.1.sip_session_timer_enable = 0
sip_account.1.sip_session_timer_min = 90
sip_account.1.sip_session_timer_max = 1800
sip_account.1.dtmf_transport_method = auto
sip_account.1.codec_priority.1 = g711u
sip_account.1.codec_priority.2 = g711a
sip_account.1.codec_priority.3 = g726
sip_account.1.codec_priority.4 = g722
sip_account.1.codec_priority.5 = g729
sip_account.1.unregister_after_reboot_enable = 0
sip_account.1.transport_mode = udp
sip_account.1.backup_outbound_proxy_server_port = 5060
sip_account.1.backup_outbound_proxy_server_address =
sip_account.1.registration_retry_time = 10
sip_account.1.local_sip_port = 5060
sip_account.1.dscp = 46
sip_account.1.sip_dscp = 26
sip_account.1.check_trusted_certificate = 0
sip_account.1.normal_jitter = 80
sip_account.1.g729_annexb_enable = 0
sip_account.1.park_variant = broadsoft
sip_account.1.preferred_ptime = 20
{if isset($user_password_2) }
sip_account.2.sip_account_enable = 1
{else}
sip_account.2.sip_account_enable = 0
{/if}
sip_account.2.label = {$display_name_2}
sip_account.2.display_name = {$display_name_2}
sip_account.2.user_id = {$user_id_2}
sip_account.2.authentication_name = {$auth_id_2}
sip_account.2.authentication_access_password = {$user_password_2}
sip_account.2.dial_plan = x+P
sip_account.2.inter_digit_timeout = 3
sip_account.2.maximum_call_number = 6
sip_account.2.auto_answer_enable = 0
sip_account.2.auto_answer_during_active_call = 0
sip_account.2.feature_sync_enable = 0
sip_account.2.music_on_hold_enable = 1
sip_account.2.mwi_enable = 0
sip_account.2.mwi_ignore_unsolicited = 1
sip_account.2.mwi_uri =
sip_account.2.mwi_subscription_expires = 3600
sip_account.2.stutter_dial_tone_enable = 1
sip_account.2.voice_encryption_enable = 0
sip_account.2.primary_sip_server_port = {$sip_port_2}
sip_account.2.primary_sip_server_address = {$server_address_2}
sip_account.2.primary_outbound_proxy_server_port = 5060
sip_account.2.primary_outbound_proxy_server_address = {$outbound_proxy_2}
sip_account.2.primary_registration_server_port = 5060
sip_account.2.primary_registration_server_address = {$server_address_2}
sip_account.2.primary_registration_expires = 3600
sip_account.2.access_code_page =
sip_account.2.access_code_park_call =
sip_account.2.access_code_retrieve_parked_call =
sip_account.2.access_code_retrieve_voicemail = *97
sip_account.2.access_code_dnd_on = *78
sip_account.2.access_code_dnd_off = *79
sip_account.2.access_code_cfa_on = *72
sip_account.2.access_code_cfa_off = *73
sip_account.2.access_code_cfna_on =
sip_account.2.access_code_cfna_off =
sip_account.2.access_code_cfb_on =
sip_account.2.access_code_cfb_off =
sip_account.2.access_code_anonymous_call_block_on =
sip_account.2.access_code_anonymous_call_block_off =
sip_account.2.access_code_outgoing_call_anonymous_on =
sip_account.2.access_code_outgoing_call_anonymous_off =
sip_account.2.access_code_call_waiting_on =
sip_account.2.access_code_call_waiting_off =
sip_account.2.access_code_group_call_pickup =
sip_account.2.access_code_direct_call_pickup =
sip_account.2.nat_traversal_stun_enable = 0
sip_account.2.nat_traversal_stun_server_port = 3478
sip_account.2.nat_traversal_stun_server_address =
sip_account.2.nat_traversal_udp_keep_alive_enable = 1
sip_account.2.nat_traversal_udp_keep_alive_interval = 60
sip_account.2.network_conference_enable = 0
sip_account.2.network_bridge_uri =
sip_account.2.sip_session_timer_enable = 0
sip_account.2.sip_session_timer_min = 90
sip_account.2.sip_session_timer_max = 1800
sip_account.2.dtmf_transport_method = auto
sip_account.2.codec_priority.1 = g711u
sip_account.2.codec_priority.2 = g711a
sip_account.2.codec_priority.3 = g726
sip_account.2.codec_priority.4 = g722
sip_account.2.codec_priority.5 = g729
sip_account.2.unregister_after_reboot_enable = 0
sip_account.2.transport_mode = udp
sip_account.2.backup_outbound_proxy_server_port = 5060
sip_account.2.backup_outbound_proxy_server_address =
sip_account.2.registration_retry_time = 10
sip_account.2.local_sip_port = 5070
sip_account.2.dscp = 46
sip_account.2.sip_dscp = 26
sip_account.2.check_trusted_certificate = 0
sip_account.2.normal_jitter = 80
sip_account.2.g729_annexb_enable = 0
sip_account.2.park_variant = broadsoft
sip_account.2.preferred_ptime = 20
{if isset($user_password_3) }
sip_account.3.sip_account_enable = 1
{else}
sip_account.3.sip_account_enable = 0
{/if}
sip_account.3.label = {$display_name_3}
sip_account.3.display_name = {$display_name_3}
sip_account.3.user_id = {$user_id_3}
sip_account.3.authentication_name = {$auth_id_3}
sip_account.3.authentication_access_password = {$user_password_3}
sip_account.3.dial_plan = x+P
sip_account.3.inter_digit_timeout = 3
sip_account.3.maximum_call_number = 6
sip_account.3.auto_answer_enable = 0
sip_account.3.auto_answer_during_active_call = 0
sip_account.3.feature_sync_enable = 0
sip_account.3.music_on_hold_enable = 1
sip_account.3.mwi_enable = 0
sip_account.3.mwi_ignore_unsolicited = 1
sip_account.3.mwi_uri =
sip_account.3.mwi_subscription_expires = 3600
sip_account.3.stutter_dial_tone_enable = 1
sip_account.3.voice_encryption_enable = 0
sip_account.3.primary_sip_server_port = {$sip_port_3}
sip_account.3.primary_sip_server_address = {$server_address_3}
sip_account.3.primary_outbound_proxy_server_port = 5060
sip_account.3.primary_outbound_proxy_server_address = {$outbound_proxy_3}
sip_account.3.primary_registration_server_port = 5060
sip_account.3.primary_registration_server_address = {$server_address_3}
sip_account.3.primary_registration_expires = 3600
sip_account.3.access_code_page =
sip_account.3.access_code_park_call =
sip_account.3.access_code_retrieve_parked_call =
sip_account.3.access_code_retrieve_voicemail = *97
sip_account.3.access_code_dnd_on = *78
sip_account.3.access_code_dnd_off = *79
sip_account.3.access_code_cfa_on = *72
sip_account.3.access_code_cfa_off = *73
sip_account.3.access_code_cfna_on =
sip_account.3.access_code_cfna_off =
sip_account.3.access_code_cfb_on =
sip_account.3.access_code_cfb_off =
sip_account.3.access_code_anonymous_call_block_on =
sip_account.3.access_code_anonymous_call_block_off =
sip_account.3.access_code_outgoing_call_anonymous_on =
sip_account.3.access_code_outgoing_call_anonymous_off =
sip_account.3.access_code_call_waiting_on =
sip_account.3.access_code_call_waiting_off =
sip_account.3.access_code_group_call_pickup =
sip_account.3.access_code_direct_call_pickup =
sip_account.3.nat_traversal_stun_enable = 0
sip_account.3.nat_traversal_stun_server_port = 3478
sip_account.3.nat_traversal_stun_server_address =
sip_account.3.nat_traversal_udp_keep_alive_enable = 1
sip_account.3.nat_traversal_udp_keep_alive_interval = 60
sip_account.3.network_conference_enable = 0
sip_account.3.network_bridge_uri =
sip_account.3.sip_session_timer_enable = 0
sip_account.3.sip_session_timer_min = 90
sip_account.3.sip_session_timer_max = 1800
sip_account.3.dtmf_transport_method = auto
sip_account.3.codec_priority.1 = g711u
sip_account.3.codec_priority.2 = g711a
sip_account.3.codec_priority.3 = g726
sip_account.3.codec_priority.4 = g722
sip_account.3.codec_priority.5 = g729
sip_account.3.unregister_after_reboot_enable = 0
sip_account.3.transport_mode = udp
sip_account.3.backup_outbound_proxy_server_port = 5060
sip_account.3.backup_outbound_proxy_server_address =
sip_account.3.registration_retry_time = 10
sip_account.3.local_sip_port = 5080
sip_account.3.dscp = 46
sip_account.3.sip_dscp = 26
sip_account.3.check_trusted_certificate = 0
sip_account.3.normal_jitter = 80
sip_account.3.g729_annexb_enable = 0
sip_account.3.park_variant = broadsoft
sip_account.3.preferred_ptime = 20
sip_account.use_first_trusted_certificate_for_all = 0
network.ip.dhcp_enable = 1
network.ip.dns1 =
network.ip.dns2 =
network.ip.static_ip_addr =
network.ip.subnet_mask =
network.ip.gateway_addr =
network.ip.dns_cache_clear_timeout = 60
network.nat.masquerading_enable = 0
network.nat.public_ip_addr =
network.nat.public_sip_port = 5060
network.nat.public_rtp_port_start = 18000
network.nat.public_rtp_port_end = 19000
network.vlan.wan.enable = {$vtech_vlan_wan_enable}
network.vlan.wan.id = {$vtech_vlan_wan_id}
network.vlan.wan.priority = {$vtech_vlan_wan_priority}
network.rtp.port_start = 18000
network.rtp.port_end = 19000
network.lldp_med.enable = 0
network.lldp_med.interval = 30
network.eapol.enable = 0
network.eapol.identity =
network.eapol.access_password =
network.vendor_class_id = Vtech Vesa VCS754
network.user_class = Vtech Vesa VCS754
provisioning.bootup_check_enable = 1
provisioning.crypto_enable = 0
provisioning.crypto_passphrase =
provisioning.dhcp_option_enable = 1
provisioning.dhcp_option_priority_1 = 66
provisioning.dhcp_option_priority_2 = 159
provisioning.dhcp_option_priority_3 = 160
provisioning.firmware_url =
provisioning.fw_server_username =
provisioning.fw_server_access_password =
provisioning.resync_mode = config_and_firmware
provisioning.resync_time = 0
{if isset($vt_config_server_path)}
provisioning.server_address = {$vt_config_server_path}
{else}
provisioning.server_address = {$domain_name}{$project_path}/app/provision
{/if}
provisioning.server_username =
provisioning.server_access_password =
provisioning.check_trusted_certificate = 0
provisioning.click_to_dial = 1
provisioning.remote_check_sync_enable = 1
provisioning.pnp_enable = 1
provisioning.pnp_response_timeout = 10
provisioning.schedule_mode = weekday
provisioning.weekdays = 0,1,2,3,4,5,6
provisioning.weekdays_start_hr = 1
provisioning.weekdays_end_hr = 2
user_pref.language = en
user_pref.web_language = en
user_pref.lcd_contrast = 4
user_pref.backlight = high
user_pref.idle_backlight = off
user_pref.backlight_timeout = 30
user_pref.absent_timeout = 30
user_pref.idle_to_logo_timeout = 0
user_pref.logo_to_idle_timeout = 60
user_pref.account.1.ringer = 1
user_pref.account.2.ringer = 1
user_pref.account.3.ringer = 1
user_pref.ringer_volume = 5
user_pref.speaker_volume = 5
user_pref.key_beep_enable = 1
user_pref.hold_reminder.enable = 1
user_pref.hold_reminder.interval = 30
user_pref.call_waiting.mode = enable
user_pref.call_waiting.tone_enable = 1
user_pref.call_waiting.tone_interval = 30
user_pref.notify.led.missed_call.enable = 0
log.syslog_enable = 0
log.syslog_level = 2
log.syslog_server_address =
log.syslog_server_port = 514
page_zone.call_priority_threshold = 2
page_zone.1.name =
page_zone.1.multicast_address =
page_zone.1.multicast_port =
page_zone.1.accept_incoming_page = 1
page_zone.1.priority = 5
page_zone.2.name =
page_zone.2.multicast_address =
page_zone.2.multicast_port =
page_zone.2.accept_incoming_page = 1
page_zone.2.priority = 5
page_zone.3.name =
page_zone.3.multicast_address =
page_zone.3.multicast_port =
page_zone.3.accept_incoming_page = 1
page_zone.3.priority = 5
page_zone.4.name =
page_zone.4.multicast_address =
page_zone.4.multicast_port =
page_zone.4.accept_incoming_page = 1
page_zone.4.priority = 5
page_zone.5.name =
page_zone.5.multicast_address =
page_zone.5.multicast_port =
page_zone.5.accept_incoming_page = 1
page_zone.5.priority = 5
page_zone.6.name =
page_zone.6.multicast_address =
page_zone.6.multicast_port =
page_zone.6.accept_incoming_page = 1
page_zone.6.priority = 5
page_zone.7.name =
page_zone.7.multicast_address =
page_zone.7.multicast_port =
page_zone.7.accept_incoming_page = 1
page_zone.7.priority = 5
page_zone.8.name =
page_zone.8.multicast_address =
page_zone.8.multicast_port =
page_zone.8.accept_incoming_page = 1
page_zone.8.priority = 5
page_zone.9.name =
page_zone.9.multicast_address =
page_zone.9.multicast_port =
page_zone.9.accept_incoming_page = 1
page_zone.9.priority = 5
page_zone.10.name =
page_zone.10.multicast_address =
page_zone.10.multicast_port =
page_zone.10.accept_incoming_page = 1
page_zone.10.priority = 5
tone.call_waiting_tone.num_of_elements = 1
tone.call_waiting_tone.element.1 = 1 440 -150 0 0 0 0 0 0 500 0 1
tone.call_waiting_tone.element.2 =
tone.call_waiting_tone.element.3 =
tone.call_waiting_tone.element.4 =
tone.call_waiting_tone.element.5 =
tone.hold_reminder.num_of_elements = 1
tone.hold_reminder.element.1 = 1 770 -120 0 0 0 0 0 0 300 0 1
tone.hold_reminder.element.2 =
tone.hold_reminder.element.3 =
tone.hold_reminder.element.4 =
tone.hold_reminder.element.5 =
tone.inside_dial_tone.num_of_elements = 1
tone.inside_dial_tone.element.1 = 2 440 -180 350 -180 0 0 0 0 4294967295 0 65535
tone.inside_dial_tone.element.2 =
tone.inside_dial_tone.element.3 =
tone.inside_dial_tone.element.4 =
tone.inside_dial_tone.element.5 =
tone.stutter_dial_tone.num_of_elements = 2
tone.stutter_dial_tone.element.1 = 2 440 -180 350 -180 0 0 0 0 100 100 10
tone.stutter_dial_tone.element.2 = 2 440 -180 350 -180 0 0 0 0 4294967295 0 65535
tone.stutter_dial_tone.element.3 =
tone.stutter_dial_tone.element.4 =
tone.stutter_dial_tone.element.5 =
tone.busy_tone.num_of_elements = 1
tone.busy_tone.element.1 = 2 480 -180 620 -180 0 0 0 0 500 500 65535
tone.busy_tone.element.2 =
tone.busy_tone.element.3 =
tone.busy_tone.element.4 =
tone.busy_tone.element.5 =
tone.ring_back_tone.num_of_elements = 1
tone.ring_back_tone.element.1 = 2 440 -180 480 -180 0 0 0 0 2000 4000 65535
tone.ring_back_tone.element.2 =
tone.ring_back_tone.element.3 =
tone.ring_back_tone.element.4 =
tone.ring_back_tone.element.5 =
web.http_port = 80
web.https_port = 443
web.https_enable = 0
call_settings.account.1.block_anonymous_enable = 0
call_settings.account.1.outgoing_anonymous_enable = 0
call_settings.account.1.dnd_enable = 0
call_settings.account.1.dnd_incoming_calls = reject
call_settings.account.1.call_fwd_always_enable = 0
call_settings.account.1.call_fwd_always_target =
call_settings.account.1.call_fwd_busy_enable = 0
call_settings.account.1.call_fwd_busy_target =
call_settings.account.1.cfna_enable = 0
call_settings.account.1.cfna_target =
call_settings.account.1.cfna_delay = 6
call_settings.account.2.block_anonymous_enable = 0
call_settings.account.2.outgoing_anonymous_enable = 0
call_settings.account.2.dnd_enable = 0
call_settings.account.2.dnd_incoming_calls = reject
call_settings.account.2.call_fwd_always_enable = 0
call_settings.account.2.call_fwd_always_target =
call_settings.account.2.call_fwd_busy_enable = 0
call_settings.account.2.call_fwd_busy_target =
call_settings.account.2.cfna_enable = 0
call_settings.account.2.cfna_target =
call_settings.account.2.cfna_delay = 6
call_settings.account.3.block_anonymous_enable = 0
call_settings.account.3.outgoing_anonymous_enable = 0
call_settings.account.3.dnd_enable = 0
call_settings.account.3.dnd_incoming_calls = reject
call_settings.account.3.call_fwd_always_enable = 0
call_settings.account.3.call_fwd_always_target =
call_settings.account.3.call_fwd_busy_enable = 0
call_settings.account.3.call_fwd_busy_target =
call_settings.account.3.cfna_enable = 0
call_settings.account.3.cfna_target =
call_settings.account.3.cfna_delay = 6
call_settings.missed_call_alert_enable = 1
call_settings.hotline_enable = 0
call_settings.hotline_number =
call_settings.hotline_delay = 0
softkey.idle = redial,line,pc_spk,call_log,blank,dir
softkey.call_active = end,transfer,conf,xferline,confline
softkey.call_held = end,new,resume,transfer,conf,xferline,confline
softkey.live_dial = backspc,input,dial
speed_dial.0.name =
speed_dial.0.number =
speed_dial.0.account = 0
speed_dial.1.name =
speed_dial.1.number =
speed_dial.1.account = 0
speed_dial.2.name =
speed_dial.2.number =
speed_dial.2.account = 0
speed_dial.3.name =
speed_dial.3.number =
speed_dial.3.account = 0
speed_dial.4.name =
speed_dial.4.number =
speed_dial.4.account = 0
speed_dial.5.name =
speed_dial.5.number =
speed_dial.5.account = 0
speed_dial.6.name =
speed_dial.6.number =
speed_dial.6.account = 0
speed_dial.7.name =
speed_dial.7.number =
speed_dial.7.account = 0
speed_dial.8.name =
speed_dial.8.number =
speed_dial.8.account = 0
speed_dial.9.name =
speed_dial.9.number =
speed_dial.9.account = 0
ringersetting.1.ringer_text =
ringersetting.1.ringer_type = 1
ringersetting.2.ringer_text =
ringersetting.2.ringer_type = 1
ringersetting.3.ringer_text =
ringersetting.3.ringer_type = 1
ringersetting.4.ringer_text =
ringersetting.4.ringer_type = 1
ringersetting.5.ringer_text =
ringersetting.5.ringer_type = 1
ringersetting.6.ringer_text =
ringersetting.6.ringer_type = 1
ringersetting.7.ringer_text =
ringersetting.7.ringer_type = 1
ringersetting.8.ringer_text =
ringersetting.8.ringer_type = 1
file.contact.directory.overwrite = {$gs_phonebook_xml_server_path}{$mac}/directory.xml