From 9380b46f9579f97ac5825ee8751bb7677eb02cd7 Mon Sep 17 00:00:00 2001 From: minotaur01 Date: Fri, 2 Sep 2016 21:05:12 -0400 Subject: [PATCH] Updated Aastra Template (#1895) Added 686x series and 673x service device templates Updated template settings --- .../provision/aastra/673x/aastra.cfg | 0 .../provision/aastra/673x/{$mac}.cfg | 190 ++++++++++++++++++ .../provision/aastra/675x/{$mac}.cfg | 150 +++++++------- .../provision/aastra/686x/aastra.cfg | 0 .../provision/aastra/686x/{$mac}.cfg | 190 ++++++++++++++++++ 5 files changed, 458 insertions(+), 72 deletions(-) create mode 100644 resources/templates/provision/aastra/673x/aastra.cfg create mode 100644 resources/templates/provision/aastra/673x/{$mac}.cfg create mode 100644 resources/templates/provision/aastra/686x/aastra.cfg create mode 100644 resources/templates/provision/aastra/686x/{$mac}.cfg diff --git a/resources/templates/provision/aastra/673x/aastra.cfg b/resources/templates/provision/aastra/673x/aastra.cfg new file mode 100644 index 0000000000..e69de29bb2 diff --git a/resources/templates/provision/aastra/673x/{$mac}.cfg b/resources/templates/provision/aastra/673x/{$mac}.cfg new file mode 100644 index 0000000000..0e01d1211a --- /dev/null +++ b/resources/templates/provision/aastra/673x/{$mac}.cfg @@ -0,0 +1,190 @@ +# ################# +# Reference Documenation +# ################# +# ftp://downloads.aastra.com/Downloads/Firmware/GigE/41-001343-02_REV05_IP_Phone_Admin_Guide_3.3.1_SP4.pdf + + +# ################# +# General settings +# ################# + +# === passwords and access control === +#admin password: 22222 # 22222 is the default +#user password: 123 # default is blank +#web interface enabled: 1 # Enable/Disable Web UI +#options password enabled: 1 # default is 0 == not protected +#options simple menu: 1 # default is 0 == full options menu + +# === display date and time === +time format: 0 # 1 for 24 hr format +date format: 0 # 0 == WWW MMM DD, 1 == DD-MMM-YY, 2 == YYYY-MM-DD, see reference for others +time zone name: Custom # Check reference for list of named time zones on page 647, or set offset below +time zone minutes: 300 # Offset in minutes from GMT, 300 = GMT-5 = Eastern Standard Time, -120 = GMT+2 = Eastern European Time +#dst config: 3 # Day Light Savings, 0 == off, 1 == 30 min summertime, 2 == 1 hr summertime, 3 (default) == automatic +#dst minutes: 60 # amount of time to offset the clock in minutes +#dst [start|end] relative date: 1 # Specifies how to interpret the start and end day, month, and week parameters, 0 - absolute, 1 - relative +#dst start month: 3 # March +#dst start week: 2 # Second full week of month +#dst start day: 1 # Sunday +#dst start hour: 1 # 1am +#dst end month: 11 # November +#dst end week: 1 # First full week of month +#dst end day: 1 # Sunday +#dst end hour: 1 # 1am + +# === display backlight === +backlight mode: 1 # 0 == off, 1 == auto to turn off after period of inactivity +#bl on time: 600 # time in seconds before backlight turns off if in auto + + +# ################# +# Network Settings +# ################# + +# === IP network settings === +# dhcp: 1 +# subnet mask: 255.255.255.0 +# default gateway: 192.168.1.1 +# dns1: 192.168.1.1 +# dns2: 8.8.8.8 + +# === NTP time server settings === +time server disabled: 0 # 0 == enable time server 1 = disable time server +time server1: {$ntp_server_primary} +time server2: {$ntp_server_secondary} + +# === Advanced Network Settings === +upnp manager: 0 # Enable/Disable Universal Plug and Play +lldp: 0 # Enable/Disable Link-Layer Discovery Protocol + + +# ################# +# Provisioning Settings +# ################# +# phone looks for configuration files in aastra.cfg followed by .cfg, e.g. "00085D1610DE.cfg" +# leave HTTP path blank for http://{$domain_name}{$project_path}/aastra.cfg and http://{$domain_name}{$project_path}/.cfg +# HTTPS, TFTP and FTP also supported +download protocol: HTTP + +# === HTTP Provisioning Settings === +http server: {$domain_name} +#http port: 80 +http path: /provision + +# === TFTP Provisioning Settings === +#tftp server: {$domain_name} +#tftp path: /provision/{$domain_name} + +# === Provisioning Sync Settings === +# Example below is for resyncing config (but not firmware) nightly at 2am +auto resync mode: 1 +auto resync time: 02:00 +auto resync max delay: 120 # in minutes +auto resync days: 1 + +# === Firmware Update Settings === +# phone looks for firwmare in .st file, e.g. "53i.st" or "57iCT.st" +#firmware server: http://{$domain_name}{$project_path}/provision/aastra/firmware +#firmware server: tftp://{$domain_name}/aastra + + + +# ################# +# SIP settings +# ################# + +# === Global === +# most can be overridden per line; see below +sip vmail: {$voicemail_number} # Voice Mail Extenstion + +sip transport protocol: 1 # 0 - UDP and TCP; 1 - UDP; 2 - TCP; 4 - Transport Layer Security (TLS) +sip rport: 1 # Random SIP port + +# === SIP TLS === +#sip persistent tls keep alive: 60 # Keep Alive Interval In seconds +#sip send sips over tls: 0 +#sips persistent tls: 1 +#sips root and intermediate certificates: tftp://{$domain_name}/aastra/phonesRootCert.pem # source and name of root certificate file from configuration server +#sips local certificate: tftp://{$domain_name}/aastra/phonesLocalCert.pem # source and name of client certificate file from configuration server +#sips private key: tftp://{$domain_name}/aastra/phonesPrivateKey.pem # source and name of key file from configuration server +#sips trusted certificates: tftp://{$domain_name}/aastra/phonesTrustedCert.pem # source and name of trusted certificates file from configuration server + + +# ################# +# SIP settings - per-line +# ################# +{foreach $lines as $row} +sip line{$row.line_number} screen name: {$row.display_name} +sip line{$row.line_number} user name: {$row.user_id} # used in SIP URI +sip line{$row.line_number} password: {$row.password} +sip line{$row.line_number} auth name: {$row.user_id} # used in Authorization header field of SIP REGISTER request +sip line{$row.line_number} registrar ip: {$row.server_address} +{if isset($row.sip_port) } +sip line{$row.line_number} registrar port: {$row.sip_port} +{else} +sip line{$row.line_number} registrar port: {$line_sip_port} +{/if} +sip line{$row.line_number} proxy ip: {$row.server_address} +{if isset($row.sip_port) } +sip line{$row.line_number} proxy port: {$row.sip_port} +{else} +sip line{$row.line_number} proxy port: {$line_sip_port} +{/if} +{if isset($row.register_expires) } +sip line{$row.line_number} registration period: {$row.register_expires} # requested registration period, defaults to 0 +{else} +sip line{$row.line_number} registration period: {$line_register_expires} # requested registration period, defaults to 0 +{/if} +{/foreach} + + +# ################# +# Key assignment types blf, blfxfer, park, speeddial, dnd +# ################# +{foreach $keys["line"] as $row} +topsoftkey{$row.device_key_id} type: {$row.device_key_type} +topsoftkey{$row.device_key_id} line: {$row.device_key_line} +topsoftkey{$row.device_key_id} value: {$row.device_key_value} +topsoftkey{$row.device_key_id} label: {$row.device_key_label} + +{/foreach} + +{foreach $keys["memory"] as $row} +softkey{$row.device_key_id} type: {$row.device_key_type} +softkey{$row.device_key_id} line: {$row.device_key_line} +softkey{$row.device_key_id} value: {$row.device_key_value} +softkey{$row.device_key_id} label: {$row.device_key_label} + +{/foreach} + +{foreach $keys["programmable"] as $row} +prgkey{$row.device_key_id} type: {$row.device_key_type} +prgkey{$row.device_key_id} line: {$row.device_key_line} +prgkey{$row.device_key_id} value: {$row.device_key_value} + +{/foreach} + +{foreach $keys["expansion"] as $row} +{if $row.device_key_category == "expansion" && $row.device_key_id <= 60} +expmod1 key{$row.device_key_id} type: {$row.device_key_type} +expmod1 key{$row.device_key_id} line: {$row.device_key_line} +expmod1 key{$row.device_key_id} value: {$row.device_key_value} +expmod1 key{$row.device_key_id} label: {$row.device_key_label} +{elseif $row.device_key_category == "expansion" && $row.device_key_id <= 120} +expmod2 key{$row.device_key_id-60} type: {$row.device_key_type} +expmod2 key{$row.device_key_id-60} line: {$row.device_key_line} +expmod2 key{$row.device_key_id-60} value: {$row.device_key_value} +expmod2 key{$row.device_key_id-60} label: {$row.device_key_label} +{elseif $row.device_key_category == "expansion" && $row.device_key_id <= 180} +expmod3 key{$row.device_key_id-120} type: {$row.device_key_type} +expmod3 key{$row.device_key_id-120} line: {$row.device_key_line} +expmod3 key{$row.device_key_id-120} value: {$row.device_key_value} +expmod3 key{$row.device_key_id-120} label: {$row.device_key_label} +{elseif $row.device_key_category == "expansion"} +expmod4 key{$row.device_key_id-180} type: {$row.device_key_type} +expmod4 key{$row.device_key_id-180} line: {$row.device_key_line} +expmod4 key{$row.device_key_id-180} value: {$row.device_key_value} +expmod4 key{$row.device_key_id-180} label: {$row.device_key_label} +{/if} + +{/foreach} diff --git a/resources/templates/provision/aastra/675x/{$mac}.cfg b/resources/templates/provision/aastra/675x/{$mac}.cfg index dd6895633f..0e01d1211a 100644 --- a/resources/templates/provision/aastra/675x/{$mac}.cfg +++ b/resources/templates/provision/aastra/675x/{$mac}.cfg @@ -1,27 +1,52 @@ -# Based on examples configurations like: -# http://www.voip-info.org/wiki/view/Aastra+9133i+Configuration +# ################# +# Reference Documenation +# ################# +# ftp://downloads.aastra.com/Downloads/Firmware/GigE/41-001343-02_REV05_IP_Phone_Admin_Guide_3.3.1_SP4.pdf -# Reference documenation is at: -# http://www.aastra.com/cps/rde/xchg/SID-3D8CCB6A-995D8770/04/hs.xsl/33977.htm#dl_instructions -# PDF link is labeled "9143i, 9480i, 9480i CT and 67xxi Series SIP Phone Administrators Guide" -# Direct link to admin guide PDF as of 2010-08-18 is: -# ftp://216.94.98.106/Downloads/Admin_Guides/IP%20Phone%20Admin%20Guide_2.6.0_41-001160-05_REV00_IPP_AG_1005.pdf +# ################# +# General settings +# ################# + +# === passwords and access control === +#admin password: 22222 # 22222 is the default +#user password: 123 # default is blank +#web interface enabled: 1 # Enable/Disable Web UI +#options password enabled: 1 # default is 0 == not protected +#options simple menu: 1 # default is 0 == full options menu + +# === display date and time === +time format: 0 # 1 for 24 hr format +date format: 0 # 0 == WWW MMM DD, 1 == DD-MMM-YY, 2 == YYYY-MM-DD, see reference for others +time zone name: Custom # Check reference for list of named time zones on page 647, or set offset below +time zone minutes: 300 # Offset in minutes from GMT, 300 = GMT-5 = Eastern Standard Time, -120 = GMT+2 = Eastern European Time +#dst config: 3 # Day Light Savings, 0 == off, 1 == 30 min summertime, 2 == 1 hr summertime, 3 (default) == automatic +#dst minutes: 60 # amount of time to offset the clock in minutes +#dst [start|end] relative date: 1 # Specifies how to interpret the start and end day, month, and week parameters, 0 - absolute, 1 - relative +#dst start month: 3 # March +#dst start week: 2 # Second full week of month +#dst start day: 1 # Sunday +#dst start hour: 1 # 1am +#dst end month: 11 # November +#dst end week: 1 # First full week of month +#dst end day: 1 # Sunday +#dst end hour: 1 # 1am + +# === display backlight === +backlight mode: 1 # 0 == off, 1 == auto to turn off after period of inactivity +#bl on time: 600 # time in seconds before backlight turns off if in auto # ################# # Network Settings # ################# -# commented out because DHCP server normally sets these values - -# === DHCP === -#dhcp: 1 # === IP network settings === -#subnet mask: 255.255.255.0 -#default gateway: 192.168.1.1 -#dns1: 192.168.1.1 -#dns2: 205.210.42.205 # cache1.dnsresolvers.com +# dhcp: 1 +# subnet mask: 255.255.255.0 +# default gateway: 192.168.1.1 +# dns1: 192.168.1.1 +# dns2: 8.8.8.8 # === NTP time server settings === time server disabled: 0 # 0 == enable time server 1 = disable time server @@ -32,77 +57,58 @@ time server2: {$ntp_server_secondary} upnp manager: 0 # Enable/Disable Universal Plug and Play lldp: 0 # Enable/Disable Link-Layer Discovery Protocol -# ################# -# Firmware Server -# ################# - -# phone looks for firwmare in .st file, e.g. "53i.st" or "57iCT.st" -#firmware server: http://{$domain_name}{$project_path}/provisioning/aastra/firmware - # ################# -# Configuration and Firmware Downloads for auto resync +# Provisioning Settings # ################# - # phone looks for configuration files in aastra.cfg followed by .cfg, e.g. "00085D1610DE.cfg" # leave HTTP path blank for http://{$domain_name}{$project_path}/aastra.cfg and http://{$domain_name}{$project_path}/.cfg -download protocol: HTTP # HTTPS, TFTP and FTP also supported +# HTTPS, TFTP and FTP also supported +download protocol: HTTP + +# === HTTP Provisioning Settings === http server: {$domain_name} -#http port: 80 # default is 80 -#http path: provisioning/aastra +#http port: 80 +http path: /provision +# === TFTP Provisioning Settings === #tftp server: {$domain_name} -#alternate tftp server: -#use alternate tftp server: 1 +#tftp path: /provision/{$domain_name} -#ftp server: {$domain_name} -#ftp username: -#ftp password: +# === Provisioning Sync Settings === +# Example below is for resyncing config (but not firmware) nightly at 2am +auto resync mode: 1 +auto resync time: 02:00 +auto resync max delay: 120 # in minutes +auto resync days: 1 + +# === Firmware Update Settings === +# phone looks for firwmare in .st file, e.g. "53i.st" or "57iCT.st" +#firmware server: http://{$domain_name}{$project_path}/provision/aastra/firmware +#firmware server: tftp://{$domain_name}/aastra -# Read reference guide before enabling auto resync mode. -# Example below is for resyncing config (but not firmware) nightly at 2am every 7 days -# -#auto resync mode: 1 -#auto resync time: 02:00 -#auto resync max delay: 120 # in minutes -#auto resync days: 7 # ################# -# General settings -# ################# - -# === passwords and access control === -#admin password: 22222 # 22222 is the default -#user password: 123 # default is blank -#web interface enabled: 1 -#options password enabled: 1 # default is 0 == not protected -#options simple menu: 1 # default is 0 == full options menu - -# === date and time === -#time format: 0 # 1 for 24 hr format -#date format: 0 # 0 == WWW MMM DD, 1 == DD-MMM-YY, 2 == YYYY-MM-DD, see reference for others -#dst config: 3 # 0 == off, 1 == 30 min summertime, 2 == 1 hr summertime, 3 (default) == automatic -time zone name: {$aastra_time_zone} # US-Pacific, US-Mountain, US-Central, US-Eastern - -# === backlight for 6755i and 6757i=== -#backlight mode: 1 # 0 == off, 1 == auto to turn off after period of inactivity -#bl on time: 600 # time in seconds before backlight turns off if in auto - - -# ################# -# SIP settings - global +# SIP settings # ################# +# === Global === # most can be overridden per line; see below -sip vmail: *97 +sip vmail: {$voicemail_number} # Voice Mail Extenstion + +sip transport protocol: 1 # 0 - UDP and TCP; 1 - UDP; 2 - TCP; 4 - Transport Layer Security (TLS) +sip rport: 1 # Random SIP port + +# === SIP TLS === +#sip persistent tls keep alive: 60 # Keep Alive Interval In seconds +#sip send sips over tls: 0 +#sips persistent tls: 1 +#sips root and intermediate certificates: tftp://{$domain_name}/aastra/phonesRootCert.pem # source and name of root certificate file from configuration server +#sips local certificate: tftp://{$domain_name}/aastra/phonesLocalCert.pem # source and name of client certificate file from configuration server +#sips private key: tftp://{$domain_name}/aastra/phonesPrivateKey.pem # source and name of key file from configuration server +#sips trusted certificates: tftp://{$domain_name}/aastra/phonesTrustedCert.pem # source and name of trusted certificates file from configuration server -# Codecs -#payload=9;ptime=20;silsupp=on represents G.722 codec -#payload=18;ptime=20;silsupp=on represents G.729 codec -#payload=0;ptime=20;silsupp=on represents G.711u codec -#payload=8;ptime=20;silsupp=on represents G.711a codec -sip customized codec: payload=9;ptime=20;silsupp=on,payload=0;ptime=20;silsupp=on,payload=8;ptime=20;silsupp=on,payload=18;ptime=20;silsupp=on # ################# # SIP settings - per-line @@ -116,18 +122,18 @@ sip line{$row.line_number} registrar ip: {$row.server_address} {if isset($row.sip_port) } sip line{$row.line_number} registrar port: {$row.sip_port} {else} -sip line{$row.line_number} registrar port: 5060 +sip line{$row.line_number} registrar port: {$line_sip_port} {/if} sip line{$row.line_number} proxy ip: {$row.server_address} {if isset($row.sip_port) } sip line{$row.line_number} proxy port: {$row.sip_port} {else} -sip line{$row.line_number} proxy port: 5060 +sip line{$row.line_number} proxy port: {$line_sip_port} {/if} {if isset($row.register_expires) } sip line{$row.line_number} registration period: {$row.register_expires} # requested registration period, defaults to 0 {else} -sip line{$row.line_number} registration period: 120 # requested registration period, defaults to 0 +sip line{$row.line_number} registration period: {$line_register_expires} # requested registration period, defaults to 0 {/if} {/foreach} diff --git a/resources/templates/provision/aastra/686x/aastra.cfg b/resources/templates/provision/aastra/686x/aastra.cfg new file mode 100644 index 0000000000..e69de29bb2 diff --git a/resources/templates/provision/aastra/686x/{$mac}.cfg b/resources/templates/provision/aastra/686x/{$mac}.cfg new file mode 100644 index 0000000000..0e01d1211a --- /dev/null +++ b/resources/templates/provision/aastra/686x/{$mac}.cfg @@ -0,0 +1,190 @@ +# ################# +# Reference Documenation +# ################# +# ftp://downloads.aastra.com/Downloads/Firmware/GigE/41-001343-02_REV05_IP_Phone_Admin_Guide_3.3.1_SP4.pdf + + +# ################# +# General settings +# ################# + +# === passwords and access control === +#admin password: 22222 # 22222 is the default +#user password: 123 # default is blank +#web interface enabled: 1 # Enable/Disable Web UI +#options password enabled: 1 # default is 0 == not protected +#options simple menu: 1 # default is 0 == full options menu + +# === display date and time === +time format: 0 # 1 for 24 hr format +date format: 0 # 0 == WWW MMM DD, 1 == DD-MMM-YY, 2 == YYYY-MM-DD, see reference for others +time zone name: Custom # Check reference for list of named time zones on page 647, or set offset below +time zone minutes: 300 # Offset in minutes from GMT, 300 = GMT-5 = Eastern Standard Time, -120 = GMT+2 = Eastern European Time +#dst config: 3 # Day Light Savings, 0 == off, 1 == 30 min summertime, 2 == 1 hr summertime, 3 (default) == automatic +#dst minutes: 60 # amount of time to offset the clock in minutes +#dst [start|end] relative date: 1 # Specifies how to interpret the start and end day, month, and week parameters, 0 - absolute, 1 - relative +#dst start month: 3 # March +#dst start week: 2 # Second full week of month +#dst start day: 1 # Sunday +#dst start hour: 1 # 1am +#dst end month: 11 # November +#dst end week: 1 # First full week of month +#dst end day: 1 # Sunday +#dst end hour: 1 # 1am + +# === display backlight === +backlight mode: 1 # 0 == off, 1 == auto to turn off after period of inactivity +#bl on time: 600 # time in seconds before backlight turns off if in auto + + +# ################# +# Network Settings +# ################# + +# === IP network settings === +# dhcp: 1 +# subnet mask: 255.255.255.0 +# default gateway: 192.168.1.1 +# dns1: 192.168.1.1 +# dns2: 8.8.8.8 + +# === NTP time server settings === +time server disabled: 0 # 0 == enable time server 1 = disable time server +time server1: {$ntp_server_primary} +time server2: {$ntp_server_secondary} + +# === Advanced Network Settings === +upnp manager: 0 # Enable/Disable Universal Plug and Play +lldp: 0 # Enable/Disable Link-Layer Discovery Protocol + + +# ################# +# Provisioning Settings +# ################# +# phone looks for configuration files in aastra.cfg followed by .cfg, e.g. "00085D1610DE.cfg" +# leave HTTP path blank for http://{$domain_name}{$project_path}/aastra.cfg and http://{$domain_name}{$project_path}/.cfg +# HTTPS, TFTP and FTP also supported +download protocol: HTTP + +# === HTTP Provisioning Settings === +http server: {$domain_name} +#http port: 80 +http path: /provision + +# === TFTP Provisioning Settings === +#tftp server: {$domain_name} +#tftp path: /provision/{$domain_name} + +# === Provisioning Sync Settings === +# Example below is for resyncing config (but not firmware) nightly at 2am +auto resync mode: 1 +auto resync time: 02:00 +auto resync max delay: 120 # in minutes +auto resync days: 1 + +# === Firmware Update Settings === +# phone looks for firwmare in .st file, e.g. "53i.st" or "57iCT.st" +#firmware server: http://{$domain_name}{$project_path}/provision/aastra/firmware +#firmware server: tftp://{$domain_name}/aastra + + + +# ################# +# SIP settings +# ################# + +# === Global === +# most can be overridden per line; see below +sip vmail: {$voicemail_number} # Voice Mail Extenstion + +sip transport protocol: 1 # 0 - UDP and TCP; 1 - UDP; 2 - TCP; 4 - Transport Layer Security (TLS) +sip rport: 1 # Random SIP port + +# === SIP TLS === +#sip persistent tls keep alive: 60 # Keep Alive Interval In seconds +#sip send sips over tls: 0 +#sips persistent tls: 1 +#sips root and intermediate certificates: tftp://{$domain_name}/aastra/phonesRootCert.pem # source and name of root certificate file from configuration server +#sips local certificate: tftp://{$domain_name}/aastra/phonesLocalCert.pem # source and name of client certificate file from configuration server +#sips private key: tftp://{$domain_name}/aastra/phonesPrivateKey.pem # source and name of key file from configuration server +#sips trusted certificates: tftp://{$domain_name}/aastra/phonesTrustedCert.pem # source and name of trusted certificates file from configuration server + + +# ################# +# SIP settings - per-line +# ################# +{foreach $lines as $row} +sip line{$row.line_number} screen name: {$row.display_name} +sip line{$row.line_number} user name: {$row.user_id} # used in SIP URI +sip line{$row.line_number} password: {$row.password} +sip line{$row.line_number} auth name: {$row.user_id} # used in Authorization header field of SIP REGISTER request +sip line{$row.line_number} registrar ip: {$row.server_address} +{if isset($row.sip_port) } +sip line{$row.line_number} registrar port: {$row.sip_port} +{else} +sip line{$row.line_number} registrar port: {$line_sip_port} +{/if} +sip line{$row.line_number} proxy ip: {$row.server_address} +{if isset($row.sip_port) } +sip line{$row.line_number} proxy port: {$row.sip_port} +{else} +sip line{$row.line_number} proxy port: {$line_sip_port} +{/if} +{if isset($row.register_expires) } +sip line{$row.line_number} registration period: {$row.register_expires} # requested registration period, defaults to 0 +{else} +sip line{$row.line_number} registration period: {$line_register_expires} # requested registration period, defaults to 0 +{/if} +{/foreach} + + +# ################# +# Key assignment types blf, blfxfer, park, speeddial, dnd +# ################# +{foreach $keys["line"] as $row} +topsoftkey{$row.device_key_id} type: {$row.device_key_type} +topsoftkey{$row.device_key_id} line: {$row.device_key_line} +topsoftkey{$row.device_key_id} value: {$row.device_key_value} +topsoftkey{$row.device_key_id} label: {$row.device_key_label} + +{/foreach} + +{foreach $keys["memory"] as $row} +softkey{$row.device_key_id} type: {$row.device_key_type} +softkey{$row.device_key_id} line: {$row.device_key_line} +softkey{$row.device_key_id} value: {$row.device_key_value} +softkey{$row.device_key_id} label: {$row.device_key_label} + +{/foreach} + +{foreach $keys["programmable"] as $row} +prgkey{$row.device_key_id} type: {$row.device_key_type} +prgkey{$row.device_key_id} line: {$row.device_key_line} +prgkey{$row.device_key_id} value: {$row.device_key_value} + +{/foreach} + +{foreach $keys["expansion"] as $row} +{if $row.device_key_category == "expansion" && $row.device_key_id <= 60} +expmod1 key{$row.device_key_id} type: {$row.device_key_type} +expmod1 key{$row.device_key_id} line: {$row.device_key_line} +expmod1 key{$row.device_key_id} value: {$row.device_key_value} +expmod1 key{$row.device_key_id} label: {$row.device_key_label} +{elseif $row.device_key_category == "expansion" && $row.device_key_id <= 120} +expmod2 key{$row.device_key_id-60} type: {$row.device_key_type} +expmod2 key{$row.device_key_id-60} line: {$row.device_key_line} +expmod2 key{$row.device_key_id-60} value: {$row.device_key_value} +expmod2 key{$row.device_key_id-60} label: {$row.device_key_label} +{elseif $row.device_key_category == "expansion" && $row.device_key_id <= 180} +expmod3 key{$row.device_key_id-120} type: {$row.device_key_type} +expmod3 key{$row.device_key_id-120} line: {$row.device_key_line} +expmod3 key{$row.device_key_id-120} value: {$row.device_key_value} +expmod3 key{$row.device_key_id-120} label: {$row.device_key_label} +{elseif $row.device_key_category == "expansion"} +expmod4 key{$row.device_key_id-180} type: {$row.device_key_type} +expmod4 key{$row.device_key_id-180} line: {$row.device_key_line} +expmod4 key{$row.device_key_id-180} value: {$row.device_key_value} +expmod4 key{$row.device_key_id-180} label: {$row.device_key_label} +{/if} + +{/foreach}