mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 00:53:50 +00:00
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:
committed by
FusionPBX
parent
137a282a1b
commit
66b849d946
@@ -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";
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_vendor']." </td>\n";
|
||||
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_template']." </td>\n";
|
||||
echo " <td valign='top' class='".$row_style[$c]."'>".$text['label-'.$row['device_enabled']]." </td>\n";
|
||||
echo " <td valign='top' class='".$row_style[$c]."'>".$row['device_provisioned_date']." - ".$row['device_provisioned_method']." - ".$row['device_provisioned_ip']." </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> </td>\n";
|
||||
echo " <td valign='top' class='row_stylebg'>".$row['device_description']." </td>\n";
|
||||
echo " <td class='list_control_icons'>";
|
||||
if (permission_exists('device_edit')) {
|
||||
|
||||
@@ -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";
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
$domain_array = explode(":", $_SERVER["HTTP_HOST"]);
|
||||
$domain_name = $domain_array[0];
|
||||
$device = device_by_ext($db, $ext, $domain_name);
|
||||
if(($device !== false)&&($device['device_vendor']=='escene')){
|
||||
if(($device !== false)&&(($device['device_vendor']=='escene')||($device['device_vendor']=='grandstream'))){
|
||||
$mac = $device['device_mac_address'];
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,7 @@
|
||||
$mac = substr($_SERVER['HTTP_USER_AGENT'],-14);
|
||||
$mac = preg_replace("#[^a-fA-F0-9./]#", "", $mac);
|
||||
}
|
||||
//Grandstream: $_SERVER['HTTP_USER_AGENT'] = "Grandstream Model HW GXP2135 SW 1.0.7.97 DevId 000b828aa872"
|
||||
//Grandstream: $_SERVER['HTTP_USER_AGENT'] = "Grandstream Model HW GXP2135 SW 1.0.7.97 DevId 000b828aa872"
|
||||
if (substr($_SERVER['HTTP_USER_AGENT'],0,11) == "Grandstream") {
|
||||
$mac = substr($_SERVER['HTTP_USER_AGENT'],-12);
|
||||
$mac = preg_replace("#[^a-fA-F0-9./]#", "", $mac);
|
||||
|
||||
@@ -153,6 +153,9 @@ include "root.php";
|
||||
case "escene":
|
||||
$mac = strtolower($mac);
|
||||
break;
|
||||
case "grandstream":
|
||||
$mac = strtolower($mac);
|
||||
break;
|
||||
default:
|
||||
$mac = strtolower($mac);
|
||||
$mac = substr($mac, 0,2).'-'.substr($mac, 2,2).'-'.substr($mac, 4,2).'-'.substr($mac, 6,2).'-'.substr($mac, 8,2).'-'.substr($mac, 10,2);
|
||||
@@ -238,6 +241,185 @@ include "root.php";
|
||||
}
|
||||
}
|
||||
|
||||
private function contact_grandstream(&$contacts, &$line, $domain_uuid, $device_user_uuid){
|
||||
// Get username for this.
|
||||
$sql = "SELECT username FROM v_users WHERE user_uuid = '${device_user_uuid}' AND domain_uuid = '${domain_uuid}' LIMIT 1";
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$my_username = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
unset($prep_statement, $sql);
|
||||
$my_username = $my_username[0]['username'];
|
||||
|
||||
// Global contact groups available to every phone if ['provision']['global_contact_groups']['text'] is set.
|
||||
// Easier than assigning these common groups to every user.
|
||||
// Check provision global_contact_groups and sanitize for sql.
|
||||
$global_contact_groups['enabled']=false;
|
||||
if ( preg_match('/[a-zA-Z0-9-_, ]/',$_SESSION['provision']['gs_global_contact_groups']['text'])){
|
||||
$global_contact_groups['enabled']=true;
|
||||
$gp=array();
|
||||
$groups=explode(',',$_SESSION['provision']['gs_global_contact_groups']['text']);
|
||||
foreach ($groups as $group){
|
||||
$gp[] = trim($group);
|
||||
}
|
||||
$global_contact_groups['sql']="'".implode("','", $gp)."'";
|
||||
}
|
||||
// Get a list of groups the user has access to see.
|
||||
$sql = "SELECT DISTINCT g.group_uuid, g.group_name, g.group_description ";
|
||||
$sql .= "FROM v_groups g ";
|
||||
$sql .= " INNER JOIN v_group_users gu ";
|
||||
$sql .= " ON gu.group_uuid=g.group_uuid ";
|
||||
$sql .= " INNER JOIN v_contact_groups cg ";
|
||||
$sql .= " ON cg.group_uuid=g.group_uuid ";
|
||||
$sql .= "WHERE gu.user_uuid = '$device_user_uuid' ";
|
||||
if ( $global_contact_groups['enabled'] ){
|
||||
$sql .= "UNION ";
|
||||
$sql .= "SELECT g.group_uuid, g.group_name, g.group_description ";
|
||||
$sql .= "FROM v_groups g ";
|
||||
$sql .= "WHERE g.group_name IN( ".$global_contact_groups['sql'].") ";
|
||||
}
|
||||
$sql .= "ORDER BY group_description";
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$user_groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
unset($prep_statement, $sql);
|
||||
$key=0;
|
||||
foreach ($user_groups as &$row) {
|
||||
$contacts[] = array("contact_type"=>"group", "group_name"=>$row['group_name'], "group_description"=>$row['group_description'], "id"=>++$key);
|
||||
$groups[$row['group_uuid']] = $key;
|
||||
$my_groups[] = '@'.$row['group_name']; // Used to show/hide
|
||||
}
|
||||
// Get a list of contacts that this user/phone has access based on assigned users and groups.
|
||||
$sql = "SELECT c.contact_uuid, c.contact_name_given, c.contact_name_family, c.contact_title, c.contact_category, c.contact_role, c.contact_organization, u.user_uuid ";
|
||||
$sql .= "FROM v_contacts c ";
|
||||
$sql .= " LEFT JOIN v_users u ";
|
||||
$sql .= " ON c.contact_uuid = u.contact_uuid ";
|
||||
$sql .= "WHERE c.contact_uuid IN ("; // assigned groups
|
||||
$sql .= " SELECT cg.contact_uuid";
|
||||
$sql .= " FROM v_contact_groups cg ";
|
||||
$sql .= " WHERE cg.group_uuid IN (";
|
||||
$sql .= " SELECT gu.group_uuid ";
|
||||
$sql .= " FROM v_group_users gu ";
|
||||
$sql .= " WHERE gu.user_uuid = '$device_user_uuid' ";
|
||||
$sql .= " AND gu.domain_uuid = '$domain_uuid' ";
|
||||
if ( $global_contact_groups['enabled'] ){
|
||||
$sql .= " UNION ";
|
||||
$sql .= " SELECT g.group_uuid ";
|
||||
$sql .= " FROM v_groups g ";
|
||||
$sql .= " WHERE g.group_name IN( ".$global_contact_groups['sql'].") ";
|
||||
}
|
||||
$sql .= " )";
|
||||
$sql .= " UNION "; // assigned users
|
||||
$sql .= " SELECT cu.contact_uuid ";
|
||||
$sql .= " FROM v_contact_users cu ";
|
||||
$sql .= " WHERE cu.user_uuid = '$device_user_uuid' ";
|
||||
$sql .= " AND cu.domain_uuid = '$domain_uuid' ";
|
||||
$sql .= ")";
|
||||
$sql .= "ORDER BY contact_name_given, contact_name_family";
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$user_contacts = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
unset($prep_statement, $sql);
|
||||
$groupid=0;
|
||||
foreach ($user_contacts as &$row) {
|
||||
$last_extention = $row['extension'];
|
||||
unset($contact);
|
||||
// Grandsteam phonebook manager: First, Last, Department, Primary, (Work, Home, Mobile, Fax, Pager, Car... with number and account), email(s), Photo, Ringtone, Group(s)
|
||||
// GXP21xx serries has First, Last, Company, Department, Job, Job TItle, 1Work ,1Home, 1Mobile, Accounts, Groups(1-many)
|
||||
$contact = array();
|
||||
$contact['contact_type'] = "contact";
|
||||
$contact['contact_uuid'] = $row['contact_uuid'];
|
||||
$contact['user_uuid'] = $row['user_uuid'];
|
||||
$contact['contact_name_given'] = $row['contact_name_given']; //FirstName
|
||||
$contact['contact_name_family'] = $row['contact_name_family']; // LastName
|
||||
$contact['contact_title'] = $row['contact_title'];
|
||||
$contact['contact_category'] = $row['contact_category']; // Department
|
||||
$contact['contact_role'] = $row['contact_role']; // Job Title
|
||||
$contact['contact_organization']= $row['contact_organization']; // Company
|
||||
$contact['contact_work'] = $row['extension'];
|
||||
//$contact['contact_account_index'] = $line['line_number']; // This was empty so disabled it.
|
||||
// Look up groups for this contact
|
||||
$sql = "SELECT g.group_description, g.group_uuid ";
|
||||
$sql .= "FROM v_groups g ";
|
||||
$sql .= " INNER JOIN v_contact_groups cg ";
|
||||
$sql .= " ON cg.group_uuid=g.group_uuid ";
|
||||
$sql .= "WHERE cg.contact_uuid = '".$row['contact_uuid']."' ";
|
||||
$sql .= "AND cg.domain_uuid = '$domain_uuid'";
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$user_groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($user_groups as $group ){
|
||||
if ( ! empty($groups[$group['group_uuid']])){
|
||||
$contact['groups'][] = $groups[$group['group_uuid']];
|
||||
}
|
||||
}
|
||||
if ( empty($contact['groups']) && !empty($groups['Other'])){
|
||||
$contact['groups'][] = $groups['Other'];
|
||||
}
|
||||
// Look up extention(s) for this contact.
|
||||
if ( ! empty ($row['user_uuid']) ){
|
||||
$sql = "SELECT e.extension, e.description ";
|
||||
$sql .= "FROM v_extensions e ";
|
||||
$sql .= " INNER JOIN v_extension_users eu ";
|
||||
$sql .= " ON e.extension_uuid = eu.extension_uuid ";
|
||||
$sql .= "WHERE eu.user_uuid = '".$row['user_uuid']."' ";
|
||||
$sql .= "AND eu.domain_uuid = '$domain_uuid' ";
|
||||
$sql .= "AND e.enabled = 'true' ";
|
||||
$sql .= "AND e.directory_visible = 'true' "; # TODO: not right field but it works for our district.
|
||||
$sql .= "AND e.directory_exten_visible = 'true' "; # TODO: not right field but it works for our district.
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$user_extentions = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($user_extentions as $ext ){
|
||||
if ( preg_match ('/ (Cell|Mobile)/i', $ext['description'])){
|
||||
$contact['contact_cell'] = $ext['extension'];
|
||||
} elseif ( preg_match ("/ Home/i", $ext['description'])){
|
||||
$contact['contact_home'] = $ext['extension'];
|
||||
} else {
|
||||
$contact['contact_work'] = $ext['extension'];
|
||||
}
|
||||
}
|
||||
}
|
||||
// Additional phone numbers for this contact.
|
||||
$sql = "select phone_number, phone_label, phone_description from v_contact_phones ";
|
||||
$sql .= "where contact_uuid='".$row['contact_uuid']."' ";
|
||||
$sql .= "and domain_uuid='".$domain_uuid."' ";
|
||||
$sql .= "and phone_type_voice = '1' ";
|
||||
$sql .= "and phone_label in ('Home', 'Mobile', 'Work') ";
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$user_phones = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
unset($prep_statement, $sql);
|
||||
foreach ($user_phones as $phone){
|
||||
// Check permission in phone_description field for string :allow:username1:username2:@group1:@group2:
|
||||
$show = true;
|
||||
if ( preg_match ('/:allow:/i', $phone['phone_description'] )){
|
||||
$show = false;
|
||||
$allows = explode ( ':', $phone['phone_description'] );
|
||||
foreach ( $allows as $allow ){
|
||||
if ( in_array($allow, $my_groups) || preg_match('/^'.$my_username.'$/', $allow)){
|
||||
$show = true;
|
||||
break 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( $show && $phone['phone_label'] == "Home" ) {
|
||||
$contact['contact_home'] = $phone['phone_number'];
|
||||
} elseif ( $show && $phone['phone_label'] == "Mobile" ){
|
||||
$contact['contact_cell'] = $phone['phone_number'];
|
||||
} elseif ( $show && $phone['phone_label'] == "Work" ){
|
||||
// Work phones are usually just extentions already assigned above.
|
||||
if (empty($contact['contact_work'])){
|
||||
$contact['contact_work'] = $phone['phone_number'];
|
||||
}
|
||||
}
|
||||
}
|
||||
// Only add to contact list if a phone number exists.
|
||||
if(!empty($contact['contact_work']) || !empty($contact['contact_home']) || !empty($contact['contact_cell'])){
|
||||
$contacts[] = &$contact;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function render() {
|
||||
|
||||
//debug
|
||||
@@ -387,10 +569,24 @@ include "root.php";
|
||||
"yealink SIP-T22"=>"yealink/t22",
|
||||
"yealink SIP-T26"=>"yealink/t26",
|
||||
"Yealink SIP-T32"=>"yealink/t32",
|
||||
"HW DP750"=>"grandstream/dp750",
|
||||
"HW GXP1450"=>"grandstream/gxp1450",
|
||||
"HW GXP1628"=>"grandstream/gxp16xx",
|
||||
"HW GXP1610"=>"grandstream/gxp16xx",
|
||||
"HW GXP1620"=>"grandstream/gxp16xx",
|
||||
"HW GXP1625"=>"grandstream/gxp16xx",
|
||||
"HW GXP1628"=>"grandstream/gxp16xx",
|
||||
"HW GXP1630"=>"grandstream/gxp16xx",
|
||||
"HW GXP2124"=>"grandstream/gxp2124",
|
||||
"HW GXP2130"=>"grandstream/gxp2130",
|
||||
"HW GXP2135"=>"grandstream/gxp2135",
|
||||
"HW GXP2140"=>"grandstream/gxp2140",
|
||||
"HW GXP2160"=>"grandstream/gxp2160",
|
||||
"HW GXP2170"=>"grandstream/gxp2170",
|
||||
"HW GXV3140"=>"grandstream/gxv3140",
|
||||
"HW GXV3240"=>"grandstream/gxv3240",
|
||||
"HW GXV3175"=>"grandstream/gxv3175",
|
||||
"Vesa VCS754"=>"vtech/vcs754",
|
||||
"Wget/1.11.3"=>"konftel/kt300ip"
|
||||
);
|
||||
|
||||
@@ -624,6 +820,10 @@ include "root.php";
|
||||
if ($_SESSION['provision']['contact_users']['boolean'] == "true") {
|
||||
$this->contact_append($contacts, $line, $domain_uuid, $device_user_uuid, false);
|
||||
}
|
||||
// Grandstream get the contacts assigned to the user and groups and add to the contacts array
|
||||
if ($_SESSION['provision']['contact_grandstream']['text'] == "true") {
|
||||
$this->contact_grandstream($contacts, $line, $domain_uuid, $device_user_uuid);
|
||||
}
|
||||
}
|
||||
|
||||
//get the extensions and add them to the contacts array
|
||||
@@ -888,6 +1088,18 @@ include "root.php";
|
||||
$view->assign("password",$password);
|
||||
$view->assign("template",$device_template);
|
||||
|
||||
// personal ldap password
|
||||
global $laddr_salt;
|
||||
if (isset($device_user_uuid)){
|
||||
$sql = "SELECT contact_uuid FROM v_users WHERE user_uuid='".$device_user_uuid."'";
|
||||
$prep_statement = $this->db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$c_uuid = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
$view->assign("ldap_username","uid=".$c_uuid[0]['contact_uuid'].",".$_SESSION['provision']['gs_ldap_user_base']['text']);
|
||||
$view->assign("ldap_password",md5($laddr_salt.$device_user_uuid));
|
||||
}
|
||||
|
||||
|
||||
//get the time zone
|
||||
$time_zone_name = $_SESSION['domain']['time_zone']['name'];
|
||||
if (strlen($time_zone_name) > 0) {
|
||||
|
||||
@@ -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';
|
||||
|
||||
?>
|
||||
|
||||
@@ -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>
|
||||
3157
resources/templates/provision/grandstream/dp750/{$mac}.xml
Normal file
3157
resources/templates/provision/grandstream/dp750/{$mac}.xml
Normal file
File diff suppressed because it is too large
Load Diff
324
resources/templates/provision/grandstream/gswave/{$mac}.xml
Normal file
324
resources/templates/provision/grandstream/gswave/{$mac}.xml
Normal 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>
|
||||
31
resources/templates/provision/grandstream/gxp16xx/label.txt
Normal file
31
resources/templates/provision/grandstream/gxp16xx/label.txt
Normal 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}
|
||||
@@ -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>
|
||||
3051
resources/templates/provision/grandstream/gxp16xx/{$mac}.xml
Normal file
3051
resources/templates/provision/grandstream/gxp16xx/{$mac}.xml
Normal file
File diff suppressed because it is too large
Load Diff
77
resources/templates/provision/grandstream/gxp2130/README.txt
Normal file
77
resources/templates/provision/grandstream/gxp2130/README.txt
Normal 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
|
||||
|
||||
|
||||
31
resources/templates/provision/grandstream/gxp2130/label.txt
Normal file
31
resources/templates/provision/grandstream/gxp2130/label.txt
Normal 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}
|
||||
@@ -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
77
resources/templates/provision/grandstream/gxp2135/README.txt
Normal file
77
resources/templates/provision/grandstream/gxp2135/README.txt
Normal 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
|
||||
|
||||
|
||||
31
resources/templates/provision/grandstream/gxp2135/label.txt
Normal file
31
resources/templates/provision/grandstream/gxp2135/label.txt
Normal 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}
|
||||
@@ -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
77
resources/templates/provision/grandstream/gxp2140/README.txt
Normal file
77
resources/templates/provision/grandstream/gxp2140/README.txt
Normal 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
|
||||
|
||||
|
||||
31
resources/templates/provision/grandstream/gxp2140/label.txt
Normal file
31
resources/templates/provision/grandstream/gxp2140/label.txt
Normal 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}
|
||||
@@ -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
77
resources/templates/provision/grandstream/gxp2160/README.txt
Normal file
77
resources/templates/provision/grandstream/gxp2160/README.txt
Normal 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
|
||||
|
||||
|
||||
Binary file not shown.
31
resources/templates/provision/grandstream/gxp2160/label.txt
Normal file
31
resources/templates/provision/grandstream/gxp2160/label.txt
Normal 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}
|
||||
@@ -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
77
resources/templates/provision/grandstream/gxp2170/README.txt
Normal file
77
resources/templates/provision/grandstream/gxp2170/README.txt
Normal 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
|
||||
|
||||
|
||||
31
resources/templates/provision/grandstream/gxp2170/label.txt
Normal file
31
resources/templates/provision/grandstream/gxp2170/label.txt
Normal 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}
|
||||
@@ -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
@@ -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>
|
||||
5451
resources/templates/provision/grandstream/gxv3240/{$mac}.xml
Normal file
5451
resources/templates/provision/grandstream/gxv3240/{$mac}.xml
Normal file
File diff suppressed because it is too large
Load Diff
23
resources/templates/provision/vtech/vcs754/directory.xml
Normal file
23
resources/templates/provision/vtech/vcs754/directory.xml
Normal 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>
|
||||
550
resources/templates/provision/vtech/vcs754/{$mac}.cfg
Normal file
550
resources/templates/provision/vtech/vcs754/{$mac}.cfg
Normal 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
|
||||
Reference in New Issue
Block a user