From 66b849d9462cee554f58c04cdb85159585d220bd Mon Sep 17 00:00:00 2001 From: Dean Montgomery Date: Thu, 8 Jun 2017 15:21:47 -0700 Subject: [PATCH] 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 --- app/devices/app_config.php | 44 +- app/devices/app_languages.php | 34 + app/devices/device_edit.php | 4 +- app/devices/devices.php | 2 +- app/provision/app_config.php | 266 +- app/provision/index.php | 4 +- app/provision/resources/classes/provision.php | 212 + app/time_conditions/app_config.php | 80 + .../provision/grandstream/dp750/phonebook.xml | 26 + .../provision/grandstream/dp750/{$mac}.xml | 3157 ++++++++ .../provision/grandstream/gswave/{$mac}.xml | 324 + .../provision/grandstream/gxp16xx/label.txt | 31 + .../grandstream/gxp16xx/phonebook.xml | 49 + .../provision/grandstream/gxp16xx/{$mac}.xml | 3051 +++++++ .../provision/grandstream/gxp2130/README.txt | 77 + .../provision/grandstream/gxp2130/label.txt | 31 + .../grandstream/gxp2130/phonebook.xml | 49 + .../provision/grandstream/gxp2130/{$mac}.xml | 7206 +++++++++++++++-- .../provision/grandstream/gxp2135/README.txt | 77 + .../provision/grandstream/gxp2135/label.txt | 31 + .../grandstream/gxp2135/phonebook.xml | 49 + .../provision/grandstream/gxp2135/{$mac}.xml | 7173 ++++++++++++++-- .../provision/grandstream/gxp2140/README.txt | 77 + .../provision/grandstream/gxp2140/label.txt | 31 + .../grandstream/gxp2140/phonebook.xml | 49 + .../provision/grandstream/gxp2140/{$mac}.xml | 7196 ++++++++++++++-- .../provision/grandstream/gxp2160/README.txt | 77 + .../grandstream/gxp2160/gxp2160_labels.ott | Bin 0 -> 27274 bytes .../provision/grandstream/gxp2160/label.txt | 31 + .../grandstream/gxp2160/phonebook.xml | 49 + .../provision/grandstream/gxp2160/{$mac}.xml | 7202 ++++++++++++++-- .../provision/grandstream/gxp2170/README.txt | 77 + .../provision/grandstream/gxp2170/label.txt | 31 + .../grandstream/gxp2170/phonebook.xml | 49 + .../provision/grandstream/gxp2170/{$mac}.xml | 7196 ++++++++++++++-- .../grandstream/gxv3240/phonebook.xml | 54 + .../provision/grandstream/gxv3240/{$mac}.xml | 5451 +++++++++++++ .../provision/vtech/vcs754/directory.xml | 23 + .../provision/vtech/vcs754/{$mac}.cfg | 550 ++ 39 files changed, 47198 insertions(+), 2922 deletions(-) create mode 100644 resources/templates/provision/grandstream/dp750/phonebook.xml create mode 100644 resources/templates/provision/grandstream/dp750/{$mac}.xml create mode 100644 resources/templates/provision/grandstream/gswave/{$mac}.xml create mode 100644 resources/templates/provision/grandstream/gxp16xx/label.txt create mode 100644 resources/templates/provision/grandstream/gxp16xx/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxp16xx/{$mac}.xml create mode 100644 resources/templates/provision/grandstream/gxp2130/README.txt create mode 100644 resources/templates/provision/grandstream/gxp2130/label.txt create mode 100644 resources/templates/provision/grandstream/gxp2130/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxp2135/README.txt create mode 100644 resources/templates/provision/grandstream/gxp2135/label.txt create mode 100644 resources/templates/provision/grandstream/gxp2135/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxp2140/README.txt create mode 100644 resources/templates/provision/grandstream/gxp2140/label.txt create mode 100644 resources/templates/provision/grandstream/gxp2140/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxp2160/README.txt create mode 100644 resources/templates/provision/grandstream/gxp2160/gxp2160_labels.ott create mode 100644 resources/templates/provision/grandstream/gxp2160/label.txt create mode 100644 resources/templates/provision/grandstream/gxp2160/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxp2170/README.txt create mode 100644 resources/templates/provision/grandstream/gxp2170/label.txt create mode 100644 resources/templates/provision/grandstream/gxp2170/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxv3240/phonebook.xml create mode 100644 resources/templates/provision/grandstream/gxv3240/{$mac}.xml create mode 100644 resources/templates/provision/vtech/vcs754/directory.xml create mode 100644 resources/templates/provision/vtech/vcs754/{$mac}.cfg diff --git a/app/devices/app_config.php b/app/devices/app_config.php index 24a639155d..7cb12a16e2 100644 --- a/app/devices/app_config.php +++ b/app/devices/app_config.php @@ -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"; -?> \ No newline at end of file +?> diff --git a/app/devices/app_languages.php b/app/devices/app_languages.php index b6449189ee..50382a18af 100644 --- a/app/devices/app_languages.php +++ b/app/devices/app_languages.php @@ -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"; diff --git a/app/devices/device_edit.php b/app/devices/device_edit.php index 3ae67212b2..d849ec19b3 100644 --- a/app/devices/device_edit.php +++ b/app/devices/device_edit.php @@ -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 " \n"; + echo " ".$device_provisioned_ip."(http|https)\n"; echo "\n"; echo "\n"; diff --git a/app/devices/devices.php b/app/devices/devices.php index f56563bb9e..10f8714e29 100644 --- a/app/devices/devices.php +++ b/app/devices/devices.php @@ -256,7 +256,7 @@ echo " ".$row['device_vendor']." \n"; echo " ".$row['device_template']." \n"; echo " ".$text['label-'.$row['device_enabled']]." \n"; - echo " ".$row['device_provisioned_date']." - ".$row['device_provisioned_method']." - ".$row['device_provisioned_ip']." \n"; + echo " ".$row['device_provisioned_date']." - ".$row['device_provisioned_method']." - ".$row['device_provisioned_ip']." \n"; echo " ".$row['device_description']." \n"; echo " "; if (permission_exists('device_edit')) { diff --git a/app/provision/app_config.php b/app/provision/app_config.php index 7022927fa8..7649e023ac 100644 --- a/app/provision/app_config.php +++ b/app/provision/app_config.php @@ -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"; -?> \ No newline at end of file +?> diff --git a/app/provision/index.php b/app/provision/index.php index 4a8c03ae5b..10acea8b55 100644 --- a/app/provision/index.php +++ b/app/provision/index.php @@ -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); diff --git a/app/provision/resources/classes/provision.php b/app/provision/resources/classes/provision.php index effca67f66..9fa4499c47 100644 --- a/app/provision/resources/classes/provision.php +++ b/app/provision/resources/classes/provision.php @@ -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) { diff --git a/app/time_conditions/app_config.php b/app/time_conditions/app_config.php index ec3ceb35fa..d1e446f1af 100644 --- a/app/time_conditions/app_config.php +++ b/app/time_conditions/app_config.php @@ -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'; ?> diff --git a/resources/templates/provision/grandstream/dp750/phonebook.xml b/resources/templates/provision/grandstream/dp750/phonebook.xml new file mode 100644 index 0000000000..7dca557192 --- /dev/null +++ b/resources/templates/provision/grandstream/dp750/phonebook.xml @@ -0,0 +1,26 @@ + + +1 +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} + +{$contact.contact_work} + +{if $contact.contact_home != "" } + +{$contact.contact_home} + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} + +{/if} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/dp750/{$mac}.xml b/resources/templates/provision/grandstream/dp750/{$mac}.xml new file mode 100644 index 0000000000..88bbae90c9 --- /dev/null +++ b/resources/templates/provision/grandstream/dp750/{$mac}.xml @@ -0,0 +1,3157 @@ + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 +{/if} + + + +{$server_address_1} + + + + + + + + +0 + + + +{$outbound_proxy_1} + + + +*97 + + + + + + + + +24 + + + + +46 + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{if isset($gs_nat_traversal_1) } +{$gs_nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +3 + + + + +20 + + + + +1200 + + + + +0 + + + + +5060 + + + + +0 + + + + + +50 + + + + + +400 + + + + + +0 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + + +{if isset($subscribe_mwi)} +{$subscribe_mwi} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +0 + + +0 + + + + +0 + + + + +0 + + + + + + + + +180 + + + + +90 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + +101 + + + + +102 + + + + +100 + + + + +0 + + + +101 + + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +2 + + + + +98 + + + + +104 + + + + +100 + + + +2 + + + + +0 + + + + +0 + + + + +0 + + + + +97 + + + + + + + + + +125 + + + + +0 + + + + + + + +0 + + + + + + +1 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + +0 + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + + +1 + + + + +4 + + + +0 + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +60 + + + + +20 + + + + +0 + + + + +0 + + + + + +100 + + + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$server_address_2} + + + + + + + + +0 + + + +{$outbound_proxy_2} + + + +*97 + + + + + + + + +24 + + + + +46 + + + + +{if isset($dns_mode_2)} +{$dns_mode_2} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{if isset($gs_nat_traversal_2) } +{$gs_nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +60 + + + + +30 + + + + +1200 + + + + +0 + + + + +5060 + + + + +0 + + + + + +50 + + + + + +400 + + + + + +0 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + + +{if isset($subscribe_mwi)} +{$subscribe_mwi} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +0 + + +0 + + + + +0 + + + + +0 + + + + + + + + +180 + + + + +90 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + +101 + + + + +102 + + + + +100 + + + + +0 + + + +101 + + + + + + +0 + + + +8 + + + +4 + + + +18 + + + +2 + + + +98 + + + +104 + + + +100 + + + +2 + + + + +0 + + + + +0 + + + + +0 + + + + +97 + + + + + + + + + +125 + + + + +0 + + + + + + + +0 + + + + + + +1 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + +0 + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + + +1 + + + + +4 + + + +0 + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +60 + + + + +20 + + + + +0 + + + + +0 + + + + + +100 + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + +{$server_address_3} + + + + + + + + +0 + + + +{$outbound_proxy_3} + + + +*97 + + + + + + + + +24 + + + + +46 + + + + +{if isset($dns_mode_3) } +{$dns_mode_3} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{if isset($gs_nat_traversal_3)} +{$gs_nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +60 + + + + +30 + + + + +1200 + + + + +0 + + + + +5060 + + + + +0 + + + + + +50 + + + + + +400 + + + + + +0 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + + +{if isset($subscribe_mwi)} +{$subscribe_mwi} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +0 + + +0 + + + + +0 + + + + +0 + + + + + + + + +180 + + + + +90 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + +101 + + + + +102 + + + + +100 + + + + +0 + + + +101 + + + + + + +0 + + + +8 + + + +4 + + + +18 + + + +2 + + + +98 + + + +104 + + + +100 + + + +2 + + + + +0 + + + + +0 + + + + +0 + + + + +97 + + + + + + + + + +125 + + + + +0 + + + + + + + +0 + + + + + + +1 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + +0 + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + + +1 + + + + +4 + + + +0 + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +60 + + + + +20 + + + + +0 + + + + +0 + + + + + +100 + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + + +{$server_address_4} + + + + + + + + +0 + + + +{$outbound_proxy_4} + + + +*97 + + + + + + + + +24 + + + + +46 + + + + +{if isset($dns_mode_4) } +{$dns_mode_4} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{if isset($gs_nat_traversal_4)} +{$gs_nat_traversal_4} +{else} +0 +{/if} + + + + + + + + + + + + + + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +60 + + + + +30 + + + + +1200 + + + + +0 + + + + +5060 + + + + +0 + + + + + +50 + + + + + +400 + + + + + + + + + + +0 + + + + +1 + + + + +1 + + + + + + + + + +{if isset($subscribe_mwi)} +{$subscribe_mwi} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +0 + + +0 + + + + +0 + + + + +0 + + + + + + + + +180 + + + + +90 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + +101 + + + + +102 + + + + +100 + + + + +0 + + + +101 + + + + + + +0 + + + +8 + + + +4 + + + +18 + + + +2 + + + +98 + + + +104 + + + +100 + + + +2 + + + + +0 + + + + +0 + + + + +0 + + + + +97 + + + + + + + + + +125 + + + + +0 + + + + + + + +0 + + + + + + +1 + + + + +0 + + + + +1 + + + + +1 + + + + + + + + +0 + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + + +1 + + + + +4 + + + +0 + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +60 + + + + +20 + + + + +0 + + + + +0 + + + + + +100 + + + + + + + + + + + +DP750 + + + + +0000 + + + + + + + +0 + + + + +{$user_id_1} +{$user_id_2} +{$user_id_3} +{$user_id_4} +{$user_id_5} + + + +PB1 +PB2 +PB3 +PB4 +PB5 + + + + + + + + + + + + + +{$user_id_1} +{$user_id_2} +{$user_id_3} +{$user_id_4} +{$user_id_5} +{$user_id_6} +{$user_id_7} +{$user_id_8} +{$user_id_9} +{$user_id_10} + + +{$auth_id_1} +{$auth_id_2} +{$auth_id_3} +{$auth_id_4} +{$auth_id_5} +{$auth_id_6} +{$auth_id_7} +{$auth_id_8} +{$auth_id_9} +{$auth_id_10} + + +{$user_password_1} +{$user_password_2} +{$user_password_3} +{$user_password_4} +{$user_password_5} +{$user_password_6} +{$user_password_7} +{$user_password_8} +{$user_password_9} +{$user_password_10} + + +{$display_name_1} +{$display_name_2} +{$display_name_3} +{$display_name_4} +{$display_name_5} +{$display_name_6} +{$display_name_7} +{$display_name_8} +{$display_name_9} +{$display_name_10} + + + + +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 + + + + +101 +101 +101 +101 +101 +101 +101 +101 +101 +101 + + + +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 + + + + + + + + +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + + + +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + + + +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + + + +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + + + +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + + + + + + + + + + + + + + + + + +0 + + + +0 +0 +0 +0 + + + + + + + + + + + +DP7XX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + +1 + + + + +{if isset($gs_lan_port_vlan) } +1 +{else} +0 +{/if} + + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +{if isset($gs_qos_sip)} +{$gs_qos_sip} +{else} +0 +{/if} + + + + +{if isset($gs_qos_rtp)} +{$gs_qos_rtp} +{else} +0 +{/if} + + + + +0 + + + +stun.ipvideotalk.com + + + + +3 + + + + +20 + + + + + + + + +c=2000/4000; + + + + + + +f1=350@-17,f2=440@-17,c=0/0; + + + +f1=440@-17,f2=480@-17,c=2000/4000; + + + +f1=480@-21,f2=620@-21,c=500/500; + + + +f1=480@-21,f2=620@-21,c=250/250; + + + +f1=350@-11,f2=440@-11,c=100/100-100/100-100/100; + + + +f1=440@-13,c=300/300-300/10000; + + + + + + + + +0 + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + +0 + + + + +1 + + + + +1 + + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + +1 + + + + +0 + + + + +10080 + + + + +1 + + + + +1 + + + + + + + + +0 + + + + + + + + +0 + + + + + + + + +{$http_auth_username} + + + + +{$http_auth_password} + + + + +0 + + + + +0 + + + + +1 + + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + +1 + + + + + +0 + + + + +1 + + + + + + + + + +0 + + + + +10080 + + + +1 + + + +1 + + + + +0 + + + + + + + +{$user_password} + + + + + +{$admin_password} + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + +0 + + + +300 + + + + + + + + + + + + + + + + + +80 + + + + + +443 + + + + + +1 + + + + +0 + + + +22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1812 + + + + +1813 + + + + + + + + + + + + +1812 + + + + +1813 + + + + + + + + + +2 + + + + +3 + + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + +60 + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($gs_gxp_time_zone)} +{$gs_gxp_time_zone} +{/if} + + + +PST+8PDT,M3.2.0,M11.1.0 + + + + +1 + + + + + + + +{$gs_syslog_server} + + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + + + + + +0 + + + + + + + + + + + + + + +0 + + + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + + + + + + + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + +120 + + + + +1 + + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_name_filter} + + + + +3 + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + +givenName sn + + + + + +500 + + + + + +30 + + + + +0 + + + +1 + + +1 + + + +givenName sn + + + + + + + +PB1 + + + +PB2 + + + +PB3 + + + +PB4 + + + +PB5 + diff --git a/resources/templates/provision/grandstream/gswave/{$mac}.xml b/resources/templates/provision/grandstream/gswave/{$mac}.xml new file mode 100644 index 0000000000..ee6ff9abfb --- /dev/null +++ b/resources/templates/provision/grandstream/gswave/{$mac}.xml @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 +{/if} + + +{$display_name_1} + + +{$server_address_1} + + +{$user_id_1} + + +{$user_id_1} + + +{$user_password_1} + + + +*98 + + +{$display_name_1} + + + +0 + + + +0 + + + + + + + + + + + + + +0 + + + +2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5060 + + + + +0 + + + + + + + +0 + + + +1 + + + +0 + + + + +9 + + + +0 + + + +8 + + + +98 + + + +2 + + + +9 + + + +9 + + + + + + + + + + + + + + + + +1 + + + +2 + + + + +911 + + + + +1 + + + +0 + + + +2 + + + + + +UTF-8 + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$user_id_1}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + + + + + + + +0 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + + +{$gs_ldap_mail_attr} + + + + + +{$gs_ldap_name_filter} + + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_mail_filter} + + + +givenName sn title + + + + +50 + + + + +4 + + +1 + + +1 + + + +0 + + + + diff --git a/resources/templates/provision/grandstream/gxp16xx/label.txt b/resources/templates/provision/grandstream/gxp16xx/label.txt new file mode 100644 index 0000000000..be9976d487 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp16xx/label.txt @@ -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} diff --git a/resources/templates/provision/grandstream/gxp16xx/phonebook.xml b/resources/templates/provision/grandstream/gxp16xx/phonebook.xml new file mode 100644 index 0000000000..f2fe0bcc85 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp16xx/phonebook.xml @@ -0,0 +1,49 @@ + + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description|truncate:10} + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given|truncate:24} +{$contact.contact_name_family|truncate:24} +{if $contact.contact_title != "" } +{$contact.contact_title|truncate:24} +{/if} + +{$contact.contact_work|truncate:24} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home|truncate:24} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell|truncate:24} +1 + +{/if} +{if $contact.contact_role != "" } +{$contact.contact_role|truncate:24} +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization|truncate:24} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml b/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml new file mode 100644 index 0000000000..f5eb093bd1 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp16xx/{$mac}.xml @@ -0,0 +1,3051 @@ + + +{$mac|replace:'-':''} + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 +{/if} + + +{$display_name_1} + + +{$server_address_1} + + + + + +{$outbound_proxy_1} + + + + + +{$user_id_1} + + +{$auth_id_1} + + +{$user_password_1} + + +{$display_name_1} + + +*97 + + + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + + + + + + + + + +{if isset($nat_traversal_1) } +{$nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + +0 + + + +1 + + + +0 + + + +3 + + + +60 + + + +0 + + + +1 + + + +30 + + + +3 + + + +5060 + + + +20 + + + + +50 + + + + +400 + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + +1 + + + +0 + + + +0 + + + +1 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +0 + + + +0 + + + + +0 + + + + + + + +0 + + + + +0 + + + + +1 + + + + +1 + + + + +1 + + + + + + +15 + + + + + + + +0 + + +** + + + + + + + +0 + + + + + + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +1 + + + +180 + + + +90 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + + +0 + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + + +0 + + + +8 + + + +18 + + + +2 + + + +9 + + + +2 + + + +98 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + +0 + + + +0 + + + +1 + + + +97 + + + +1 + + + + +2 + + + +0 + + + + + + +0 + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + +20 + + + +1 + + + +0 + + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + + +60 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +0 + + + +0 + + + +4 + + + +1 + + +*78 + + +*79 + + + + + + + + + +0 + + +0 + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$display_name_2} + + +{$server_address_2} + + + + + + + +{$outbound_proxy_2} + + + + + + +{$user_id_2} + + + +{$auth_id_2} + + + +{$user_password_2} + + + +{$display_name_2} + + + +*97 + + + + + + +{if isset($dns_mode_2) } +{$dns_mode_2} +{else} +0 +{/if} + + + + + + + + + + + + +{if isset($nat_traversal_2) } +{$nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + +0 + + + +1 + + + +0 + + + +3 + + + +60 + + + +0 + + + +0 + + + +30 + + + +3 + + + +5062 + + + +20 + + + + +50 + + + + +400 + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + +1 + + + +0 + + + +0 + + + +1 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +0 + + + +0 + + + + +0 + + + + + + + +0 + + + + +0 + + + + +1 + + + + +1 + + + + +1 + + + + + + +15 + + + + + + + +0 + + +** + + + + + + + +0 + + + + + + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +1 + + + +180 + + + +90 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + + +0 + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + + +0 + + + +8 + + + +18 + + + +9 + + + +2 + + + +2 + + + +2 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + +0 + + + +0 + + + +1 + + + +97 + + + +1 + + + + +2 + + + +0 + + + + + + +0 + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + +20 + + + +1 + + + +0 + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + +60 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +0 + + + +0 + + + +4 + + + +1 + + +*78 + + +*79 + + + + + + + + + +0 + + +0 +{if $template == "grandstream/gxp1630"} + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + + +{$display_name_3} + + + +{$server_address_3} + + + + + + +{$outbound_proxy_3} + + + + + + +{$user_id_3} + + + +{$auth_id_3} + + + +{$user_password_3} + + + +{$display_name_3} + + + +*97 + + + + + + +{if isset($dns_mode_3) } +{$dns_mode_3} +{else} +0 +{/if} + + + + + + + + + + + + +{if isset($nat_traversal_3) } +{$nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + +0 + + + +1 + + + +0 + + + +60 + + + +60 + + + +0 + + + +0 + + + +30 + + + +3 + + + +5064 + + + +20 + + + + +50 + + + + +400 + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + +1 + + + +0 + + + +0 + + + +1 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + +0 + + + +0 + + + + +0 + + + + + + + +0 + + + + +0 + + + + +1 + + + + +1 + + + + +1 + + + + + + +15 + + + + + + + +0 + + + + + + + + +** + + + + + + + +0 + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +1 + + + +180 + + + +90 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + + +0 + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + + +0 + + + +8 + + + +18 + + + +9 + + + +2 + + + +2 + + + +2 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + +0 + + + +1 + + + +97 + + + +1 + + + + +2 + + + +0 + + + + + + +0 + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ } + + + + +20 + + + +1 + + + +0 + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + +60 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +0 + + + +0 + + + +4 + + + +1 + + +*78 + + +*79 + + + + + + + + + +0 + + +0 + + +{/if} + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +192 + +168 + +0 + +160 + + +255 + +255 + +255 + +0 + + +0 + +0 + +0 + +0 + + +0 + +0 + +0 + +0 + + +0 + +0 + +0 + +0 + + +0 + +0 + +0 + +0 + + + +0 + + +0 + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + +26 + + + +46 + + + +0 + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +0 + + + +0 + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + +0 + + + +1 + + + +1500 + + + + + + +0 + + + + + + +1194 + + + + + + + + + + + + + + + + + + +{$user_password} + + + +{$admin_password} + + + + + + + + + + +0 + + + +0 + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + +1 + + + + + + + + +2 + + + +60 + + + +1 + + + +1 + + + +0 + + + +0 + + + + +2 + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + +{$http_auth_username} + + +{$http_auth_password} + + + + + + + + + + + + +0 + + + + +2 + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + + +{$gs_syslog_server} + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + + + + + + + + + + + + +auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + +86400 + + + + + + + + +7547 + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + +1 + + + +80 + + + +443 + + +0 + + +5 + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + +120 + + + +1 + + + +0 + + + +{if isset($contact_grandstream)} +3 +{else} +0 +{/if} + + + + + + +{$gs_ldap_server} + + +389 + + + + +{$gs_ldap_base_dn} + + +{$ldap_username} + + +{$ldap_password} + + + +{$gs_ldap_number_filter} + + + +{$gs_ldap_name_filter} + + + +3 + + + +{$gs_ldap_name_attr} + + + +{$gs_ldap_number_attr} + + +givenName sn + + + + +50 + + + + +30 + + + +0 + + +1 + +1 + + +givenName sn + + + + + + +5004 + + + +0 + + + +20 + + + + + + + + + +{if isset($public_mode) } +{if $public_mode|strtolower == 'true'} +1 +{elseif $public_mode|strtolower == 'yes'} +1 +{elseif $public_mode == '1'} +1 +{else} +0 +{/if} +{else} +0 +{/if} + + + + + + + + + +30 + + + +0 + + + + + + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + +0 + + + +0 + + + + + + +0 + + + + + +300 + + + +200 + + + + + + +1 + + + + + + + + +0 + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +f1=440,f2=480,c=200/400; + + + +f1=350,f2=440; + + +f1=350,f2=440; + + + +f1=350,f2=440,c=10/10; + + + +f1=440,f2=480,c=200/400; + + + +f1=440,f2=440,c=25/525; + + + +0 + + + +f1=480,f2=620,c=50/50; + + + +f1=480,f2=620,c=25/25; + + + +7 + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + + + + + +6 + + + + + + + +2 + + + +3 + + + +0 + + + + + + + + + +0 + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$grandstream_gxp_time_zone} + + + + +1 + + + + + + + + + + + + + +0 + + + +0 + + + + + + +1 + + + + + + + +0 + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$start_id=1363} +{assign var=key_types value=["line"=>0,"shared line"=>1,"speed dial"=>10, "speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,"transfer"=>18,"intercom"=>20,"ldap search"=>21]} + +{for $line=1 to 2} +{$pid=$line*2-2} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{$key_types[$keys.line.$line.device_key_type]} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + + + + +{assign var=key_types value=["speed dial"=>10, "speed dial active"=>14,"voicemail"=>16,"call return"=>17,"intercom"=>20,"ldap search"=>21]} +{$prog=1} +{if isset($keys.programmable.$prog.device_key_category) && isset($keys.programmable.$prog.device_key_type) && $keys.programmable.$prog.device_key_type|in_array:$key_types} +{$key_types[$keys.programmable.$prog.device_key_type]} + + + +{$keys.programmable.$prog.device_key_line} + + +{$keys.programmable.$prog.device_key_label} + + +{$keys.programmable.$prog.device_key_value} +{else} +0 +0 + + +{/if} + + + + + + + + + +{assign var=key_types value=["speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13]} +{$start_id=323} +{for $mem=1 to 7} +{$pid=$mem*3-3} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.memory.$mem.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +1 +0 + + +{/if} + +{/for} + +{$mem=8} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +0 +0 + + +{/if} + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + + +0 + + + + + + diff --git a/resources/templates/provision/grandstream/gxp2130/README.txt b/resources/templates/provision/grandstream/gxp2130/README.txt new file mode 100644 index 0000000000..247da51b2b --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2130/README.txt @@ -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 + + diff --git a/resources/templates/provision/grandstream/gxp2130/label.txt b/resources/templates/provision/grandstream/gxp2130/label.txt new file mode 100644 index 0000000000..be9976d487 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2130/label.txt @@ -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} diff --git a/resources/templates/provision/grandstream/gxp2130/phonebook.xml b/resources/templates/provision/grandstream/gxp2130/phonebook.xml new file mode 100644 index 0000000000..62c745db9f --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2130/phonebook.xml @@ -0,0 +1,49 @@ + + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description|truncate:10} + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +{if $contact.contact_role != "" } +{$contact.contact_role} +{/if} +{if $contact.contact_category != "" } +{$contact.contact_category} +{/if} + +{$contact.contact_work} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} +1 + +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxp2130/{$mac}.xml b/resources/templates/provision/grandstream/gxp2130/{$mac}.xml index cc0fa46f21..52cec2e55e 100644 --- a/resources/templates/provision/grandstream/gxp2130/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2130/{$mac}.xml @@ -1,619 +1,6623 @@ - - - - - - - 1 - - {$display_name_1} - - {$server_address_1} - - - - - - {$user_id_1} - - {$auth_id_1} - - {$user_password_1} - - {$display_name_1} - - *97 - - - 0 - - 0 - - {if $sip_transport_1 == 'udp'}0 - {elseif $sip_transport_1 == 'tcp'}1 - {elseif $sip_transport_1 == 'tls'}2 - {elseif $sip_transport_1 == 'dns srv'}1 - {/if} +{$mac|replace:'-':''} + + + + - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_2} - - {$server_address_2} - - {$user_id_2} - - {$user_id_2} - - {$user_password_2} - - {$display_name_2} - - *97 - - - 0 - - 4 - - {if $sip_transport_2 == 'udp'}0{/if} - {if $sip_transport_2 == 'tcp'}1{/if} - {if $sip_transport_2 == 'tls'}2{/if} - {if $sip_transport_2 == 'dns srv'}1{/if} - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_3} - - {$server_address_3} - - {$user_id_3} - - {$user_id_3} - - {$user_password_3} - - {$display_name_3} - - *97 - - - 0 - - 4 - - {if $sip_transport_3 == 'udp'}0{/if} - {if $sip_transport_3 == 'tcp'}1{/if} - {if $sip_transport_3 == 'tls'}2{/if} - {if $sip_transport_3 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_4} - - {$server_address_4} - - {$user_id_4} - - {$user_id_4} - - {$user_password_4} - - {$display_name_4} - - *97 - - - 0 - - 4 - - {if $sip_transport_4 == 'udp'}0{/if} - {if $sip_transport_4 == 'tcp'}1{/if} - {if $sip_transport_4 == 'tls'}2{/if} - {if $sip_transport_4 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_5} - - {$server_address_5} - - {$user_id_5} - - {$user_id_5} - - {$user_password_5} - - {$display_name_5} - - *97 - - 4 - + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 +{/if} - {if $sip_transport_5 == 'udp'}0{/if} - {if $sip_transport_5 == 'tcp'}1{/if} - {if $sip_transport_5 == 'tls'}2{/if} - {if $sip_transport_5 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - 60 - - - - 1 - - {$display_name_6} - - {$server_address_6} - - {$user_id_6} - - {$user_id_6} - - {$user_password_6} - - {$display_name_6} - - *97 - - - 4 - - {if $sip_transport_6 == 'udp'}0{/if} - {if $sip_transport_6 == 'tcp'}1{/if} - {if $sip_transport_6 == 'tls'}2{/if} - {if $sip_transport_6 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 60 - - - 0 - - 0 - - - phone-{$display_name_1} - - 0 - - - - {$user_password} - - {$admin_password} - - - - - - 0 - - - - {$http_auth_username} - - {$http_auth_password} - - 2 - - {$domain_name}{$project_path}/app/provision - - {$domain_name}{$project_path}/app/provision - - 0 - - - 0 - - 0 - - 10080 - - 1 - - 1 - - 0 - - - - - 0 - - 0 - - - 0 - - 1 - - 0 - - {if isset($public_mode) } - {if $public_mode|strtolower == 'true'} - 1 - {elseif $public_mode|strtolower == 'yes'} - 1 - {elseif $public_mode == '1'} - 1 - {else} - 0 - {/if} - {else} - 0 - {/if} - - - 0 - - 0 - - - 0 - - - - - - - - 1 - - 0 - - - 100 - - 40 - - 7 - - - - 0 - - 0 - - 1 - - - - us.pool.ntp.org - - - 1 - + + +{$display_name_1} + + + +{$server_address_1} + + + +{$secondary_server_address_1} + + + +{$outbound_proxy_1} + + + + + + + + + + + +{$user_id_1} + + + +{$auth_id_1} + + + +{$user_password_1} + + + +{$display_name_1} + + + +*97 + + + + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_1) } +{$nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5060 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +123 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +2 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +123 + + + + +101 + + + + +0 + + + + +1 + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{/if} + + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +0 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$display_name_2} + + + +{$server_address_2} + + + + + + + +{$outbound_proxy_2} + + + + + + + + + + + +{$user_id_2} + + + +{$auth_id_2} + + + +{$user_password_2} + + + +{$display_name_2} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_2) } +{$gs_dns_modee_2} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_2) } +{$nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5062 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_2)||$gs_account_ring_tone_2==0} +{$gs_account_ring_tone_2} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*79 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + + +{$display_name_3} + + + +{$server_address_3} + + + + + + + +{$outbound_proxy_3} + + + + + + + + + + + +{$user_id_3} + + + +{$auth_id_3} + + + +{$user_password_3} + + + +{$display_name_3} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_3) } +{$gs_dns_modee_3} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_3) } +{$nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5064 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_3)||$gs_account_ring_tone_3==0} +{$gs_account_ring_tone_3} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + + +{$display_name_4} + + + +{$server_address_4} + + + + + + + +{$outbound_proxy_4} + + + + + + + + + + + +{$user_id_4} + + + +{$auth_id_4} + + + +{$user_password_4} + + + +{$display_name_4} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_4) } +{$gs_dns_modee_4} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_4) } +{$nat_traversal_4} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5066 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_4)||$gs_account_ring_tone_4==0} +{$gs_account_ring_tone_4} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_5)} +1 +{else} +0 +{/if} + + + +{$display_name_5} + + + +{$server_address_5} + + + + + + + +{$outbound_proxy_5} + + + + + + + + + + + +{$user_id_5} + + + +{$auth_id_5} + + + +{$user_password_5} + + + +{$display_name_5} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_5) } +{$gs_dns_modee_5} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_5) } +{$nat_traversal_5} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5068 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_5 == 'udp'}{$tp=0}{/if} +{if $sip_transport_5 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_5 == 'tls'}{$tp=2}{/if} +{if $sip_transport_5 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_5)||$gs_account_ring_tone_5==0} +{$gs_account_ring_tone_5} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_6)} +1 +{else} +0 +{/if} + + + +{$display_name_6} + + + +{$server_address_6} + + + + + + + +{$outbound_proxy_6} + + + + + + + + + + + +{$user_id_6} + + + +{$auth_id_6} + + + +{$user_password_6} + + + +{$display_name_6} + + + +*97 + + + + + + + + +{if isset($gs_dns_modee_6) } +{$gs_dns_modee_6} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_6) } +{$nat_traversal_6} +{else} +0 +{/if} + + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5070 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_6 == 'udp'}{$tp=0}{/if} +{if $sip_transport_6 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_6 == 'tls'}{$tp=2}{/if} +{if $sip_transport_6 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_6)||$gs_account_ring_tone_6==0} +{$gs_account_ring_tone_6} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + +26 + + + + +46 + + + + +0 + + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + + +0 + + + + +1 + + + + +30 + + + + +0 + + + + + + + +0 + + + + + + + + +1194 + + + + +0 + + + + + + + +{$user_password} + + + +{$admin_password} + + + + + + + + + + + +0 + + + + + + + +{$http_auth_username} + + + +{$http_auth_password} + + + + +0 + + + + +2 + + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + + + + + + +1 + + + + +0 + + + + + +0 + + + + +1 + + + + + + + + + +0 + + + + +10080 + + + +1 + + + +1 + + + + +0 + + + + +0 + + + + + + +{$gs_syslog_server} + + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + +1 + + + + + + + + + + + + + + + +Auto + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + +0 + + + +86400 + + + + + + + + + + + +0 + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + +1 + + + +0 + + + + +80 + + + + +443 + + + +5 + + + + + + + + + + + +0 + + + + + + + +0 + + + + + + + + + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + + + + + + + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + +{if isset($gs_phonebook_download_interval)} +{$gs_phonebook_download_interval} +{else} +0 +{/if} + + + + +1 + + + + +1 + + + + +{if isset($contact_grandstream)} +2 +{else} +0 +{/if} + + + + +0 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_name_filter} + + + + +3 + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + +givenName sn title + + + + + +50 + + + + + +30 + + + + +0 + + + +1 + + +1 + + + +givenName sn title + + + + + + + +5004 + + + + +200 + + + + +5204 + + + + +0 + + + + +20 + + + + + + + + + + + + +{if isset($public_mode) } +{if $public_mode|strtolower == 'true'} +1 +{elseif $public_mode|strtolower == 'yes'} +1 +{elseif $public_mode == '1'} +1 +{else} +0 +{/if} +{else} +0 +{/if} + + + +0 + + + + + + + + + + + +30 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +{if isset($gs_auto_attended_transfer) } +{$gs_auto_attended_transfer} +{else} +1 +{/if} + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +10 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +f1=440,f2=480,c=200/400; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440,c=10/10; + + + + +f1=440,f2=480,c=200/400; + + + + +f1=440,f2=440,c=25/525; + + + + +0 + + + + +f1=480,f2=620,c=50/50; + + + + +f1=480,f2=620,c=25/25; + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +{if isset($gs_handset_tx_gain) } +{$gs_handset_tx_gain} +{else} +0 +{/if} + + + + + + + + +100 + + + + +60 + + + + +5 + + + + +0 + + + + + + + + + + +0 + + + + +0 + + + + +1 + + + + + + + + + +{if isset($gs_wallpaper_url)} +1 +{$gs_wallpaper_url} +{else} +0 + +{/if} + + + +#000000 + + + + +0 + + + +0 + + + + +3 + + + + + + + + +0 + + + + + + + +0 + + + + +0 + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + + + + + +1440 + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {if isset($grandstream_timezone) } - {$grandstream_timezone} - {else} - auto - {/if} - - - - 1 - a - - - 1 - - - - 15 - - - auto - - - 0 - - - 0 - - - - - - - -{foreach $keys["line"] as $row} -{$key_id = $row.device_key_id - 1} - -{if $key_id < 3} -{$start_id = 1363} -{$type_id = $start_id + ($key_id * 2)} -{$line_id = ($start_id + 1) + ($key_id * 2)} -{$label_id = ($start_id + 102) + ($key_id * 2)} -{$value_id = ($start_id + 103) + ($key_id * 2)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 7} -{$start_id = 23800} -{$type_id = $start_id + (($key_id - 6) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 6) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 6) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 6) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - - -{elseif $key_id < 12} -{$start_id = 23800} -{$type_id = $start_id + (($key_id - 6) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 6) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 6) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 6) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - +{$grandstream_timezone} +{elseif isset($gs_gxp_time_zone) } +{$gs_gxp_time_zone} +{else} +auto {/if} -{/foreach} - - + + + + +0 -{foreach $keys["memory"] as $row} -{$key_id = $row.device_key_id - 1} + + + + +PST+8PDT,M3.2.0,M11.1.0 -{if $key_id < 7} -{$start_id = 301} -{$type_id = $start_id + 22 + ($key_id)} -{$line_id = ($start_id) + ($key_id * 3)} -{$label_id = ($start_id + 1) + ($key_id * 3)} -{$value_id = ($start_id + 2) + ($key_id * 3)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} + + + + + + + + +3 - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} + + + +0 -{elseif $key_id < 8} -{$start_id = 353} -{$type_id = $start_id + ($key_id * 4)} -{$line_id = ($start_id + 1) + ($key_id * 4)} -{$label_id = ($start_id + 2) + ($key_id * 4)} -{$value_id = ($start_id + 3) + ($key_id * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} + + + + - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} + + + +1 + + + +1 + + + + +1 + + + + + + + + +15 + + + + +c + + + + + +1 + + + + +CAD/USD;CAD/EUR;CAD/GBP;CAD/AUD;CAD/CNY;CAD/JPY + + + + + + + + + + +XMLApp + + + + + + + + +0 + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($gs_bluetooth_power)} +{$gs_bluetooth_power} {/if} -{/foreach} + + + + +{if isset($gs_bluetooth_handsfree)} +{$gs_bluetooth_handsfree} +{/if} + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$fixed_keys=4} +{if $template == "grandstream/gxp2130"}{$fixed_keys=3}{/if} +{if $template == "grandstream/gxp2140"}{$fixed_keys=4}{/if} +{if $template == "grandstream/gxp2160"}{$fixed_keys=6}{/if} +{if $template == "grandstream/gxp2170"}{$fixed_keys=12}{/if} +{if $template == "grandstream/gxp2135"}{$fixed_keys=8}{/if} + +{$start_id=1363} +{assign var=key_types value=["none"=>-1,"line"=>0,"shared line"=>1,"speed dial"=>10, "blf"=>11, "presence watcher"=>12, "eventlist blf"=>13,"speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,"transfer"=>18,"call park"=>19,"intercom"=>20,"ldap search"=>21,"multicast paging"=>23,"record"=>24,"call log"=>25,"monitored call park"=>26,"menu"=>27]} + +{for $line=1 to 6} +{$pid=$line*2-2} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +0 +{$line-1} + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + +{$start_id=23800} +{for $line=7 to 32} +{$pid=($line-6)*4-4} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +-1 +0 + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["speed dial"=>10, "speed dial active"=>14,"voicemail"=>16,"call return"=>17,"intercom"=>20,"ldap search"=>21,"menu"=>17]} +{$start_id=2987} +{for $prog=1 to 3} +{$pid=$prog*4-4} +{if isset($keys.programmable.$prog.device_key_category) && isset($keys.programmable.$prog.device_key_type) && $keys.programmable.$prog.device_key_type|in_array:$key_types} +{$key_types[$keys.programmable.$prog.device_key_type]} +{$keys.programmable.$prog.device_key_line} +{$keys.programmable.$prog.device_key_label} +{$keys.programmable.$prog.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=323} +{for $mem=1 to 7} +{$pid=$mem*3-3} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.memory.$mem.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=353} +{for $mem=8 to 18} +{$pid=($mem-7)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=1440} +{for $mem=19 to 24} +{$pid=($mem-18)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{if $template == "grandstream/gxp2140"||$template == "grandstream/gxp2170"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=23000} +{for $exp=1 to 160} +{$pid=$exp*5-5} +{if isset($keys.expansion.$exp.device_key_category) && isset($keys.expansion.$exp.device_key_type) && $keys.expansion.$exp.device_key_type|in_array:$key_types} +{$key_types[$keys.expansion.$exp.device_key_type]} +{$keys.expansion.$exp.device_key_line} +{$keys.expansion.$exp.device_key_label} +{$keys.expansion.$exp.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} +{/if} + diff --git a/resources/templates/provision/grandstream/gxp2135/README.txt b/resources/templates/provision/grandstream/gxp2135/README.txt new file mode 100644 index 0000000000..247da51b2b --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2135/README.txt @@ -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 + + diff --git a/resources/templates/provision/grandstream/gxp2135/label.txt b/resources/templates/provision/grandstream/gxp2135/label.txt new file mode 100644 index 0000000000..be9976d487 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2135/label.txt @@ -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} diff --git a/resources/templates/provision/grandstream/gxp2135/phonebook.xml b/resources/templates/provision/grandstream/gxp2135/phonebook.xml new file mode 100644 index 0000000000..62c745db9f --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2135/phonebook.xml @@ -0,0 +1,49 @@ + + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description|truncate:10} + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +{if $contact.contact_role != "" } +{$contact.contact_role} +{/if} +{if $contact.contact_category != "" } +{$contact.contact_category} +{/if} + +{$contact.contact_work} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} +1 + +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxp2135/{$mac}.xml b/resources/templates/provision/grandstream/gxp2135/{$mac}.xml index 9320e416bc..52cec2e55e 100644 --- a/resources/templates/provision/grandstream/gxp2135/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2135/{$mac}.xml @@ -1,562 +1,6623 @@ - - - - - - - 1 - - {$display_name_1} - - {$server_address_1} - - - - - - {$user_id_1} - - {$auth_id_1} - - {$user_password_1} - - {$display_name_1} - - *97 - - - 0 - - 0 - - {if $sip_transport_1 == 'udp'}0 - {elseif $sip_transport_1 == 'tcp'}1 - {elseif $sip_transport_1 == 'tls'}2 - {elseif $sip_transport_1 == 'dns srv'}1 - {/if} - - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_2} - - {$server_address_2} - - {$user_id_2} - - {$user_id_2} - - {$user_password_2} - - {$display_name_2} - - *97 - - - 0 - - 4 - - {if $sip_transport_2 == 'udp'}0{/if} - {if $sip_transport_2 == 'tcp'}1{/if} - {if $sip_transport_2 == 'tls'}2{/if} - {if $sip_transport_2 == 'dns srv'}1{/if} - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_3} - - {$server_address_3} - - {$user_id_3} - - {$user_id_3} - - {$user_password_3} - - {$display_name_3} - - *97 - - - 0 - - 4 - - {if $sip_transport_3 == 'udp'}0{/if} - {if $sip_transport_3 == 'tcp'}1{/if} - {if $sip_transport_3 == 'tls'}2{/if} - {if $sip_transport_3 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_4} - - {$server_address_4} - - {$user_id_4} - - {$user_id_4} - - {$user_password_4} - - {$display_name_4} - - *97 - - - 0 - - 4 - - {if $sip_transport_4 == 'udp'}0{/if} - {if $sip_transport_4 == 'tcp'}1{/if} - {if $sip_transport_4 == 'tls'}2{/if} - {if $sip_transport_4 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_5} - - {$server_address_5} - - {$user_id_5} - - {$user_id_5} - - {$user_password_5} - - {$display_name_5} - - *97 - - 4 - - - {if $sip_transport_5 == 'udp'}0{/if} - {if $sip_transport_5 == 'tcp'}1{/if} - {if $sip_transport_5 == 'tls'}2{/if} - {if $sip_transport_5 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - 60 - - - - 1 - - {$display_name_6} - - {$server_address_6} - - {$user_id_6} - - {$user_id_6} - - {$user_password_6} - - {$display_name_6} - - *97 - - - 4 - - {if $sip_transport_6 == 'udp'}0{/if} - {if $sip_transport_6 == 'tcp'}1{/if} - {if $sip_transport_6 == 'tls'}2{/if} - {if $sip_transport_6 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 60 - - - 0 - - 0 - - - phone-{$display_name_1} - - 0 - - - - {$user_password} - - {$admin_password} - - - - - - 0 - - - - {$http_auth_username} - - {$http_auth_password} - - 2 - - {$domain_name}{$project_path}/app/provision - - {$domain_name}{$project_path}/app/provision - - 0 - - - 0 - - 0 - - 10080 - - 1 - - 1 - - 0 - - - - - 0 - - 0 - - - 0 - - 1 - - 0 - - {if isset($public_mode) } - {if $public_mode|strtolower == 'true'} - 1 - {elseif $public_mode|strtolower == 'yes'} - 1 - {elseif $public_mode == '1'} - 1 - {else} - 0 - {/if} - {else} - 0 - {/if} - - - 0 - - 0 - - - 0 - - - - - - - - 1 - - 0 - - - 100 - - 40 - - 7 - - - - 0 - - 0 - - 1 - - - - us.pool.ntp.org - - - 1 - -{if isset($grandstream_timezone) } - {$grandstream_timezone} - {else} - auto - {/if} - - - - 1 - a - - - 1 - - - - 15 - - - auto - - - 0 - - - 0 - - - - - - - -{foreach $keys["line"] as $row} -{$key_id = $row.device_key_id - 1} - -{if $key_id < 6} -{$start_id = 1363} -{$type_id = $start_id + ($key_id * 2)} -{$line_id = ($start_id + 1) + ($key_id * 2)} -{$label_id = ($start_id + 102) + ($key_id * 2)} -{$value_id = ($start_id + 103) + ($key_id * 2)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 8} -{$start_id = 23800} -{$type_id = $start_id + (($key_id - 6) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 6) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 6) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 6) * 4)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 32} -{$start_id = 23800} -{$type_id = $start_id + (($key_id - 6) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 6) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 6) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 6) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} +{$mac|replace:'-':''} + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 {/if} -{/foreach} - - + + +{$display_name_1} + + + +{$server_address_1} + + + +{$secondary_server_address_1} + + + +{$outbound_proxy_1} + + + + + + + + + + + +{$user_id_1} + + + +{$auth_id_1} + + + +{$user_password_1} + + + +{$display_name_1} + + + +*97 + + + + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_1) } +{$nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5060 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +123 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +2 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +123 + + + + +101 + + + + +0 + + + + +1 + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{/if} + + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +0 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$display_name_2} + + + +{$server_address_2} + + + + + + + +{$outbound_proxy_2} + + + + + + + + + + + +{$user_id_2} + + + +{$auth_id_2} + + + +{$user_password_2} + + + +{$display_name_2} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_2) } +{$gs_dns_modee_2} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_2) } +{$nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5062 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_2)||$gs_account_ring_tone_2==0} +{$gs_account_ring_tone_2} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*79 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + + +{$display_name_3} + + + +{$server_address_3} + + + + + + + +{$outbound_proxy_3} + + + + + + + + + + + +{$user_id_3} + + + +{$auth_id_3} + + + +{$user_password_3} + + + +{$display_name_3} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_3) } +{$gs_dns_modee_3} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_3) } +{$nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5064 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_3)||$gs_account_ring_tone_3==0} +{$gs_account_ring_tone_3} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + + +{$display_name_4} + + + +{$server_address_4} + + + + + + + +{$outbound_proxy_4} + + + + + + + + + + + +{$user_id_4} + + + +{$auth_id_4} + + + +{$user_password_4} + + + +{$display_name_4} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_4) } +{$gs_dns_modee_4} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_4) } +{$nat_traversal_4} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5066 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_4)||$gs_account_ring_tone_4==0} +{$gs_account_ring_tone_4} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_5)} +1 +{else} +0 +{/if} + + + +{$display_name_5} + + + +{$server_address_5} + + + + + + + +{$outbound_proxy_5} + + + + + + + + + + + +{$user_id_5} + + + +{$auth_id_5} + + + +{$user_password_5} + + + +{$display_name_5} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_5) } +{$gs_dns_modee_5} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_5) } +{$nat_traversal_5} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5068 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_5 == 'udp'}{$tp=0}{/if} +{if $sip_transport_5 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_5 == 'tls'}{$tp=2}{/if} +{if $sip_transport_5 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_5)||$gs_account_ring_tone_5==0} +{$gs_account_ring_tone_5} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_6)} +1 +{else} +0 +{/if} + + + +{$display_name_6} + + + +{$server_address_6} + + + + + + + +{$outbound_proxy_6} + + + + + + + + + + + +{$user_id_6} + + + +{$auth_id_6} + + + +{$user_password_6} + + + +{$display_name_6} + + + +*97 + + + + + + + + +{if isset($gs_dns_modee_6) } +{$gs_dns_modee_6} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_6) } +{$nat_traversal_6} +{else} +0 +{/if} + + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5070 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_6 == 'udp'}{$tp=0}{/if} +{if $sip_transport_6 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_6 == 'tls'}{$tp=2}{/if} +{if $sip_transport_6 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_6)||$gs_account_ring_tone_6==0} +{$gs_account_ring_tone_6} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + +26 + + + + +46 + + + + +0 + + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + + +0 + + + + +1 + + + + +30 + + + + +0 + + + + + + + +0 + + + + + + + + +1194 + + + + +0 + + + + + + + +{$user_password} + + + +{$admin_password} + + + + + + + + + + + +0 + + + + + + + +{$http_auth_username} + + + +{$http_auth_password} + + + + +0 + + + + +2 + + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + + + + + + +1 + + + + +0 + + + + + +0 + + + + +1 + + + + + + + + + +0 + + + + +10080 + + + +1 + + + +1 + + + + +0 + + + + +0 + + + + + + +{$gs_syslog_server} + + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + +1 + + + + + + + + + + + + + + + +Auto + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + +0 + + + +86400 + + + + + + + + + + + +0 + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + +1 + + + +0 + + + + +80 + + + + +443 + + + +5 + + + + + + + + + + + +0 + + + + + + + +0 + + + + + + + + + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + + + + + + + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + +{if isset($gs_phonebook_download_interval)} +{$gs_phonebook_download_interval} +{else} +0 +{/if} + + + + +1 + + + + +1 + + + + +{if isset($contact_grandstream)} +2 +{else} +0 +{/if} + + + + +0 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_name_filter} + + + + +3 + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + +givenName sn title + + + + + +50 + + + + + +30 + + + + +0 + + + +1 + + +1 + + + +givenName sn title + + + + + + + +5004 + + + + +200 + + + + +5204 + + + + +0 + + + + +20 + + + + + + + + + + + + +{if isset($public_mode) } +{if $public_mode|strtolower == 'true'} +1 +{elseif $public_mode|strtolower == 'yes'} +1 +{elseif $public_mode == '1'} +1 +{else} +0 +{/if} +{else} +0 +{/if} + + + +0 + + + + + + + + + + + +30 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +{if isset($gs_auto_attended_transfer) } +{$gs_auto_attended_transfer} +{else} +1 +{/if} + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +10 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +f1=440,f2=480,c=200/400; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440,c=10/10; + + + + +f1=440,f2=480,c=200/400; + + + + +f1=440,f2=440,c=25/525; + + + + +0 + + + + +f1=480,f2=620,c=50/50; + + + + +f1=480,f2=620,c=25/25; + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +{if isset($gs_handset_tx_gain) } +{$gs_handset_tx_gain} +{else} +0 +{/if} + + + + + + + + +100 + + + + +60 + + + + +5 + + + + +0 + + + + + + + + + + +0 + + + + +0 + + + + +1 + + + + + + + + + +{if isset($gs_wallpaper_url)} +1 +{$gs_wallpaper_url} +{else} +0 + +{/if} + + + +#000000 + + + + +0 + + + +0 + + + + +3 + + + + + + + + +0 + + + + + + + +0 + + + + +0 + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + + + + + +1440 + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($grandstream_timezone) } +{$grandstream_timezone} +{elseif isset($gs_gxp_time_zone) } +{$gs_gxp_time_zone} +{else} +auto +{/if} + + + + + +0 + + + + + +PST+8PDT,M3.2.0,M11.1.0 + + + + + + + + + +3 + + + + +0 + + + + + + + + + +1 + + + + +1 + + + + + +1 + + + + + + + + +15 + + + + +c + + + + + +1 + + + + +CAD/USD;CAD/EUR;CAD/GBP;CAD/AUD;CAD/CNY;CAD/JPY + + + + + + + + + + +XMLApp + + + + + + + + +0 + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($gs_bluetooth_power)} +{$gs_bluetooth_power} +{/if} + + + + +{if isset($gs_bluetooth_handsfree)} +{$gs_bluetooth_handsfree} +{/if} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$fixed_keys=4} +{if $template == "grandstream/gxp2130"}{$fixed_keys=3}{/if} +{if $template == "grandstream/gxp2140"}{$fixed_keys=4}{/if} +{if $template == "grandstream/gxp2160"}{$fixed_keys=6}{/if} +{if $template == "grandstream/gxp2170"}{$fixed_keys=12}{/if} +{if $template == "grandstream/gxp2135"}{$fixed_keys=8}{/if} + +{$start_id=1363} +{assign var=key_types value=["none"=>-1,"line"=>0,"shared line"=>1,"speed dial"=>10, "blf"=>11, "presence watcher"=>12, "eventlist blf"=>13,"speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,"transfer"=>18,"call park"=>19,"intercom"=>20,"ldap search"=>21,"multicast paging"=>23,"record"=>24,"call log"=>25,"monitored call park"=>26,"menu"=>27]} + +{for $line=1 to 6} +{$pid=$line*2-2} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +0 +{$line-1} + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + +{$start_id=23800} +{for $line=7 to 32} +{$pid=($line-6)*4-4} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +-1 +0 + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["speed dial"=>10, "speed dial active"=>14,"voicemail"=>16,"call return"=>17,"intercom"=>20,"ldap search"=>21,"menu"=>17]} +{$start_id=2987} +{for $prog=1 to 3} +{$pid=$prog*4-4} +{if isset($keys.programmable.$prog.device_key_category) && isset($keys.programmable.$prog.device_key_type) && $keys.programmable.$prog.device_key_type|in_array:$key_types} +{$key_types[$keys.programmable.$prog.device_key_type]} +{$keys.programmable.$prog.device_key_line} +{$keys.programmable.$prog.device_key_label} +{$keys.programmable.$prog.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=323} +{for $mem=1 to 7} +{$pid=$mem*3-3} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.memory.$mem.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=353} +{for $mem=8 to 18} +{$pid=($mem-7)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=1440} +{for $mem=19 to 24} +{$pid=($mem-18)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{if $template == "grandstream/gxp2140"||$template == "grandstream/gxp2170"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=23000} +{for $exp=1 to 160} +{$pid=$exp*5-5} +{if isset($keys.expansion.$exp.device_key_category) && isset($keys.expansion.$exp.device_key_type) && $keys.expansion.$exp.device_key_type|in_array:$key_types} +{$key_types[$keys.expansion.$exp.device_key_type]} +{$keys.expansion.$exp.device_key_line} +{$keys.expansion.$exp.device_key_label} +{$keys.expansion.$exp.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} +{/if} + diff --git a/resources/templates/provision/grandstream/gxp2140/README.txt b/resources/templates/provision/grandstream/gxp2140/README.txt new file mode 100644 index 0000000000..247da51b2b --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2140/README.txt @@ -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 + + diff --git a/resources/templates/provision/grandstream/gxp2140/label.txt b/resources/templates/provision/grandstream/gxp2140/label.txt new file mode 100644 index 0000000000..be9976d487 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2140/label.txt @@ -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} diff --git a/resources/templates/provision/grandstream/gxp2140/phonebook.xml b/resources/templates/provision/grandstream/gxp2140/phonebook.xml new file mode 100644 index 0000000000..62c745db9f --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2140/phonebook.xml @@ -0,0 +1,49 @@ + + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description|truncate:10} + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +{if $contact.contact_role != "" } +{$contact.contact_role} +{/if} +{if $contact.contact_category != "" } +{$contact.contact_category} +{/if} + +{$contact.contact_work} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} +1 + +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxp2140/{$mac}.xml b/resources/templates/provision/grandstream/gxp2140/{$mac}.xml index 6a8b029e92..52cec2e55e 100644 --- a/resources/templates/provision/grandstream/gxp2140/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2140/{$mac}.xml @@ -1,589 +1,6623 @@ - - - - - - - 1 - - {$display_name_1} - - {$server_address_1} - - - - - - {$user_id_1} - - {$auth_id_1} - - {$user_password_1} - - {$display_name_1} - - *97 - - - 0 - - 0 - - {if $sip_transport_1 == 'udp'}0 - {elseif $sip_transport_1 == 'tcp'}1 - {elseif $sip_transport_1 == 'tls'}2 - {elseif $sip_transport_1 == 'dns srv'}1 - {/if} - - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_2} - - {$server_address_2} - - {$user_id_2} - - {$user_id_2} - - {$user_password_2} - - {$display_name_2} - - *97 - - - 0 - - 4 - - {if $sip_transport_2 == 'udp'}0{/if} - {if $sip_transport_2 == 'tcp'}1{/if} - {if $sip_transport_2 == 'tls'}2{/if} - {if $sip_transport_2 == 'dns srv'}1{/if} - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_3} - - {$server_address_3} - - {$user_id_3} - - {$user_id_3} - - {$user_password_3} - - {$display_name_3} - - *97 - - - 0 - - 4 - - {if $sip_transport_3 == 'udp'}0{/if} - {if $sip_transport_3 == 'tcp'}1{/if} - {if $sip_transport_3 == 'tls'}2{/if} - {if $sip_transport_3 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_4} - - {$server_address_4} - - {$user_id_4} - - {$user_id_4} - - {$user_password_4} - - {$display_name_4} - - *97 - - - 0 - - 4 - - {if $sip_transport_4 == 'udp'}0{/if} - {if $sip_transport_4 == 'tcp'}1{/if} - {if $sip_transport_4 == 'tls'}2{/if} - {if $sip_transport_4 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_5} - - {$server_address_5} - - {$user_id_5} - - {$user_id_5} - - {$user_password_5} - - {$display_name_5} - - *97 - - 4 - - - {if $sip_transport_5 == 'udp'}0{/if} - {if $sip_transport_5 == 'tcp'}1{/if} - {if $sip_transport_5 == 'tls'}2{/if} - {if $sip_transport_5 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - 60 - - - - 1 - - {$display_name_6} - - {$server_address_6} - - {$user_id_6} - - {$user_id_6} - - {$user_password_6} - - {$display_name_6} - - *97 - - - 4 - - {if $sip_transport_6 == 'udp'}0{/if} - {if $sip_transport_6 == 'tcp'}1{/if} - {if $sip_transport_6 == 'tls'}2{/if} - {if $sip_transport_6 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 60 - - - 0 - - 0 - - - phone-{$display_name_1} - - 0 - - - - {$user_password} - - {$admin_password} - - - - - - 0 - - - - {$http_auth_username} - - {$http_auth_password} - - 2 - - {$domain_name}{$project_path}/app/provision - - {$domain_name}{$project_path}/app/provision - - 0 - - - 0 - - 0 - - 10080 - - 1 - - 1 - - 0 - - - - - 0 - - 0 - - - 0 - - 1 - - 0 - - {if isset($public_mode) } - {if $public_mode|strtolower == 'true'} - 1 - {elseif $public_mode|strtolower == 'yes'} - 1 - {elseif $public_mode == '1'} - 1 - {else} - 0 - {/if} - {else} - 0 - {/if} - - - 0 - - 0 - - - 0 - - - - - - - - 1 - - 0 - - - 100 - - 40 - - 7 - - - - 0 - - 0 - - 1 - - - - us.pool.ntp.org - - - 1 - -{if isset($grandstream_timezone) } - {$grandstream_timezone} - {else} - auto - {/if} - - - - 1 - a - - - 1 - - - - 15 - - - auto - - - 0 - - - 0 - - - - - - - -{foreach $keys["line"] as $row} -{$key_id = $row.device_key_id - 1} - -{if $key_id < 4} -{$start_id = 1363} -{$type_id = $start_id + ($key_id * 2)} -{$line_id = ($start_id + 1) + ($key_id * 2)} -{$label_id = ($start_id + 102) + ($key_id * 2)} -{$value_id = ($start_id + 103) + ($key_id * 2)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 7} -{$start_id = 1363} -{$type_id = $start_id + ($key_id * 2)} -{$line_id = ($start_id + 1) + ($key_id * 2)} -{$label_id = ($start_id + 102) + ($key_id * 2)} -{$value_id = ($start_id + 103) + ($key_id * 2)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 24} -{$start_id = 23824} -{$type_id = $start_id + (($key_id - 12) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 12) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 12) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 12) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} +{$mac|replace:'-':''} + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 {/if} -{/foreach} - - - -{$start_id = 23000} -{foreach $keys["expansion"] as $row} -{$key_id = $row.device_key_id - 1} -{$type_id = $start_id + ($key_id * 5)} -{$line_id = ($start_id + 1) + ($key_id * 5)} -{$label_id = ($start_id + 2) + ($key_id * 5)} -{$value_id = ($start_id + 3) + ($key_id * 5)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} + + +{$display_name_1} - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} -{/foreach} + + +{$server_address_1} - + + +{$secondary_server_address_1} + + + +{$outbound_proxy_1} + + + + + + + + + + + +{$user_id_1} + + + +{$auth_id_1} + + + +{$user_password_1} + + + +{$display_name_1} + + + +*97 + + + + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_1) } +{$nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5060 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +123 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +2 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +123 + + + + +101 + + + + +0 + + + + +1 + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{/if} + + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +0 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$display_name_2} + + + +{$server_address_2} + + + + + + + +{$outbound_proxy_2} + + + + + + + + + + + +{$user_id_2} + + + +{$auth_id_2} + + + +{$user_password_2} + + + +{$display_name_2} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_2) } +{$gs_dns_modee_2} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_2) } +{$nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5062 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_2)||$gs_account_ring_tone_2==0} +{$gs_account_ring_tone_2} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*79 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + + +{$display_name_3} + + + +{$server_address_3} + + + + + + + +{$outbound_proxy_3} + + + + + + + + + + + +{$user_id_3} + + + +{$auth_id_3} + + + +{$user_password_3} + + + +{$display_name_3} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_3) } +{$gs_dns_modee_3} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_3) } +{$nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5064 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_3)||$gs_account_ring_tone_3==0} +{$gs_account_ring_tone_3} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + + +{$display_name_4} + + + +{$server_address_4} + + + + + + + +{$outbound_proxy_4} + + + + + + + + + + + +{$user_id_4} + + + +{$auth_id_4} + + + +{$user_password_4} + + + +{$display_name_4} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_4) } +{$gs_dns_modee_4} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_4) } +{$nat_traversal_4} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5066 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_4)||$gs_account_ring_tone_4==0} +{$gs_account_ring_tone_4} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_5)} +1 +{else} +0 +{/if} + + + +{$display_name_5} + + + +{$server_address_5} + + + + + + + +{$outbound_proxy_5} + + + + + + + + + + + +{$user_id_5} + + + +{$auth_id_5} + + + +{$user_password_5} + + + +{$display_name_5} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_5) } +{$gs_dns_modee_5} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_5) } +{$nat_traversal_5} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5068 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_5 == 'udp'}{$tp=0}{/if} +{if $sip_transport_5 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_5 == 'tls'}{$tp=2}{/if} +{if $sip_transport_5 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_5)||$gs_account_ring_tone_5==0} +{$gs_account_ring_tone_5} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_6)} +1 +{else} +0 +{/if} + + + +{$display_name_6} + + + +{$server_address_6} + + + + + + + +{$outbound_proxy_6} + + + + + + + + + + + +{$user_id_6} + + + +{$auth_id_6} + + + +{$user_password_6} + + + +{$display_name_6} + + + +*97 + + + + + + + + +{if isset($gs_dns_modee_6) } +{$gs_dns_modee_6} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_6) } +{$nat_traversal_6} +{else} +0 +{/if} + + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5070 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_6 == 'udp'}{$tp=0}{/if} +{if $sip_transport_6 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_6 == 'tls'}{$tp=2}{/if} +{if $sip_transport_6 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_6)||$gs_account_ring_tone_6==0} +{$gs_account_ring_tone_6} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + +26 + + + + +46 + + + + +0 + + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + + +0 + + + + +1 + + + + +30 + + + + +0 + + + + + + + +0 + + + + + + + + +1194 + + + + +0 + + + + + + + +{$user_password} + + + +{$admin_password} + + + + + + + + + + + +0 + + + + + + + +{$http_auth_username} + + + +{$http_auth_password} + + + + +0 + + + + +2 + + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + + + + + + +1 + + + + +0 + + + + + +0 + + + + +1 + + + + + + + + + +0 + + + + +10080 + + + +1 + + + +1 + + + + +0 + + + + +0 + + + + + + +{$gs_syslog_server} + + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + +1 + + + + + + + + + + + + + + + +Auto + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + +0 + + + +86400 + + + + + + + + + + + +0 + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + +1 + + + +0 + + + + +80 + + + + +443 + + + +5 + + + + + + + + + + + +0 + + + + + + + +0 + + + + + + + + + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + + + + + + + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + +{if isset($gs_phonebook_download_interval)} +{$gs_phonebook_download_interval} +{else} +0 +{/if} + + + + +1 + + + + +1 + + + + +{if isset($contact_grandstream)} +2 +{else} +0 +{/if} + + + + +0 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_name_filter} + + + + +3 + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + +givenName sn title + + + + + +50 + + + + + +30 + + + + +0 + + + +1 + + +1 + + + +givenName sn title + + + + + + + +5004 + + + + +200 + + + + +5204 + + + + +0 + + + + +20 + + + + + + + + + + + + +{if isset($public_mode) } +{if $public_mode|strtolower == 'true'} +1 +{elseif $public_mode|strtolower == 'yes'} +1 +{elseif $public_mode == '1'} +1 +{else} +0 +{/if} +{else} +0 +{/if} + + + +0 + + + + + + + + + + + +30 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +{if isset($gs_auto_attended_transfer) } +{$gs_auto_attended_transfer} +{else} +1 +{/if} + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +10 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +f1=440,f2=480,c=200/400; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440,c=10/10; + + + + +f1=440,f2=480,c=200/400; + + + + +f1=440,f2=440,c=25/525; + + + + +0 + + + + +f1=480,f2=620,c=50/50; + + + + +f1=480,f2=620,c=25/25; + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +{if isset($gs_handset_tx_gain) } +{$gs_handset_tx_gain} +{else} +0 +{/if} + + + + + + + + +100 + + + + +60 + + + + +5 + + + + +0 + + + + + + + + + + +0 + + + + +0 + + + + +1 + + + + + + + + + +{if isset($gs_wallpaper_url)} +1 +{$gs_wallpaper_url} +{else} +0 + +{/if} + + + +#000000 + + + + +0 + + + +0 + + + + +3 + + + + + + + + +0 + + + + + + + +0 + + + + +0 + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + + + + + +1440 + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($grandstream_timezone) } +{$grandstream_timezone} +{elseif isset($gs_gxp_time_zone) } +{$gs_gxp_time_zone} +{else} +auto +{/if} + + + + + +0 + + + + + +PST+8PDT,M3.2.0,M11.1.0 + + + + + + + + + +3 + + + + +0 + + + + + + + + + +1 + + + + +1 + + + + + +1 + + + + + + + + +15 + + + + +c + + + + + +1 + + + + +CAD/USD;CAD/EUR;CAD/GBP;CAD/AUD;CAD/CNY;CAD/JPY + + + + + + + + + + +XMLApp + + + + + + + + +0 + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($gs_bluetooth_power)} +{$gs_bluetooth_power} +{/if} + + + + +{if isset($gs_bluetooth_handsfree)} +{$gs_bluetooth_handsfree} +{/if} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$fixed_keys=4} +{if $template == "grandstream/gxp2130"}{$fixed_keys=3}{/if} +{if $template == "grandstream/gxp2140"}{$fixed_keys=4}{/if} +{if $template == "grandstream/gxp2160"}{$fixed_keys=6}{/if} +{if $template == "grandstream/gxp2170"}{$fixed_keys=12}{/if} +{if $template == "grandstream/gxp2135"}{$fixed_keys=8}{/if} + +{$start_id=1363} +{assign var=key_types value=["none"=>-1,"line"=>0,"shared line"=>1,"speed dial"=>10, "blf"=>11, "presence watcher"=>12, "eventlist blf"=>13,"speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,"transfer"=>18,"call park"=>19,"intercom"=>20,"ldap search"=>21,"multicast paging"=>23,"record"=>24,"call log"=>25,"monitored call park"=>26,"menu"=>27]} + +{for $line=1 to 6} +{$pid=$line*2-2} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +0 +{$line-1} + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + +{$start_id=23800} +{for $line=7 to 32} +{$pid=($line-6)*4-4} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +-1 +0 + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["speed dial"=>10, "speed dial active"=>14,"voicemail"=>16,"call return"=>17,"intercom"=>20,"ldap search"=>21,"menu"=>17]} +{$start_id=2987} +{for $prog=1 to 3} +{$pid=$prog*4-4} +{if isset($keys.programmable.$prog.device_key_category) && isset($keys.programmable.$prog.device_key_type) && $keys.programmable.$prog.device_key_type|in_array:$key_types} +{$key_types[$keys.programmable.$prog.device_key_type]} +{$keys.programmable.$prog.device_key_line} +{$keys.programmable.$prog.device_key_label} +{$keys.programmable.$prog.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=323} +{for $mem=1 to 7} +{$pid=$mem*3-3} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.memory.$mem.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=353} +{for $mem=8 to 18} +{$pid=($mem-7)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=1440} +{for $mem=19 to 24} +{$pid=($mem-18)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{if $template == "grandstream/gxp2140"||$template == "grandstream/gxp2170"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=23000} +{for $exp=1 to 160} +{$pid=$exp*5-5} +{if isset($keys.expansion.$exp.device_key_category) && isset($keys.expansion.$exp.device_key_type) && $keys.expansion.$exp.device_key_type|in_array:$key_types} +{$key_types[$keys.expansion.$exp.device_key_type]} +{$keys.expansion.$exp.device_key_line} +{$keys.expansion.$exp.device_key_label} +{$keys.expansion.$exp.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} +{/if} + diff --git a/resources/templates/provision/grandstream/gxp2160/README.txt b/resources/templates/provision/grandstream/gxp2160/README.txt new file mode 100644 index 0000000000..247da51b2b --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2160/README.txt @@ -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 + + diff --git a/resources/templates/provision/grandstream/gxp2160/gxp2160_labels.ott b/resources/templates/provision/grandstream/gxp2160/gxp2160_labels.ott new file mode 100644 index 0000000000000000000000000000000000000000..7226636f93e73ee8aeaf9d8d52317c185bac1360 GIT binary patch literal 27274 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 + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description|truncate:10} + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +{if $contact.contact_role != "" } +{$contact.contact_role} +{/if} +{if $contact.contact_category != "" } +{$contact.contact_category} +{/if} + +{$contact.contact_work} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} +1 + +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxp2160/{$mac}.xml b/resources/templates/provision/grandstream/gxp2160/{$mac}.xml index 31fdb2aa45..52cec2e55e 100644 --- a/resources/templates/provision/grandstream/gxp2160/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2160/{$mac}.xml @@ -1,615 +1,6623 @@ - - - - - - - 1 - - {$display_name_1} - - {$server_address_1} - - - - - - {$user_id_1} - - {$auth_id_1} - - {$user_password_1} - - {$display_name_1} - - *97 - - - 0 - - 0 - - {if $sip_transport_1 == 'udp'}0 - {elseif $sip_transport_1 == 'tcp'}1 - {elseif $sip_transport_1 == 'tls'}2 - {elseif $sip_transport_1 == 'dns srv'}1 - {/if} +{$mac|replace:'-':''} + + + + - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_2} - - {$server_address_2} - - {$user_id_2} - - {$user_id_2} - - {$user_password_2} - - {$display_name_2} - - *97 - - - 0 - - 4 - - {if $sip_transport_2 == 'udp'}0{/if} - {if $sip_transport_2 == 'tcp'}1{/if} - {if $sip_transport_2 == 'tls'}2{/if} - {if $sip_transport_2 == 'dns srv'}1{/if} - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_3} - - {$server_address_3} - - {$user_id_3} - - {$user_id_3} - - {$user_password_3} - - {$display_name_3} - - *97 - - - 0 - - 4 - - {if $sip_transport_3 == 'udp'}0{/if} - {if $sip_transport_3 == 'tcp'}1{/if} - {if $sip_transport_3 == 'tls'}2{/if} - {if $sip_transport_3 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_4} - - {$server_address_4} - - {$user_id_4} - - {$user_id_4} - - {$user_password_4} - - {$display_name_4} - - *97 - - - 0 - - 4 - - {if $sip_transport_4 == 'udp'}0{/if} - {if $sip_transport_4 == 'tcp'}1{/if} - {if $sip_transport_4 == 'tls'}2{/if} - {if $sip_transport_4 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_5} - - {$server_address_5} - - {$user_id_5} - - {$user_id_5} - - {$user_password_5} - - {$display_name_5} - - *97 - - 4 - + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 +{/if} - {if $sip_transport_5 == 'udp'}0{/if} - {if $sip_transport_5 == 'tcp'}1{/if} - {if $sip_transport_5 == 'tls'}2{/if} - {if $sip_transport_5 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - 60 - - - - 1 - - {$display_name_6} - - {$server_address_6} - - {$user_id_6} - - {$user_id_6} - - {$user_password_6} - - {$display_name_6} - - *97 - - - 4 - - {if $sip_transport_6 == 'udp'}0{/if} - {if $sip_transport_6 == 'tcp'}1{/if} - {if $sip_transport_6 == 'tls'}2{/if} - {if $sip_transport_6 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 60 - - - 0 - - 0 - - - phone-{$display_name_1} - - 0 - - - - {$user_password} - - {$admin_password} - - - - - - 0 - - - - {$http_auth_username} - - {$http_auth_password} - - 2 - - {$domain_name}{$project_path}/app/provision - - {$domain_name}{$project_path}/app/provision - - 0 - - - 0 - - 0 - - 10080 - - 1 - - 1 - - 0 - - - - - 0 - - 0 - - - 0 - - 1 - - 0 - - {if isset($public_mode) } - {if $public_mode|strtolower == 'true'} - 1 - {elseif $public_mode|strtolower == 'yes'} - 1 - {elseif $public_mode == '1'} - 1 - {else} - 0 - {/if} - {else} - 0 - {/if} - - - 0 - - 0 - - - 0 - - - - - - - - 1 - - 0 - - - 100 - - 40 - - 7 - - - - 0 - - 0 - - 1 - - - - us.pool.ntp.org - - - 1 - + + +{$display_name_1} + + + +{$server_address_1} + + + +{$secondary_server_address_1} + + + +{$outbound_proxy_1} + + + + + + + + + + + +{$user_id_1} + + + +{$auth_id_1} + + + +{$user_password_1} + + + +{$display_name_1} + + + +*97 + + + + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_1) } +{$nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5060 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +123 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +2 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +123 + + + + +101 + + + + +0 + + + + +1 + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{/if} + + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +0 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$display_name_2} + + + +{$server_address_2} + + + + + + + +{$outbound_proxy_2} + + + + + + + + + + + +{$user_id_2} + + + +{$auth_id_2} + + + +{$user_password_2} + + + +{$display_name_2} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_2) } +{$gs_dns_modee_2} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_2) } +{$nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5062 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_2)||$gs_account_ring_tone_2==0} +{$gs_account_ring_tone_2} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*79 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + + +{$display_name_3} + + + +{$server_address_3} + + + + + + + +{$outbound_proxy_3} + + + + + + + + + + + +{$user_id_3} + + + +{$auth_id_3} + + + +{$user_password_3} + + + +{$display_name_3} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_3) } +{$gs_dns_modee_3} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_3) } +{$nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5064 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_3)||$gs_account_ring_tone_3==0} +{$gs_account_ring_tone_3} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + + +{$display_name_4} + + + +{$server_address_4} + + + + + + + +{$outbound_proxy_4} + + + + + + + + + + + +{$user_id_4} + + + +{$auth_id_4} + + + +{$user_password_4} + + + +{$display_name_4} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_4) } +{$gs_dns_modee_4} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_4) } +{$nat_traversal_4} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5066 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_4)||$gs_account_ring_tone_4==0} +{$gs_account_ring_tone_4} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_5)} +1 +{else} +0 +{/if} + + + +{$display_name_5} + + + +{$server_address_5} + + + + + + + +{$outbound_proxy_5} + + + + + + + + + + + +{$user_id_5} + + + +{$auth_id_5} + + + +{$user_password_5} + + + +{$display_name_5} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_5) } +{$gs_dns_modee_5} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_5) } +{$nat_traversal_5} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5068 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_5 == 'udp'}{$tp=0}{/if} +{if $sip_transport_5 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_5 == 'tls'}{$tp=2}{/if} +{if $sip_transport_5 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_5)||$gs_account_ring_tone_5==0} +{$gs_account_ring_tone_5} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_6)} +1 +{else} +0 +{/if} + + + +{$display_name_6} + + + +{$server_address_6} + + + + + + + +{$outbound_proxy_6} + + + + + + + + + + + +{$user_id_6} + + + +{$auth_id_6} + + + +{$user_password_6} + + + +{$display_name_6} + + + +*97 + + + + + + + + +{if isset($gs_dns_modee_6) } +{$gs_dns_modee_6} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_6) } +{$nat_traversal_6} +{else} +0 +{/if} + + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5070 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_6 == 'udp'}{$tp=0}{/if} +{if $sip_transport_6 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_6 == 'tls'}{$tp=2}{/if} +{if $sip_transport_6 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_6)||$gs_account_ring_tone_6==0} +{$gs_account_ring_tone_6} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + +26 + + + + +46 + + + + +0 + + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + + +0 + + + + +1 + + + + +30 + + + + +0 + + + + + + + +0 + + + + + + + + +1194 + + + + +0 + + + + + + + +{$user_password} + + + +{$admin_password} + + + + + + + + + + + +0 + + + + + + + +{$http_auth_username} + + + +{$http_auth_password} + + + + +0 + + + + +2 + + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + + + + + + +1 + + + + +0 + + + + + +0 + + + + +1 + + + + + + + + + +0 + + + + +10080 + + + +1 + + + +1 + + + + +0 + + + + +0 + + + + + + +{$gs_syslog_server} + + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + +1 + + + + + + + + + + + + + + + +Auto + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + +0 + + + +86400 + + + + + + + + + + + +0 + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + +1 + + + +0 + + + + +80 + + + + +443 + + + +5 + + + + + + + + + + + +0 + + + + + + + +0 + + + + + + + + + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + + + + + + + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + +{if isset($gs_phonebook_download_interval)} +{$gs_phonebook_download_interval} +{else} +0 +{/if} + + + + +1 + + + + +1 + + + + +{if isset($contact_grandstream)} +2 +{else} +0 +{/if} + + + + +0 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_name_filter} + + + + +3 + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + +givenName sn title + + + + + +50 + + + + + +30 + + + + +0 + + + +1 + + +1 + + + +givenName sn title + + + + + + + +5004 + + + + +200 + + + + +5204 + + + + +0 + + + + +20 + + + + + + + + + + + + +{if isset($public_mode) } +{if $public_mode|strtolower == 'true'} +1 +{elseif $public_mode|strtolower == 'yes'} +1 +{elseif $public_mode == '1'} +1 +{else} +0 +{/if} +{else} +0 +{/if} + + + +0 + + + + + + + + + + + +30 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +{if isset($gs_auto_attended_transfer) } +{$gs_auto_attended_transfer} +{else} +1 +{/if} + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +10 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +f1=440,f2=480,c=200/400; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440,c=10/10; + + + + +f1=440,f2=480,c=200/400; + + + + +f1=440,f2=440,c=25/525; + + + + +0 + + + + +f1=480,f2=620,c=50/50; + + + + +f1=480,f2=620,c=25/25; + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +{if isset($gs_handset_tx_gain) } +{$gs_handset_tx_gain} +{else} +0 +{/if} + + + + + + + + +100 + + + + +60 + + + + +5 + + + + +0 + + + + + + + + + + +0 + + + + +0 + + + + +1 + + + + + + + + + +{if isset($gs_wallpaper_url)} +1 +{$gs_wallpaper_url} +{else} +0 + +{/if} + + + +#000000 + + + + +0 + + + +0 + + + + +3 + + + + + + + + +0 + + + + + + + +0 + + + + +0 + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + + + + + +1440 + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {if isset($grandstream_timezone) } - {$grandstream_timezone} - {else} - auto - {/if} - - - - 1 - a - - - 1 - - - - 15 - - - auto - - - 0 - - - 0 - - - - - - - -{foreach $keys["line"] as $row} -{$key_id = $row.device_key_id - 1} - -{if $key_id < 6} -{$start_id = 1363} -{$type_id = $start_id + ($key_id * 2)} -{$line_id = ($start_id + 1) + ($key_id * 2)} -{$label_id = ($start_id + 102) + ($key_id * 2)} -{$value_id = ($start_id + 103) + ($key_id * 2)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 24} -{$start_id = 23800} -{$type_id = $start_id + (($key_id - 6) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 6) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 6) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 6) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - - +{$grandstream_timezone} +{elseif isset($gs_gxp_time_zone) } +{$gs_gxp_time_zone} +{else} +auto {/if} -{/foreach} - - + + + + +0 -{foreach $keys["memory"] as $row} -{$key_id = $row.device_key_id - 1} + + + + +PST+8PDT,M3.2.0,M11.1.0 -{if $key_id < 7} -{$start_id = 301} -{$type_id = $start_id + 22 + ($key_id)} -{$line_id = ($start_id) + ($key_id * 3)} -{$label_id = ($start_id + 1) + ($key_id * 3)} -{$value_id = ($start_id + 2) + ($key_id * 3)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} + + + + + + + + +3 - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} + + + +0 -{elseif $key_id < 18} -{$start_id = 353} -{$type_id = $start_id + (($key_id - 7) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 7) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 7) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 7) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} + + + + -{elseif $key_id < 24} -{$start_id = 1440} -{$type_id = $start_id + ($key_id * 4)} -{$line_id = ($start_id + 1) + ($key_id * 4)} -{$label_id = ($start_id + 2) + ($key_id * 4)} -{$value_id = ($start_id + 3) + ($key_id * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} + + + +1 + + + +1 + + + + +1 + + + + + + + + +15 + + + + +c + + + + + +1 + + + + +CAD/USD;CAD/EUR;CAD/GBP;CAD/AUD;CAD/CNY;CAD/JPY + + + + + + + + + + +XMLApp + + + + + + + + +0 + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($gs_bluetooth_power)} +{$gs_bluetooth_power} {/if} -{/foreach} + + + + +{if isset($gs_bluetooth_handsfree)} +{$gs_bluetooth_handsfree} +{/if} + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$fixed_keys=4} +{if $template == "grandstream/gxp2130"}{$fixed_keys=3}{/if} +{if $template == "grandstream/gxp2140"}{$fixed_keys=4}{/if} +{if $template == "grandstream/gxp2160"}{$fixed_keys=6}{/if} +{if $template == "grandstream/gxp2170"}{$fixed_keys=12}{/if} +{if $template == "grandstream/gxp2135"}{$fixed_keys=8}{/if} + +{$start_id=1363} +{assign var=key_types value=["none"=>-1,"line"=>0,"shared line"=>1,"speed dial"=>10, "blf"=>11, "presence watcher"=>12, "eventlist blf"=>13,"speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,"transfer"=>18,"call park"=>19,"intercom"=>20,"ldap search"=>21,"multicast paging"=>23,"record"=>24,"call log"=>25,"monitored call park"=>26,"menu"=>27]} + +{for $line=1 to 6} +{$pid=$line*2-2} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +0 +{$line-1} + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + +{$start_id=23800} +{for $line=7 to 32} +{$pid=($line-6)*4-4} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +-1 +0 + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["speed dial"=>10, "speed dial active"=>14,"voicemail"=>16,"call return"=>17,"intercom"=>20,"ldap search"=>21,"menu"=>17]} +{$start_id=2987} +{for $prog=1 to 3} +{$pid=$prog*4-4} +{if isset($keys.programmable.$prog.device_key_category) && isset($keys.programmable.$prog.device_key_type) && $keys.programmable.$prog.device_key_type|in_array:$key_types} +{$key_types[$keys.programmable.$prog.device_key_type]} +{$keys.programmable.$prog.device_key_line} +{$keys.programmable.$prog.device_key_label} +{$keys.programmable.$prog.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=323} +{for $mem=1 to 7} +{$pid=$mem*3-3} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.memory.$mem.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=353} +{for $mem=8 to 18} +{$pid=($mem-7)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=1440} +{for $mem=19 to 24} +{$pid=($mem-18)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{if $template == "grandstream/gxp2140"||$template == "grandstream/gxp2170"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=23000} +{for $exp=1 to 160} +{$pid=$exp*5-5} +{if isset($keys.expansion.$exp.device_key_category) && isset($keys.expansion.$exp.device_key_type) && $keys.expansion.$exp.device_key_type|in_array:$key_types} +{$key_types[$keys.expansion.$exp.device_key_type]} +{$keys.expansion.$exp.device_key_line} +{$keys.expansion.$exp.device_key_label} +{$keys.expansion.$exp.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} +{/if} + diff --git a/resources/templates/provision/grandstream/gxp2170/README.txt b/resources/templates/provision/grandstream/gxp2170/README.txt new file mode 100644 index 0000000000..247da51b2b --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2170/README.txt @@ -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 + + diff --git a/resources/templates/provision/grandstream/gxp2170/label.txt b/resources/templates/provision/grandstream/gxp2170/label.txt new file mode 100644 index 0000000000..be9976d487 --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2170/label.txt @@ -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} diff --git a/resources/templates/provision/grandstream/gxp2170/phonebook.xml b/resources/templates/provision/grandstream/gxp2170/phonebook.xml new file mode 100644 index 0000000000..62c745db9f --- /dev/null +++ b/resources/templates/provision/grandstream/gxp2170/phonebook.xml @@ -0,0 +1,49 @@ + + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description|truncate:10} + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +{if $contact.contact_role != "" } +{$contact.contact_role} +{/if} +{if $contact.contact_category != "" } +{$contact.contact_category} +{/if} + +{$contact.contact_work} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} +1 + +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxp2170/{$mac}.xml b/resources/templates/provision/grandstream/gxp2170/{$mac}.xml index b62359d1d2..52cec2e55e 100644 --- a/resources/templates/provision/grandstream/gxp2170/{$mac}.xml +++ b/resources/templates/provision/grandstream/gxp2170/{$mac}.xml @@ -1,589 +1,6623 @@ - - - - - - - 1 - - {$display_name_1} - - {$server_address_1} - - - - - - {$user_id_1} - - {$auth_id_1} - - {$user_password_1} - - {$display_name_1} - - *97 - - - 0 - - 0 - - {if $sip_transport_1 == 'udp'}0 - {elseif $sip_transport_1 == 'tcp'}1 - {elseif $sip_transport_1 == 'tls'}2 - {elseif $sip_transport_1 == 'dns srv'}1 - {/if} - - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_2} - - {$server_address_2} - - {$user_id_2} - - {$user_id_2} - - {$user_password_2} - - {$display_name_2} - - *97 - - - 0 - - 4 - - {if $sip_transport_2 == 'udp'}0{/if} - {if $sip_transport_2 == 'tcp'}1{/if} - {if $sip_transport_2 == 'tls'}2{/if} - {if $sip_transport_2 == 'dns srv'}1{/if} - - ** - - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_3} - - {$server_address_3} - - {$user_id_3} - - {$user_id_3} - - {$user_password_3} - - {$display_name_3} - - *97 - - - 0 - - 4 - - {if $sip_transport_3 == 'udp'}0{/if} - {if $sip_transport_3 == 'tcp'}1{/if} - {if $sip_transport_3 == 'tls'}2{/if} - {if $sip_transport_3 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - - 0 - - 0 - - - - - 0 - - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_4} - - {$server_address_4} - - {$user_id_4} - - {$user_id_4} - - {$user_password_4} - - {$display_name_4} - - *97 - - - 0 - - 4 - - {if $sip_transport_4 == 'udp'}0{/if} - {if $sip_transport_4 == 'tcp'}1{/if} - {if $sip_transport_4 == 'tls'}2{/if} - {if $sip_transport_4 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 1 - - - - 1 - - {$display_name_5} - - {$server_address_5} - - {$user_id_5} - - {$user_id_5} - - {$user_password_5} - - {$display_name_5} - - *97 - - 4 - - - {if $sip_transport_5 == 'udp'}0{/if} - {if $sip_transport_5 == 'tcp'}1{/if} - {if $sip_transport_5 == 'tls'}2{/if} - {if $sip_transport_5 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - 60 - - - - 1 - - {$display_name_6} - - {$server_address_6} - - {$user_id_6} - - {$user_id_6} - - {$user_password_6} - - {$display_name_6} - - *97 - - - 4 - - {if $sip_transport_6 == 'udp'}0{/if} - {if $sip_transport_6 == 'tcp'}1{/if} - {if $sip_transport_6 == 'tls'}2{/if} - {if $sip_transport_6 == 'dns srv'}1{/if} - - ** - - { x+ | \+x+ | *x+ | *xx*x+ | \p\a\r\k\+*x+ } - - 0 - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - 60 - - - 0 - - 0 - - - phone-{$display_name_1} - - 0 - - - - {$user_password} - - {$admin_password} - - - - - - 0 - - - - {$http_auth_username} - - {$http_auth_password} - - 2 - - {$domain_name}{$project_path}/app/provision - - {$domain_name}{$project_path}/app/provision - - 0 - - - 0 - - 0 - - 10080 - - 1 - - 1 - - 0 - - - - - 0 - - 0 - - - 0 - - 1 - - 0 - - {if isset($public_mode) } - {if $public_mode|strtolower == 'true'} - 1 - {elseif $public_mode|strtolower == 'yes'} - 1 - {elseif $public_mode == '1'} - 1 - {else} - 0 - {/if} - {else} - 0 - {/if} - - - 0 - - 0 - - - 0 - - - - - - - - 1 - - 0 - - - 100 - - 40 - - 7 - - - - 0 - - 0 - - 1 - - - - us.pool.ntp.org - - - 1 - -{if isset($grandstream_timezone) } - {$grandstream_timezone} - {else} - auto - {/if} - - - - 1 - a - - - 1 - - - - 15 - - - auto - - - 0 - - - 0 - - - - - - - -{foreach $keys["line"] as $row} -{$key_id = $row.device_key_id - 1} - -{if $key_id < 6} -{$start_id = 1363} -{$type_id = $start_id + ($key_id * 2)} -{$line_id = ($start_id + 1) + ($key_id * 2)} -{$label_id = ($start_id + 102) + ($key_id * 2)} -{$value_id = ($start_id + 103) + ($key_id * 2)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 12} -{$start_id = 23800} -{$type_id = $start_id + (($key_id - 6) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 6) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 6) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 6) * 4)} -{if $row.device_key_type == "speed dial"} 10{/if} -{if $row.device_key_type == "blf"} 11{/if} -{if $row.device_key_type == "presence watcher"} 12{/if} -{if $row.device_key_type == "eventlist blf"} 13{/if} -{if $row.device_key_type == "speed dial active"} 14{/if} -{if $row.device_key_type == "dial dtmf"} 15{/if} -{if $row.device_key_type == "voicemail"} 16{/if} -{if $row.device_key_type == "call return"} 17{/if} -{if $row.device_key_type == "transfer"} 18{/if} -{if $row.device_key_type == "call park"} 26{/if} -{if $row.device_key_type == "intercom"} 20{/if} -{if $row.device_key_type == "ldap search"} 21{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} - -{elseif $key_id < 48} -{$start_id = 23824} -{$type_id = $start_id + (($key_id - 12) * 4)} -{$line_id = ($start_id + 1) + (($key_id - 12) * 4)} -{$label_id = ($start_id + 2) + (($key_id - 12) * 4)} -{$value_id = ($start_id + 3) + (($key_id - 12) * 4)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} - - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} +{$mac|replace:'-':''} + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 {/if} -{/foreach} - - - -{$start_id = 23000} -{foreach $keys["expansion"] as $row} -{$key_id = $row.device_key_id - 1} -{$type_id = $start_id + ($key_id * 5)} -{$line_id = ($start_id + 1) + ($key_id * 5)} -{$label_id = ($start_id + 2) + ($key_id * 5)} -{$value_id = ($start_id + 3) + ($key_id * 5)} -{if $row.device_key_type == "speed dial"} 0{/if} -{if $row.device_key_type == "blf"} 1{/if} -{if $row.device_key_type == "presence watcher"} 2{/if} -{if $row.device_key_type == "eventlist blf"} 3{/if} -{if $row.device_key_type == "speed dial active"} 4{/if} -{if $row.device_key_type == "dial dtmf"} 5{/if} -{if $row.device_key_type == "voicemail"} 6{/if} -{if $row.device_key_type == "call return"} 7{/if} -{if $row.device_key_type == "transfer"} 8{/if} -{if $row.device_key_type == "call park"} 16{/if} -{if $row.device_key_type == "intercom"} 10{/if} -{if $row.device_key_type == "ldap search"} 11{/if} + + +{$display_name_1} - {$row.device_key_line} - {$row.device_key_label} - {$row.device_key_value} -{/foreach} + + +{$server_address_1} - + + +{$secondary_server_address_1} + + + +{$outbound_proxy_1} + + + + + + + + + + + +{$user_id_1} + + + +{$auth_id_1} + + + +{$user_password_1} + + + +{$display_name_1} + + + +*97 + + + + + + + +{if isset($gs_dns_mode_1) } +{$gs_dns_mode_1} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_1) } +{$nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5060 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +123 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +2 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +123 + + + + +101 + + + + +0 + + + + +1 + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{/if} + + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +0 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + +20 + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + + +{$display_name_2} + + + +{$server_address_2} + + + + + + + +{$outbound_proxy_2} + + + + + + + + + + + +{$user_id_2} + + + +{$auth_id_2} + + + +{$user_password_2} + + + +{$display_name_2} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_2) } +{$gs_dns_modee_2} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_2) } +{$nat_traversal_2} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5062 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_2)||$gs_account_ring_tone_2==0} +{$gs_account_ring_tone_2} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*79 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + + +{$display_name_3} + + + +{$server_address_3} + + + + + + + +{$outbound_proxy_3} + + + + + + + + + + + +{$user_id_3} + + + +{$auth_id_3} + + + +{$user_password_3} + + + +{$display_name_3} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_3) } +{$gs_dns_modee_3} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_3) } +{$nat_traversal_3} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5064 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_3)||$gs_account_ring_tone_3==0} +{$gs_account_ring_tone_3} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + + +{$display_name_4} + + + +{$server_address_4} + + + + + + + +{$outbound_proxy_4} + + + + + + + + + + + +{$user_id_4} + + + +{$auth_id_4} + + + +{$user_password_4} + + + +{$display_name_4} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_4) } +{$gs_dns_modee_4} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_4) } +{$nat_traversal_4} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5066 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_4)||$gs_account_ring_tone_4==0} +{$gs_account_ring_tone_4} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_5)} +1 +{else} +0 +{/if} + + + +{$display_name_5} + + + +{$server_address_5} + + + + + + + +{$outbound_proxy_5} + + + + + + + + + + + +{$user_id_5} + + + +{$auth_id_5} + + + +{$user_password_5} + + + +{$display_name_5} + + + +*97 + + + + + + + +{if isset($gs_dns_modee_5) } +{$gs_dns_modee_5} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_5) } +{$nat_traversal_5} +{else} +0 +{/if} + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5068 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_5 == 'udp'}{$tp=0}{/if} +{if $sip_transport_5 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_5 == 'tls'}{$tp=2}{/if} +{if $sip_transport_5 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_5)||$gs_account_ring_tone_5==0} +{$gs_account_ring_tone_5} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_6)} +1 +{else} +0 +{/if} + + + +{$display_name_6} + + + +{$server_address_6} + + + + + + + +{$outbound_proxy_6} + + + + + + + + + + + +{$user_id_6} + + + +{$auth_id_6} + + + +{$user_password_6} + + + +{$display_name_6} + + + +*97 + + + + + + + + +{if isset($gs_dns_modee_6) } +{$gs_dns_modee_6} +{else} +0 +{/if} + + + + +0 + + + + + + + + + + + + + + + + +{if isset($nat_traversal_6) } +{$nat_traversal_6} +{else} +0 +{/if} + + + + + + + + + + + + +0 + + + + +1 + + + + +0 + + + + +3 + + + + +60 + + + + +0 + + + + +5070 + + + + +20 + + + + + +50 + + + + + +400 + + + + +{$tp=0} +{if $sip_transport_6 == 'udp'}{$tp=0}{/if} +{if $sip_transport_6 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_6 == 'tls'}{$tp=2}{/if} +{if $sip_transport_6 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +1 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +2 + + + + + +0 + + + + + +0 + + + + + +0 + + + + + + + + + +0 + + + + + +0 + + + + + +1 + + + + + +1 + + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + + + + + + + + + + +0 + + + + +** + + + + + + + + +0 + + + + +0 + + + + +100 + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +1 + + + + +180 + + + + +90 + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +1 + + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + +0 + + + + +1 + + + + +0 + + + + +123 + + + + +101 + + + + + + +0 + + + + +8 + + + + +4 + + + + +18 + + + + +9 + + + + +98 + + + + +2 + + + + +125 + + + + +0 + + + + + +0 + + + + + +0 + + + + + +0 + + + + +0 + + + + +0 + + + + +2 + + + + +1 + + + + +0 + + + + +1 + + + + +97 + + + + +1 + + + + +2 + + + + + +0 + + + + +250 + + + + + + + +0 + + + + + + + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + + +0 + + + + +{if isset($gs_account_ring_tone_6)||$gs_account_ring_tone_6==0} +{$gs_account_ring_tone_6} +{/if} + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + +60 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +0 + + + + +0 + + + +4 + + + + +1 + + + + +0 + + + + + + + +1 + + + +*78 + + + +*79 + + + +*72 + + + +*73 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + +26 + + + + +46 + + + + +0 + + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{else} +0 +{/if} + + + + +0 + + + + +0 + + + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + + +0 + + + + +1 + + + + +30 + + + + +0 + + + + + + + +0 + + + + + + + + +1194 + + + + +0 + + + + + + + +{$user_password} + + + +{$admin_password} + + + + + + + + + + + +0 + + + + + + + +{$http_auth_username} + + + +{$http_auth_password} + + + + +0 + + + + +2 + + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + + + + + + +1 + + + + +0 + + + + + +0 + + + + +1 + + + + + + + + + +0 + + + + +10080 + + + +1 + + + +1 + + + + +0 + + + + +0 + + + + + + +{$gs_syslog_server} + + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + +1 + + + + + + + + + + + + + + + +Auto + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + +0 + + + +86400 + + + + + + + + + + + +0 + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + +1 + + + +0 + + + + +80 + + + + +443 + + + +5 + + + + + + + + + + + +0 + + + + + + + +0 + + + + + + + + + + + + + + +{if isset($contact_grandstream)} +1 +{else} +0 +{/if} + + + + + + + + + + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + +{if isset($gs_phonebook_download_interval)} +{$gs_phonebook_download_interval} +{else} +0 +{/if} + + + + +1 + + + + +1 + + + + +{if isset($contact_grandstream)} +2 +{else} +0 +{/if} + + + + +0 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_name_filter} + + + + +3 + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + +givenName sn title + + + + + +50 + + + + + +30 + + + + +0 + + + +1 + + +1 + + + +givenName sn title + + + + + + + +5004 + + + + +200 + + + + +5204 + + + + +0 + + + + +20 + + + + + + + + + + + + +{if isset($public_mode) } +{if $public_mode|strtolower == 'true'} +1 +{elseif $public_mode|strtolower == 'yes'} +1 +{elseif $public_mode == '1'} +1 +{else} +0 +{/if} +{else} +0 +{/if} + + + +0 + + + + + + + + + + + +30 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + +{if isset($gs_auto_attended_transfer) } +{$gs_auto_attended_transfer} +{else} +1 +{/if} + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + +0 + + + + +10 + + + + +0 + + + + +0 + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +f1=440,f2=480,c=200/400; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440; + + + + +f1=350,f2=440,c=10/10; + + + + +f1=440,f2=480,c=200/400; + + + + +f1=440,f2=440,c=25/525; + + + + +0 + + + + +f1=480,f2=620,c=50/50; + + + + +f1=480,f2=620,c=25/25; + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + +0 + + + + +0 + + + + +{if isset($gs_handset_tx_gain) } +{$gs_handset_tx_gain} +{else} +0 +{/if} + + + + + + + + +100 + + + + +60 + + + + +5 + + + + +0 + + + + + + + + + + +0 + + + + +0 + + + + +1 + + + + + + + + + +{if isset($gs_wallpaper_url)} +1 +{$gs_wallpaper_url} +{else} +0 + +{/if} + + + +#000000 + + + + +0 + + + +0 + + + + +3 + + + + + + + + +0 + + + + + + + +0 + + + + +0 + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + + + + + +1440 + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($grandstream_timezone) } +{$grandstream_timezone} +{elseif isset($gs_gxp_time_zone) } +{$gs_gxp_time_zone} +{else} +auto +{/if} + + + + + +0 + + + + + +PST+8PDT,M3.2.0,M11.1.0 + + + + + + + + + +3 + + + + +0 + + + + + + + + + +1 + + + + +1 + + + + + +1 + + + + + + + + +15 + + + + +c + + + + + +1 + + + + +CAD/USD;CAD/EUR;CAD/GBP;CAD/AUD;CAD/CNY;CAD/JPY + + + + + + + + + + +XMLApp + + + + + + + + +0 + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + +0 + + + + +0 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($gs_bluetooth_power)} +{$gs_bluetooth_power} +{/if} + + + + +{if isset($gs_bluetooth_handsfree)} +{$gs_bluetooth_handsfree} +{/if} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$fixed_keys=4} +{if $template == "grandstream/gxp2130"}{$fixed_keys=3}{/if} +{if $template == "grandstream/gxp2140"}{$fixed_keys=4}{/if} +{if $template == "grandstream/gxp2160"}{$fixed_keys=6}{/if} +{if $template == "grandstream/gxp2170"}{$fixed_keys=12}{/if} +{if $template == "grandstream/gxp2135"}{$fixed_keys=8}{/if} + +{$start_id=1363} +{assign var=key_types value=["none"=>-1,"line"=>0,"shared line"=>1,"speed dial"=>10, "blf"=>11, "presence watcher"=>12, "eventlist blf"=>13,"speed dial active"=>14,"dial dtmf"=>15,"voicemail"=>16,"call return"=>17,"transfer"=>18,"call park"=>19,"intercom"=>20,"ldap search"=>21,"multicast paging"=>23,"record"=>24,"call log"=>25,"monitored call park"=>26,"menu"=>27]} + +{for $line=1 to 6} +{$pid=$line*2-2} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +0 +{$line-1} + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + +{$start_id=23800} +{for $line=7 to 32} +{$pid=($line-6)*4-4} +{if isset($keys.line.$line.device_key_category) && isset($keys.line.$line.device_key_type) && isset($key_types[$keys.line.$line.device_key_type])} +{if $line <= $fixed_keys} +{$key_types[$keys.line.$line.device_key_type]} +{else} +{$key_types[$keys.line.$line.device_key_type]-10} +{/if} +{$keys.line.$line.device_key_line} +{$keys.line.$line.device_key_label} +{$keys.line.$line.device_key_value} +{else} +{if $line <= $fixed_keys} +-1 +0 + + +{else} +-1 +{/if} +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["speed dial"=>10, "speed dial active"=>14,"voicemail"=>16,"call return"=>17,"intercom"=>20,"ldap search"=>21,"menu"=>17]} +{$start_id=2987} +{for $prog=1 to 3} +{$pid=$prog*4-4} +{if isset($keys.programmable.$prog.device_key_category) && isset($keys.programmable.$prog.device_key_type) && $keys.programmable.$prog.device_key_type|in_array:$key_types} +{$key_types[$keys.programmable.$prog.device_key_type]} +{$keys.programmable.$prog.device_key_line} +{$keys.programmable.$prog.device_key_label} +{$keys.programmable.$prog.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"conference"=>12,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=323} +{for $mem=1 to 7} +{$pid=$mem*3-3} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.memory.$mem.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=353} +{for $mem=8 to 18} +{$pid=($mem-7)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{$start_id=1440} +{for $mem=19 to 24} +{$pid=($mem-18)*4-4} +{if isset($keys.memory.$mem.device_key_category) && isset($keys.memory.$mem.device_key_type) && $keys.line.$line.device_key_type|in_array:$key_types} +{$key_types[$keys.memory.$mem.device_key_type]} +{$keys.memory.$mem.device_key_line} +{$keys.memory.$mem.device_key_label} +{$keys.memory.$mem.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} + +{if $template == "grandstream/gxp2140"||$template == "grandstream/gxp2170"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["none"=>-1,"speed dial"=>0, "blf"=>1, "presence watcher"=>2, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"voicemail"=>6,"call return"=>7,"transfer"=>8,"call park"=>9,"intercom"=>10,"ldap search"=>11,"multicast paging"=>13,"record"=>14,"call log"=>15,"monitored call park"=>16,"menu"=>17]} +{$start_id=23000} +{for $exp=1 to 160} +{$pid=$exp*5-5} +{if isset($keys.expansion.$exp.device_key_category) && isset($keys.expansion.$exp.device_key_type) && $keys.expansion.$exp.device_key_type|in_array:$key_types} +{$key_types[$keys.expansion.$exp.device_key_type]} +{$keys.expansion.$exp.device_key_line} +{$keys.expansion.$exp.device_key_label} +{$keys.expansion.$exp.device_key_value} +{else} +-1 +0 + + +{/if} + +{/for} +{/if} + diff --git a/resources/templates/provision/grandstream/gxv3240/phonebook.xml b/resources/templates/provision/grandstream/gxv3240/phonebook.xml new file mode 100644 index 0000000000..408336fb53 --- /dev/null +++ b/resources/templates/provision/grandstream/gxv3240/phonebook.xml @@ -0,0 +1,54 @@ + + +1 +{foreach $contacts as $contact} +{if $contact.contact_type == "group"} + +{$contact.id} +{$contact.group_description} + + +{/if} +{/foreach} +{$i=0} +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +0 +0 +{if $contact.contact_title != "" } +{$contact.contact_title} +{/if} + +{$contact.contact_work} +1 + +{if $contact.contact_home != "" } + +{$contact.contact_home} +1 + +{/if} +{if $contact.contact_cell != "" } + +{$contact.contact_cell} +1 + +{/if} +{if false} +{if $contact.contact_role != "" } +{$contact.contact_role} +{/if} +{if $contact.contact_organization != "" } +{$contact.contact_organization} +{/if} +{/if} +{foreach $contact.groups as $group} +{$group} +{/foreach} + +{/if} +{/foreach} + diff --git a/resources/templates/provision/grandstream/gxv3240/{$mac}.xml b/resources/templates/provision/grandstream/gxv3240/{$mac}.xml new file mode 100644 index 0000000000..5a845fe2a3 --- /dev/null +++ b/resources/templates/provision/grandstream/gxv3240/{$mac}.xml @@ -0,0 +1,5451 @@ + + +{$mac|replace:'-':''} + + + + + + + + + + + + + + + + +{if isset($user_password_1)} +1 +{else} +0 +{/if} + + +{$display_name_1} + + +{$server_address_1} + + +{$user_id_1} + + +{$user_id_1} + + +{$user_password_1} + + +*97 + + +{$display_name_1} + + + +0 + + + +0 + + + + + + + + + + + + + +1 + + + +{if isset($gs_nat_traversal_1)} +{$gs_nat_traversal_1} +{else} +0 +{/if} + + + + + + + + + +1 + + + +2 + + + +3 + + + +0 + + + +20 + + + +5060 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +1 + + + +30 + + + +3 + + + + +180 + + + +90 + + + +0 + + + +1 + + + + +0 + + + + +0 + + + + + +0 + + + + +0 + + + +0 + + + +0 + + + + +0 + + + + +0 + + + + +{$tp=0} +{if $sip_transport_1 == 'udp'}{$tp=0}{/if} +{if $sip_transport_1 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_1 == 'tls'}{$tp=2}{/if} +{if $sip_transport_1 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +0 + + + + +0 + + + +0 + + + +0 + + + + +1 + + + + + +{if isset($gs_validate_incoming_sip)} +1 +{else} +0 +{/if} + + + + + +{if isset($gs_check_sip_user_id)} +1 +{else} +0 +{/if} + + + + +0 + + + +0 + + + + +{if isset($gs_sip_only_known_servers)} +1 +{else} +0 +{/if} + + +0 + + + + +50 + + + + + +400 + + + +0 + + + + +0 + + + + +0 + + + +0 + + + + +0 + + + + +0 + + + + +1 + + + + + + + +15 + + + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + +0 + + + +8 + + + +4 + + + +18 + + + +9 + + + +98 + + + +2 + + + +123 + + + +99 + + + +34 + + + +1 + + + +0 + + + +1 + + + +0 + + + +126 + + + +123 + + + +1 + + + +1 + + + +0 + + +120 + + + +1 + + + +9 + + + +0 + + + +0 + + + + + +2048 + + + + +1 + + + +99 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + + + + + + + + +0 + + + +0 + + + +0 + + + +1 + + + + + + + + +0 + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + +0 + + + +0 + + + +0 + + + +0 + + + + +0 + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +4 + + + +60 + + + + +-1 + + + +0 + + + +1 + + + +*78 + + + +*79 + + + + + + + +0 + + + +0 + + + +0 + + +{if isset($gs_account_ring_tone_1)||$gs_account_ring_tone_1==0} +{$gs_account_ring_tone_1} +{else} +content://settings/system/ringtone +{/if} + + + +0 + + + + + + + +20 + + + +{if isset($gs_ring_tone_caller_id_1_1)} +{$gs_ring_tone_caller_id_1_1} +{/if} + + + +{if isset($gs_ring_tone_1_1)||$gs_ring_tone_1_1==0} +{$gs_ring_tone_1_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_2_1)} +{$gs_ring_tone_caller_id_2_1} +{/if} + + + +{if isset($gs_ring_tone_2_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_2_1} +{/if} + + + +{if isset($gs_ring_tone_caller_id_3_1)} +{$gs_ring_tone_caller_id_3_1} +{/if} + + + +{if isset($gs_ring_tone_3_1)||$gs_ring_tone_2_1==0} +{$gs_ring_tone_3_1} +{/if} + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_2)} +1 +{else} +0 +{/if} + + +{$display_name_2} + + +{$server_address_2} + + +{$user_id_2} + + +{$user_id_2} + + +{$user_password_2} + + +*97 + + +{$display_name_2} + + + +0 + + + +0 + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + +1 + + + +0 + + + +60 + + + +0 + + + +20 + + + +5062 + + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +30 + + + +3 + + + +180 + + + +90 + + + +0 + + + +1 + + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +{$tp=0} +{if $sip_transport_2 == 'udp'}{$tp=0}{/if} +{if $sip_transport_2 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_2 == 'tls'}{$tp=2}{/if} +{if $sip_transport_2 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +50 + + + + +400 + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + + +15 + + + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + +0 + + + +8 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +99 + + + +99 + + + +1 + + + +0 + + + +1 + + + +0 + + + +126 + + + +123 + + + +1 + + + +1 + + + +0 + + +120 + + + +1 + + + +9 + + + +0 + + + +0 + + + + + +2048 + + + +1 + + +99 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + + + + + + + + +1 + + + +0 + + + +0 + + + +1 + + + + + + + + +0 + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +4 + + + +60 + + + + +-1 + + + +0 + + + +1 + + + +*78 + + + +*79 + + + + + + + +0 + + + +0 + + + +0 + + +content://settings/system/ringtone + + + +0 + + + + + + + +20 + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_3)} +1 +{else} +0 +{/if} + + +{$display_name_3} + + +{$server_address_3} + + +{$user_id_3} + + +{$user_id_3} + + +{$user_password_3} + + +*97 + + +{$display_name_3} + + + +0 + + + +0 + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + +1 + + + +0 + + + +60 + + + +0 + + + +20 + + + +5064 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +30 + + + +3 + + + +180 + + + +90 + + + +0 + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +{$tp=0} +{if $sip_transport_3 == 'udp'}{$tp=0}{/if} +{if $sip_transport_3 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_3 == 'tls'}{$tp=2}{/if} +{if $sip_transport_3 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + +50 + + + + +400 + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + + +15 + + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + +0 + + + +8 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +99 + + + +99 + + + +1 + + + +0 + + + +1 + + + +0 + + + +126 + + + +123 + + + +1 + + + +1 + + + +0 + + +120 + + + +1 + + + +9 + + + +0 + + + +0 + + + + + +2048 + + + +1 + + +99 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + + + + + + + + +1 + + + +0 + + + +0 + + + +1 + + + + + + + + +0 + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +4 + + + +60 + + + + +-1 + + + +0 + + + +1 + + + +*78 + + + +*79 + + + + + + + +0 + + + +0 + + + +0 + + +content://settings/system/ringtone + + + +0 + + + + + + + +20 + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_4)} +1 +{else} +0 +{/if} + + +{$display_name_4} + + +{$server_address_4} + + +{$user_id_4} + + +{$user_id_4} + + +{$user_password_4} + + +*97 + + +{$display_name_4} + + + +0 + + + + + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + +1 + + + +0 + + + +60 + + + +0 + + + +20 + + + +5066 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +30 + + + +3 + + + +180 + + + +90 + + + +0 + + + +1 + + + + +0 + + + +0 + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + + +0 + + + +{$tp=0} +{if $sip_transport_4 == 'udp'}{$tp=0}{/if} +{if $sip_transport_4 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_4 == 'tls'}{$tp=2}{/if} +{if $sip_transport_4 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + +50 + + + + +400 + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + + + +15 + + + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + +0 + + + +8 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +99 + + + +99 + + + +1 + + + +0 + + + +1 + + + +0 + + + +126 + + + +123 + + + +1 + + + +1 + + + +0 + + +120 + + + +1 + + + +9 + + + +0 + + + +0 + + + + + +2048 + + + +1 + + +99 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + + + + + + + + +1 + + + +0 + + + +0 + + + +1 + + + + + + + + +0 + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +4 + + + +60 + + + + +-1 + + + +0 + + + +1 + + + +*78 + + + +*79 + + + + + + + +0 + + +content://settings/system/ringtone + + + +0 + + + + + + + +20 + + + +0 + + + +0 + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_5)} +1 +{else} +0 +{/if} + + +{$display_name_5} + + +{$server_address_5} + + +{$user_id_5} + + +{$user_id_5} + + +{$user_password_5} + + +*97 + + +{$display_name_5} + + + +0 + + + +0 + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + +1 + + + +0 + + + +60 + + + +0 + + + +20 + + + +5068 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +30 + + + +3 + + + +180 + + + +90 + + + +0 + + + +1 + + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +{$tp=0} +{if $sip_transport_5 == 'udp'}{$tp=0}{/if} +{if $sip_transport_5 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_5 == 'tls'}{$tp=2}{/if} +{if $sip_transport_5 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +50 + + + + +400 + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + + + +15 + + + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + +0 + + + +8 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +99 + + + +99 + + + +1 + + + +0 + + + +1 + + + +0 + + + +126 + + + +123 + + + +1 + + + +1 + + + +0 + + +120 + + + +1 + + + +9 + + + +0 + + + +0 + + + + + +2048 + + + +1 + + +99 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + + + + + + + + +1 + + + +0 + + + +0 + + + +1 + + + + + + + + +0 + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +4 + + + + +-1 + + + +60 + + + +0 + + + +1 + + + +*78 + + + +*79 + + + + + + + +0 + + + +0 + + + +0 + + + +20 + + + +0 + + + + + + +content://settings/system/ringtone + + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($user_password_6)} +1 +{else} +0 +{/if} + + +{$display_name_6} + + +{$server_address_6} + + +{$user_id_6} + + +{$user_id_6} + + +{$user_password_6} + + +*97 + + +{$display_name_6} + + + +0 + + + +0 + + + + + + + + + + + + + +0 + + + +0 + + + + + + + + + + +1 + + + +0 + + + +60 + + + +0 + + + +20 + + + +5070 + + + +{if isset($subscribe_mwi)} +1 +{else} +0 +{/if} + + + +0 + + + +30 + + + +3 + + + +180 + + + +90 + + + +0 + + + +1 + + + + +0 + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +{$tp=0} +{if $sip_transport_6 == 'udp'}{$tp=0}{/if} +{if $sip_transport_6 == 'tcp'}{$tp=1}{/if} +{if $sip_transport_6 == 'tls'}{$tp=2}{/if} +{if $sip_transport_6 == 'dns srv'}{$tp=1}{/if} +{$tp} + + + + +0 + + + + +0 + + + +0 + + + +0 + + + +1 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +50 + + + + +400 + + + +0 + + + +0 + + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + + + +15 + + + + + + + + +0 + + + +1 + + + +0 + + + +101 + + + + +0 + + + +8 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +9 + + + +99 + + + +99 + + + +1 + + + +0 + + + +1 + + + +0 + + + +126 + + + +123 + + + +1 + + + +1 + + + +0 + + +120 + + + +1 + + + +9 + + + +0 + + + +0 + + + + + +2048 + + + +1 + + +99 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +2 + + + + + + + + + + +1 + + + +0 + + + +0 + + + +1 + + + + + + + + +0 + + +{ x+ | *x+ | *xx | *xxx | *xxxx | *xxxxx | *xxxxxx | **xx | **xxx | **xxxx | **xxxxx | **xxxxxx | **xxxxxxx | **xxxxxxxx | *xx*x+ | \+x+ | \p\a\r\k\+*x+ } + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + +100 + + + +0 + + + +0 + + + +0 + + + +4 + + + + +-1 + + + +60 + + + +0 + + + +1 + + + +*78 + + + +*79 + + + + + + + +0 + + + +0 + + + +0 + + + +20 + + + +0 + + + + + + +content://settings/system/ringtone + + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + + + + + +content://settings/system/ringtone + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5004 + + + +0 + + + +0 + + +0 + + + + + +20 + + + +{if isset($gs_stun_server) } +{$gs_stun_server} +{else} + +{/if} + + + + + + + +0 + + + +0 + + + +0 + + + + + + + + + + + + + + +s1pphone + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + + + + + +30 + + + +0 + + + +0 + + + + + + + +15 + + + +1 + + + +1 + + + + + + + +0 + + +f1=350@-13,f2=440@-13,c=0/0; + + + + + +f1=440@-19,f2=480@-19,c=2000/4000; + + +f1=480@-24,f2=620@-24,c=500/500; + + +f1=480@-24,f2=620@-24,c=250/250; + + +f1=350@-11,f2=440@-11,c=100/100-100/100-100/100; + + +f1=440@-13,c=300/10000-300/10000-0/0; + + +0 + + +f1=480@-32,f2=620@-32,c=500/500; + + +c=2000/4000; + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +99 + + + +1 + + + + + +256 + + + +15 + + + +1 + + + +99 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + +** + + + + + + +0 + + + +0 + + + +** + + + + + + +0 + + + +0 + + + +** + + + + + + +0 + + + +0 + + + +** + + + + + + +0 + + + +0 + + + +** + + + + + + +0 + + + +0 + + + +** + + + + + + +0 + + + +0 + + + + + +0 + + + + + + + + + + + +0 + + + +0 + + + + + +0 + + + +0 + + + + + +Grandstream GXV3240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + +60 + + + +0 + + +48 + + +48 + + +48 + + + +{if isset($gs_lan_port_vlan) } +{$gs_lan_port_vlan} +{$gs_lan_port_vlan} +{else} +0 +0 +{/if} + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + +{if isset($gs_pc_port_vlan) } +{$gs_pc_port_vlan} +{else} +1 +{/if} + + +0 + + + +0 + + + + + +Grandstream GXV3275 1.0.3.75 + + + +0 + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + +64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{if isset($ntp_server_primary)} +{$ntp_server_primary} +{else} +pool.ntp.org +{/if} + + + + +1 + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{$gs_gxp_time_zone} + + + +0 + + + + + + + +0 + + + + + + + +0 + + + +0 + + + +0 + + + +80 + + +{$admin_password} + + +{$user_password} + + + + + + + +1 + + +{if isset($gs_firmware_path)} +{$gs_firmware_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + + + + + + + + + + + + + + + +1 + + +{if $gs_config_server_path=="none"} + +{elseif isset($gs_config_server_path)} +{$gs_config_server_path} +{else} +{$domain_name}{$project_path}/app/provision +{/if} + + +{$http_auth_username} + + +{$http_auth_password} + + + + + + + + + +0 + + + + + + + +1 + + +fm.grandstream.com/gs + + + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +1 + + + + +1 + + + +1 + + + +1 + + + +0 + + + + + + +1 + + + +{if isset($gs_auto_upgrade)} +{$gs_auto_upgrade} +{else} +0 +{/if} + + + +10080 + + + +1 + + + +1 + + + + + + +0 + + + +0 + + + +1 + + + + + + +{$gs_syslog_server} + + + + +{if isset($gs_syslog_level)} +{$gs_syslog_level} +{else} +0 +{/if} + + + + + + + + +{if isset($gs_send_sip_log)} +{$gs_send_sip_log} +{else} +0 +{/if} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + + + + + + + + + + +0 + + + +86400 + + + + + + + + + + + + + + + + + + + + + + +1 + + + +2 + + + + +911 + + + + +1 + + + +0 + + + +2 + + + + + +UTF-8 + + + + +{if isset($contact_grandstream)} +{$gs_phonebook_xml_server_path}{$mac}/ +{elseif isset($gs_phonebook_xml_server_path)} +{$gs_phonebook_xml_server_path} +{else} + +{/if} + + + + + + + + + + + +720 + + + + + + + +0 + + + +{$gs_ldap_server} + + + +389 + + + + + +{$gs_ldap_base_dn} + + + +{$ldap_username} + + + +{$ldap_password} + + + + +{$gs_ldap_name_attr} + + + + +{$gs_ldap_number_attr} + + + + +{$gs_ldap_mail_attr} + + + + +{$gs_ldap_name_filter} + + + + +{$gs_ldap_number_filter} + + + + +{$gs_ldap_mail_filter} + + + +givenName sn title + + + + +50 + + + + +4 + + +1 + + +1 + + + +0 + + + + + + + +0 + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + + + + +1 + + + + + + + +1 + + + + + + + +1 + + + + + + + +1 + + + + + + + +0 + + + + + + + +1 + + + + + + + +1 + + + + + + + +1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +0 + + + +{if isset($gs_headset_type)} +{$gs_headset_type} +{else} +0 +{/if} + + + +0 + + + +0 + + + +0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{assign var=key_types value=["speed dial"=>0, "blf"=>1, "eventlist blf"=>3,"speed dial active"=>4,"dial dtmf"=>5,"transfer"=>8,"call park"=>9,"intercom"=>10,"multicast paging"=>13,"call log"=>15]} +{$start_id=23000} +{for $exp=1 to 160} +{$pid=$exp*5-5} + +{if isset($keys.expansion.$exp.device_key_category) && isset($keys.expansion.$exp.device_key_type) && $keys.expansion.$exp.device_key_type|in_array:$key_types} +{$key_types[$keys.expansion.$exp.device_key_type]} +{$keys.expansion.$exp.device_key_line} +{$keys.expansion.$exp.device_key_label} +{$keys.expansion.$exp.device_key_value} +{else} +0 +0 + + +{/if} + +{/for} + + + + + + + +1 + + + +1 + + + +1 + + + +1 + + + diff --git a/resources/templates/provision/vtech/vcs754/directory.xml b/resources/templates/provision/vtech/vcs754/directory.xml new file mode 100644 index 0000000000..d8d5a33075 --- /dev/null +++ b/resources/templates/provision/vtech/vcs754/directory.xml @@ -0,0 +1,23 @@ + + + +{foreach $contacts as $contact} +{if $contact.contact_name_given != "" && $contact.contact_type == "contact"} + +{$contact.contact_name_given} +{$contact.contact_name_family} +{$contact.contact_work} +{if $contact.contact_cell != "" } +{$contact.contact_cell} +{/if} +{if $contact.contact_home != "" } +{$contact.contact_home} +{/if} +0 +0 +0 + +{/if} +{/foreach} + + diff --git a/resources/templates/provision/vtech/vcs754/{$mac}.cfg b/resources/templates/provision/vtech/vcs754/{$mac}.cfg new file mode 100644 index 0000000000..3b8b5e6805 --- /dev/null +++ b/resources/templates/provision/vtech/vcs754/{$mac}.cfg @@ -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