<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gijsbert+Zijlstra</id>
	<title>innovaphone wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.innovaphone.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gijsbert+Zijlstra"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/Gijsbert_Zijlstra"/>
	<updated>2026-05-10T08:31:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=52355</id>
		<title>User:Gijsbert Zijlstra</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=52355"/>
		<updated>2019-06-04T11:13:32Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gijsbert Zijlstra&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Support Manager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lydis b.v.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Jool-Hulstraat 16&lt;br /&gt;
&lt;br /&gt;
NL – 1327 HA Almere&lt;br /&gt;
&lt;br /&gt;
The Netherlands&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel:      +31 (0) 36 20 20 120&lt;br /&gt;
&lt;br /&gt;
Mobile: +31 (0) 6 820 19 802&lt;br /&gt;
&lt;br /&gt;
Fax:     +31 (0) 36 20 20 129&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:g.zijlstra@lydis.nl g.zijlstra@lydis.nl]&lt;br /&gt;
&lt;br /&gt;
Web:    [https://www.lydis.nl www.lydis.nl]&lt;br /&gt;
&lt;br /&gt;
Skype:  gijsbertzijlstra&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=47986</id>
		<title>User:Gijsbert Zijlstra</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=47986"/>
		<updated>2017-10-03T08:22:50Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gijsbert Zijlstra&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Support Manager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lydis b.v.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Antennestraat 33&lt;br /&gt;
&lt;br /&gt;
NL – 1322 AH Almere&lt;br /&gt;
&lt;br /&gt;
The Netherlands&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel:      +31 (0) 36 20 20 120&lt;br /&gt;
&lt;br /&gt;
Mobile: +31 (0) 6 820 19 802&lt;br /&gt;
&lt;br /&gt;
Fax:     +31 (0) 36 20 20 129&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:g.zijlstra@lydis.nl g.zijlstra@lydis.nl]&lt;br /&gt;
&lt;br /&gt;
Web:    [https://www.lydis.nl www.lydis.nl]&lt;br /&gt;
&lt;br /&gt;
Skype:  gijsbertzijlstra&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference8:Configuration/General/HTTP-Server&amp;diff=17408</id>
		<title>Reference8:Configuration/General/HTTP-Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference8:Configuration/General/HTTP-Server&amp;diff=17408"/>
		<updated>2010-05-03T07:40:39Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The internal HTTP server allows web access to the device.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Force HTTPS:&#039;&#039;&#039;&lt;br /&gt;
|Allow only HTTPS sessions. HTTP requests are redirected to HTTPS requests. On the first request after enabling this feature some browsers may not accept redirection of the XSL file, in this case the reload button of the browser helps.&amp;lt;br&amp;gt;&lt;br /&gt;
When you still get the message in the browser that the page can&#039;t be found, check if the TLS 1.0 support is enabled in the browser.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Disable HTTP basic authentication:&#039;&#039;&#039;&lt;br /&gt;
|For HTTP basic and digest authentication is supported by the device. With basic authentication the password is transmitted as clear text, which is a security risk if the someone can listen to this coummunication. Digest authentication only transmits a hash code of the password which is of no use for a listener. To avoid the vulnerability of the basic authentication it can be disabled, but some applications may not support the digest authentication, which in turn do not work anymore if basic authentication is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Password protect all HTTP pages:&#039;&#039;&#039;&lt;br /&gt;
|Apart from the start page Configuration/General/Info, all areas of the user interface are password protected. If this checkmark is set all pages are password protected. This option disables also login to the system using the &#039;Name&#039; and the &#039;Password&#039; configured in the PBX User object, so only logins with device administrator accounts are possible.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Port:&#039;&#039;&#039;&lt;br /&gt;
|As default port 80 is used for HTTP. With this field it can be changed to any other value (e.g. 8080).&lt;br /&gt;
For disabling HTTP in general - so that only HTTPS is allowed - set the Port to 0&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;HTTPS-Port:&#039;&#039;&#039;&lt;br /&gt;
|As default port is 443 is used for HTTPS. With this field it can be changed to any other value.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;External style sheet:&#039;&#039;&#039;&lt;br /&gt;
|If you want to personalize the appearance of the web interface you can specify the location of an external style sheet (CSS). If empty, the built-in style sheet of the box is used.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Allowed stations:&#039;&#039;&#039;&lt;br /&gt;
|Access to the device can be restricted to a particular network (for example, 192.168.0.0 / 255.255.0.0) or to a particular host (for example, 192.168.0.23 / 255.255.255.255).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Public compact flash access:&#039;&#039;&#039;&lt;br /&gt;
|Access to the compact flash generally needs authentication ( user and password ). If parts of the compact flash shall be accessed without authentication a list with the path and the access rights ( read or write ) can be configured. The access rights of the first match of the list is used. If the &#039;&#039;Path&#039;&#039; ends with a slash (&#039;/&#039;), then the whole sub-tree is affected.  Example: If the compact flash drive is used for a update script in the directory &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and the backups are stored in a directory &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt; the configuration could be &amp;lt;code&amp;gt;/drive/cf0/script/&amp;lt;/code&amp;gt; &#039;&#039;read&#039;&#039; and &amp;lt;code&amp;gt;/drive/cf0/backup/&amp;lt;/code&amp;gt; &#039;&#039;write&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
All active HTTP sessions are displayed under the Active HTTP sessions section. The table shows for each session the clients IP address, the most recently accessed URL and the number of HTTP requests served on the session.&lt;br /&gt;
&lt;br /&gt;
For example: From 172.16.1.49 To /HTTP0/info.xml No 22.&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=8560</id>
		<title>Reference:Update Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=8560"/>
		<updated>2008-03-03T13:57:06Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration of the Update-Server ==&lt;br /&gt;
It is possible to update the firmware and configuration of a large number of innovaphone devices in a distributed environment by automated means.&lt;br /&gt;
&lt;br /&gt;
This is done by storing the configuration and firmware information on a standard Web server, which in turn is called up the individual devices.&lt;br /&gt;
&lt;br /&gt;
There are two modules in the device which work in tandem. The first is known as &amp;quot;UP0&amp;quot; and acutally executes the upload and download of configuration information as well as the download of updated firmware. UP0 is controlled by commands as detailed below.&lt;br /&gt;
The second module is known as &amp;quot;UP1&amp;quot;. It serves to poll a given website for changed configuration information. If certain conditions are met, UP1 will issue commands to UP1 to perform the requested updates.&lt;br /&gt;
&lt;br /&gt;
=== System requirements ===&lt;br /&gt;
* One or more Web server(s) accessible by the devices.&lt;br /&gt;
* The Web servers tested were MS IIS and the Apache server. It should, however, also work with all other common Web servers.&lt;br /&gt;
* For best results, the Web server should be able to manage a large number of simultaneous HTTP sessions. MS Personal Web Server, for example, is not a suitable Web server, since it manages a maximum of 10 simultaneous HTTP sessions.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
To be able to transfer device configurations onto the Webserver, the latter must allow HTTP PUT requests. All other functions require  HTTP GET authorisation.&lt;br /&gt;
&lt;br /&gt;
Since all HTTP requests are executed unauthenticated, the Web server must allow anonymous reading and possibly also anonymous writing.&lt;br /&gt;
&lt;br /&gt;
To allow HTTP PUT commands on a MS IIS, the read and write check box must be enabled in the configuration of the relevant virtual directory.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Detailed information on how the URL parameter of the update server is configured on the innovaphone devices may be found in the chapter entitled &amp;quot;[[Reference:Configuration/General/Update|Configuration/General/Update]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note here that the URL parameter must point precisely to the location of the file with the contained maintenance commands. It is also to be noted that this URL (just like all other URLs used by innovaphone devices) does not support host names. Therefore, a valid IP address always has to specified.&lt;br /&gt;
&lt;br /&gt;
If the URL happens to end with a ‘/’, then a standard file name based on the product description is used. If, for example, the URL is &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/&amp;lt;/nowiki&amp;gt; , then it is extended in the case of an IP1200 as follows: &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/update-ip1200.htm&amp;lt;/nowiki&amp;gt; . The product name is specified in the first line in chapter &amp;quot;[[Reference:Configuration/General/Info|Configuration/General/Info]]&amp;quot;. The file extension is irrelevant here. The extension *.txt or *.htm or no file extension at all is possible. In relation to URL specifications, note that some Web servers differentiate between upper case and lower case letters.&lt;br /&gt;
&lt;br /&gt;
=== Running maintenance ===&lt;br /&gt;
The update file is immediately read and also immediately executed. After a device restart, the update server is automatically queried periodically in accordance with the interval set.&lt;br /&gt;
&lt;br /&gt;
When the maintenance file has been successfully received, it is executed sequentially. Theoretically, all commands that can be transmitted to the device in a Telnet session or that occur in a configuration file can be used in the maintenance file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Maintenance commands ===&lt;br /&gt;
Additional commands implemented specially for the update server are available.&lt;br /&gt;
The maintenance file is executed every time (depending on the interval set), as soon as it is received.&lt;br /&gt;
&lt;br /&gt;
==== Check command ====&lt;br /&gt;
In most cases, however, the maintenance file should be executed not every time as soon as it is received, but once only. Assuming that a secure configuration is to be loaded onto several devices, then it is best if this is done from one device. This can be achieved with the check command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 check &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/CHECK. The check command compares the content of &amp;lt;serial&amp;gt; with the UPDATE/CHECK variable. If both match, all further processes of the maintenance file are terminated.&lt;br /&gt;
&lt;br /&gt;
If they differ, the remaining processes are executed. When the last process has been executed, the UPDATE/CHECK variable is overwritten with the content of &amp;lt;serial&amp;gt;, and the content of &amp;lt;final-command&amp;gt; is executed. The following commands are usable content for &amp;lt;final-command&amp;gt;&lt;br /&gt;
* ireset: Resets the device as soon as it is not being actively used.&lt;br /&gt;
* reset: Resets the device immediately.&lt;br /&gt;
* iresetn: Resets the device as soon as it is not being actively used and a reset is required.&lt;br /&gt;
* resetn: Resets the device immediately if a reset is required.&lt;br /&gt;
* ser: no-op&lt;br /&gt;
&lt;br /&gt;
==== Time command ====&lt;br /&gt;
Often it is preferred to perform such changes at particular times (for example, at night when no work is being done). This can be achieved with the times command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time command compares the current time with the content of &amp;lt;hours&amp;gt;. &amp;lt;hours&amp;gt; is a comma-separated list of specified hours, within which execution of the maintenance file is possible. If the content of &amp;lt;hours&amp;gt; with the restriction does not match, all further processes are terminated. The following hours are considered valid times, within which execution of the maintenance file makes sense.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this command, execution of the maintenance file is allowed from 12:00 to 12:59 hrs and from 22:00 to 04:59 hrs. If the device does not have a time, all processes are terminated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;] [/initial &amp;lt;minutes&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the /initial parameter is set, no further commands are executed within the specified number of minutes &amp;lt;minutes&amp;gt;, once the device has been reset. This was implemented to avoid a firmware download and the overwriting of Flash memory during device installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4 /initial 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this specification, all processes of the maintenance file are suppressed within the first six minutes and within the valid times specified in the /allow parameter after every device restart. If the /initial parameter was set, new devices (or devices that were reset with the standard settings) can, after a restart, receive the maintenance file within the number of minutes specified in the /initial parameter, even if they lie outside the valid times as specified in the /allow parameter. This allows new devices to receive a current standard configuration quickly.&lt;br /&gt;
&lt;br /&gt;
==== Prot command ====&lt;br /&gt;
To initiate a firmware update, the following command can be executed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command downloads new firmware (if available) from the specified URL onto the device. Finally, the &amp;lt;final-command&amp;gt; is executed.&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/PROT. The prot command compares the content of &amp;lt;build-serial&amp;gt; with the UPDATE/PROT variable. If both match, no firmware is downloaded. If the UPDATE/PROT variable is not set (new devices or after a device restart), the content of &amp;lt;build-serial&amp;gt; is compared with the built number of the current firmware. Once the firmware has been successfully downloaded, the UPDATE/PROT variable is overwritten with the content of &amp;lt;build-serial&amp;gt; . Note that the &amp;lt;build-serial&amp;gt; parameter is not compared with the firmware version currently loaded. It is the responsibility of the administrator to keep this standard.&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;url&amp;gt; parameter ends with a slash (‘/’), a standard firmware file name is appended to the URL depending on the product description (for example, IP1200.bin for an IP DECT system).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ip1200.bin ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the firmware version 04-5656 was already installed. If this is not the case, the current firmware is downloaded from the address 192.168.0.10/firm/ip1200.bin, the UPDATE/PROT internal variable is overwritten with 04-5656 and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
==== Boot command ====&lt;br /&gt;
With the boot command, the boot code is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 205&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the boot code version 205 was already installed. If this is not the case, the current boot code is downloaded from the address 192.168.0.10/firm/boot1200.bin, the UPDATE/BOOT internal variable is overwritten with the version number of the downloaded boot code (205) and, finally, the device is reset as soon as it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
==== Bmc command (only for DECT devices)====&lt;br /&gt;
With the bmc command, the DECT radio code ( aka burst mode controller firmware or BMC code ) is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset PCS04fd&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the DECT radio code PCS04fd was already installed. If this is not the case, the current DECT radio code is downloaded from the address 192.168.0.10/firm/ccfp1200.bin, the UPDATE/BMC internal variable is overwritten with PCS04fd and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
==== SCFG command ====&lt;br /&gt;
If the UP0 interface is being used, then the device configuration can be stored on a Web server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0  scfg &#039;&#039;&amp;lt;url&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command instructs the device to upload its current configuration to the &#039;&#039;&amp;lt;url&amp;gt;&#039;&#039;. This can be achieved with the HTTP PUT command. The url must be writable. The following constants can be used in the url:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Sequence !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Replaces !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Example&lt;br /&gt;
|-&lt;br /&gt;
| #F || kernel build number || 08-12345&lt;br /&gt;
|-&lt;br /&gt;
| #B || boot code build number || 401&lt;br /&gt;
|-&lt;br /&gt;
| #H || hardware build || 102&lt;br /&gt;
|-&lt;br /&gt;
| #h || Device hardware number || IP1200-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #m || MAC address of the device || 00-90-33-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #d || Current date and time || 20051010-170130&lt;br /&gt;
|-&lt;br /&gt;
| #b&#039;&#039;n&#039;&#039; || rolling backup index || 3&lt;br /&gt;
|-&lt;br /&gt;
| #i || (one of) the local ip-address || 192.168.0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rolling backup number loops over 0 .. &#039;&#039;n&#039;&#039;-1 for each backup.&lt;br /&gt;
&lt;br /&gt;
==== CFG command ====&lt;br /&gt;
A configuration file may be loaded using the &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd cfg &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command. The file will be read, all configuration commands in there executed and a final &#039;&#039;&#039;config write&#039;&#039;&#039; appended.  Please note that no activation will be done implicitly.  Thus, you will likely either use &#039;&#039;&#039;reset&#039;&#039;&#039; as &amp;lt;final-command&amp;gt; or use &#039;&#039;&#039;ser&#039;&#039;&#039; and have a &#039;&#039;&#039;config activate&#039;&#039;&#039; and &#039;&#039;&#039;iresetn&#039;&#039;&#039; follow.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
A Web server exists at the address 192.168.0.10 with a subdirectory called configs. In this directory, there are two further subdirectories, in which the current firmware files for all innovaphone devices are stored.&lt;br /&gt;
Clients provide the DHCP server with the option #215 as &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/&amp;lt;/nowiki&amp;gt;. In this directory, there is a file update-ip1200.htm , which processes the following lines:&lt;br /&gt;
&lt;br /&gt;
  mod cmd UP1 times /allow 23,0,1,2,3,4 /initial 6&lt;br /&gt;
  mod cmd UP0 scfg http://192.168.0.10/configs/saved/#h.txt&lt;br /&gt;
  mod cmd UP0 prot http://192.168.0.10/configs/04-5679 ser 04-5679&lt;br /&gt;
  mod cmd UP1 check ser 20040330-01&lt;br /&gt;
  config change PHONECFG0 /coder G729A,60, /lang eng /protect&lt;br /&gt;
  config change PHONEAPP0 /f4-10 BellOff /f4-v0 %1BE /f5-10 BellOn /f5-v0 %1BF&lt;br /&gt;
  config write&lt;br /&gt;
  config activate&lt;br /&gt;
  iresetn&lt;br /&gt;
&lt;br /&gt;
This example demonstrates how the configuration of a device is stored on a Web server; all IP1200 devices are then instructed to load/update the firware version 04-5679 in the time period 23:00 hrs to 04:59 hrs. New devices are updated after a restart and after the specified six minutes have elapsed. The devices are configured so that they use the G729 codec with a frame size of 60ms, the language setting is English and the configuration is write-protected. Therefore, only an administrator with appropriate authorisation can change this file. In addition, two standard functions were programmed for the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is also the file update-ip3000.htm, which reads the following two lines:&lt;br /&gt;
  mod cmd UP1 time /allow 23,0,1,2,3,4&lt;br /&gt;
  mod cmd UP0 prot http://192.168.0.10/configs/04-5679 /ser 04-5679&lt;br /&gt;
&lt;br /&gt;
IP3000 devices are updated to firmware version 04-5679 in the time period 23:00 hrs to 04:59 hrs.&lt;br /&gt;
&lt;br /&gt;
====Using an innovaphone box as web server====&lt;br /&gt;
Any box with a CF slot and a CF card installed can serve as web server platform to read update scripts, firmware files, configuration files or to save configurations from V6 SR1 on.&lt;br /&gt;
&lt;br /&gt;
====Asynchronous operation====&lt;br /&gt;
The commands prot boot bmc and cfg run asyncronous. The status of the current upload  command can be shown with the status command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In most cases a syncronous operation is preferred, in this case the /sync option can be used:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 /sync prot&#039;&#039;&#039; ...&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=8559</id>
		<title>Reference:Update Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=8559"/>
		<updated>2008-03-03T13:53:34Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration of the Update-Server ==&lt;br /&gt;
It is possible to update the firmware and configuration of a large number of innovaphone devices in a distributed environment by automated means.&lt;br /&gt;
&lt;br /&gt;
This is done by storing the configuration and firmware information on a standard Web server, which in turn is called up the individual devices.&lt;br /&gt;
&lt;br /&gt;
There are two modules in the device which work in tandem. The first is known as &amp;quot;UP0&amp;quot; and acutally executes the upload and download of configuration information as well as the download of updated firmware. UP0 is controlled by commands as detailed below.&lt;br /&gt;
The second module is known as &amp;quot;UP1&amp;quot;. It serves to poll a given website for changed configuration information. If certain conditions are met, UP1 will issue commands to UP1 to perform the requested updates.&lt;br /&gt;
&lt;br /&gt;
=== System requirements ===&lt;br /&gt;
* One or more Web server(s) accessible by the devices.&lt;br /&gt;
* The Web servers tested were MS IIS and the Apache server. It should, however, also work with all other common Web servers.&lt;br /&gt;
* For best results, the Web server should be able to manage a large number of simultaneous HTTP sessions. MS Personal Web Server, for example, is not a suitable Web server, since it manages a maximum of 10 simultaneous HTTP sessions.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
To be able to transfer device configurations onto the Webserver, the latter must allow HTTP PUT requests. All other functions require  HTTP GET authorisation.&lt;br /&gt;
&lt;br /&gt;
Since all HTTP requests are executed unauthenticated, the Web server must allow anonymous reading and possibly also anonymous writing.&lt;br /&gt;
&lt;br /&gt;
To allow HTTP PUT commands on a MS IIS, the read and write check box must be enabled in the configuration of the relevant virtual directory.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Detailed information on how the URL parameter of the update server is configured on the innovaphone devices may be found in the chapter entitled &amp;quot;[[Reference:Configuration/General/Update|Configuration/General/Update]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note here that the URL parameter must point precisely to the location of the file with the contained maintenance commands. It is also to be noted that this URL (just like all other URLs used by innovaphone devices) does not support host names. Therefore, a valid IP address always has to specified.&lt;br /&gt;
&lt;br /&gt;
If the URL happens to end with a ‘/’, then a standard file name based on the product description is used. If, for example, the URL is &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/&amp;lt;/nowiki&amp;gt; , then it is extended in the case of an IP1200 as follows: &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/update-ip1200.htm&amp;lt;/nowiki&amp;gt; . The product name is specified in the first line in chapter &amp;quot;[[Reference:Configuration/General/Info|Configuration/General/Info]]&amp;quot;. The file extension is irrelevant here. The extension *.txt or *.htm or no file extension at all is possible. In relation to URL specifications, note that some Web servers differentiate between upper case and lower case letters.&lt;br /&gt;
&lt;br /&gt;
=== Running maintenance ===&lt;br /&gt;
The update file is immediately read and also immediately executed. After a device restart, the update server is automatically queried periodically in accordance with the interval set.&lt;br /&gt;
&lt;br /&gt;
When the maintenance file has been successfully received, it is executed sequentially. Theoretically, all commands that can be transmitted to the device in a Telnet session or that occur in a configuration file can be used in the maintenance file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Maintenance commands ===&lt;br /&gt;
Additional commands implemented specially for the update server are available.&lt;br /&gt;
The maintenance file is executed every time (depending on the interval set), as soon as it is received.&lt;br /&gt;
&lt;br /&gt;
==== Check command ====&lt;br /&gt;
In most cases, however, the maintenance file should be executed not every time as soon as it is received, but once only. Assuming that a secure configuration is to be loaded onto several devices, then it is best if this is done from one device. This can be achieved with the check command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 check &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/CHECK. The check command compares the content of &amp;lt;serial&amp;gt; with the UPDATE/CHECK variable. If both match, all further processes of the maintenance file are terminated.&lt;br /&gt;
&lt;br /&gt;
If they differ, the remaining processes are executed. When the last process has been executed, the UPDATE/CHECK variable is overwritten with the content of &amp;lt;serial&amp;gt;, and the content of &amp;lt;final-command&amp;gt; is executed. The following commands are usable content for &amp;lt;final-command&amp;gt;&lt;br /&gt;
* ireset: Resets the device as soon as it is not being actively used.&lt;br /&gt;
* reset: Resets the device immediately.&lt;br /&gt;
* iresetn: Resets the device as soon as it is not being actively used and a reset is required.&lt;br /&gt;
* resetn: Resets the device immediately if a reset is required.&lt;br /&gt;
* ser: no-op&lt;br /&gt;
&lt;br /&gt;
==== Time command ====&lt;br /&gt;
Often it is preferred to perform such changes at particular times (for example, at night when no work is being done). This can be achieved with the times command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time command compares the current time with the content of &amp;lt;hours&amp;gt;. &amp;lt;hours&amp;gt; is a comma-separated list of specified hours, within which execution of the maintenance file is possible. If the content of &amp;lt;hours&amp;gt; with the restriction does not match, all further processes are terminated. The following hours are considered valid times, within which execution of the maintenance file makes sense.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this command, execution of the maintenance file is allowed from 12:00 to 12:59 hrs and from 22:00 to 04:59 hrs. If the device does not have a time, all processes are terminated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;] [/initial &amp;lt;minutes&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the /initial parameter is set, no further commands are executed within the specified number of minutes &amp;lt;minutes&amp;gt;, once the device has been reset. This was implemented to avoid a firmware download and the overwriting of Flash memory during device installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4 /initial 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this specification, all processes of the maintenance file are suppressed within the first six minutes and within the valid times specified in the /allow parameter after every device restart. If the /initial parameter was set, new devices (or devices that were reset with the standard settings) can, after a restart, receive the maintenance file within the number of minutes specified in the /initial parameter, even if they lie outside the valid times as specified in the /allow parameter. This allows new devices to receive a current standard configuration quickly.&lt;br /&gt;
&lt;br /&gt;
==== Prot command ====&lt;br /&gt;
To initiate a firmware update, the following command can be executed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command downloads new firmware (if available) from the specified URL onto the device. Finally, the &amp;lt;final-command&amp;gt; is executed.&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/PROT. The prot command compares the content of &amp;lt;build-serial&amp;gt; with the UPDATE/PROT variable. If both match, no firmware is downloaded. If the UPDATE/PROT variable is not set (new devices or after a device restart), the content of &amp;lt;build-serial&amp;gt; is compared with the built number of the current firmware. Once the firmware has been successfully downloaded, the UPDATE/PROT variable is overwritten with the content of &amp;lt;build-serial&amp;gt; . Note that the &amp;lt;build-serial&amp;gt; parameter is not compared with the firmware version currently loaded. It is the responsibility of the administrator to keep this standard.&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;url&amp;gt; parameter ends with a slash (‘/’), a standard firmware file name is appended to the URL depending on the product description (for example, IP1200.bin for an IP DECT system).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ip1200.bin ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the firmware version 04-5656 was already installed. If this is not the case, the current firmware is downloaded from the address 192.168.0.10/firm/ip1200.bin, the UPDATE/PROT internal variable is overwritten with 04-5656 and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
==== Boot command ====&lt;br /&gt;
With the boot command, the boot code is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 205&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the boot code version 205 was already installed. If this is not the case, the current boot code is downloaded from the address 192.168.0.10/firm/boot1200.bin, the UPDATE/BOOT internal variable is overwritten with the version number of the downloaded boot code (205) and, finally, the device is reset as soon as it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
==== Bmc command (only for DECT devices)====&lt;br /&gt;
With the bmc command, the DECT radio code ( aka burst mode controller firmware or BMC code ) is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset PCS04fd&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the DECT radio code PCS04fd was already installed. If this is not the case, the current DECT radio code is downloaded from the address 192.168.0.10/firm/ccfp1200.bin, the UPDATE/BMC internal variable is overwritten with PCS04fd and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
==== SCFG command ====&lt;br /&gt;
If the UP0 interface is being used, then the device configuration can be stored on a Web server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0  scfg &#039;&#039;&amp;lt;url&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command instructs the device to upload its current configuration to the &#039;&#039;&amp;lt;url&amp;gt;&#039;&#039;. This can be achieved with the HTTP PUT command. The url must be writable. The following constants can be used in the url:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Sequence !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Replaces !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Example&lt;br /&gt;
|-&lt;br /&gt;
| #F || kernel build number || 08-12345&lt;br /&gt;
|-&lt;br /&gt;
| #B || boot code build number || 401&lt;br /&gt;
|-&lt;br /&gt;
| #H || hardware build || 102&lt;br /&gt;
|-&lt;br /&gt;
| #h || Device hardware number || IP1200-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #m || MAC address of the device || 00-90-33-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #d || Current date and time || 20051010-170130&lt;br /&gt;
|-&lt;br /&gt;
| #b&#039;&#039;n&#039;&#039; || rolling backup index || 3&lt;br /&gt;
|-&lt;br /&gt;
| #i || (one of) the local ip-address || 192.168.0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rolling backup number loops over 0 .. &#039;&#039;n&#039;&#039;-1 for each backup.&lt;br /&gt;
&lt;br /&gt;
==== CFG command ====&lt;br /&gt;
A configuration file may be loaded using the &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd cfg &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command. The file will be read, all configuration commands in there executed and a final &#039;&#039;&#039;config write&#039;&#039;&#039; appended.  Please note that no activation will be done implicitly.  Thus, you will likely either use &#039;&#039;&#039;reset&#039;&#039;&#039; as &amp;lt;final-command&amp;gt; or use &#039;&#039;&#039;ser&#039;&#039;&#039; and have a &#039;&#039;&#039;config activate&#039;&#039;&#039; and &#039;&#039;&#039;iresetn&#039;&#039;&#039; follow.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
A Web server exists at the address 192.168.0.10 with a subdirectory called configs. In this directory, there are two further subdirectories, in which the current firmware files for all innovaphone devices are stored.&lt;br /&gt;
Clients provide the DHCP server with the option #215 as &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/&amp;lt;/nowiki&amp;gt;. In this directory, there is a file update-ip1200.htm , which processes the following lines:&lt;br /&gt;
&lt;br /&gt;
  mod cmd UP1 times /allow 23,0,1,2,3,4 /initial 6&lt;br /&gt;
  mod cmd UP0 scfg http://192.168.0.10/configs/saved/#h.txt&lt;br /&gt;
  mod cmd UP0 prot http://192.168.0.10/configs/04-5679 ser 04-5679&lt;br /&gt;
  mod cmd UP1 check ser 20040330-01&lt;br /&gt;
  config change PHONECFG0 /coder G729A,60, /lang eng /protect&lt;br /&gt;
  config change PHONEAPP0 /f4-10 BellOff /f4-v0 %1BE /f5-10 BellOn /f5-v0 %1BF&lt;br /&gt;
  config write&lt;br /&gt;
  config activate&lt;br /&gt;
  iresetn&lt;br /&gt;
&lt;br /&gt;
This example demonstrates how the configuration of a device is stored on a Web server; all IP1200 devices are then instructed to load/update the firware version 04-5679 in the time period 23:00 hrs to 04:59 hrs. New devices are updated after a restart and after the specified six minutes have elapsed. The devices are configured so that they use the G729 codec with a frame size of 60ms, the language setting is English and the configuration is write-protected. Therefore, only an administrator with appropriate authorisation can change this file. In addition, two standard functions were programmed for the device.&lt;br /&gt;
&lt;br /&gt;
There is also the file update-ip3000.htm, which reads the following two lines:&lt;br /&gt;
  mod cmd UP1 time /allow 23,0,1,2,3,4&lt;br /&gt;
  mod cmd UP0 prot http://192.168.0.10/configs/04-5679 /ser 04-5679&lt;br /&gt;
&lt;br /&gt;
IP3000 devices are updated to firmware version 04-5679 in the time period 23:00 hrs to 04:59 hrs.&lt;br /&gt;
&lt;br /&gt;
====Using an innovaphone box as web server====&lt;br /&gt;
Any box with a CF slot and a CF card installed can serve as web server platform to read update scripts, firmware files, configuration files or to save configurations from V6 SR1 on.&lt;br /&gt;
&lt;br /&gt;
====Asynchronous operation====&lt;br /&gt;
The commands prot boot bmc and cfg run asyncronous. The status of the current upload  command can be shown with the status command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In most cases a syncronous operation is preferred, in this case the /sync option can be used:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 /sync prot&#039;&#039;&#039; ...&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=8557</id>
		<title>Reference:Update Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=8557"/>
		<updated>2008-03-03T13:41:12Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: /* Boot command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration of the Update-Server ==&lt;br /&gt;
It is possible to update the firmware and configuration of a large number of innovaphone devices in a distributed environment by automated means.&lt;br /&gt;
&lt;br /&gt;
This is done by storing the configuration and firmware information on a standard Web server, which in turn is called up the individual devices.&lt;br /&gt;
&lt;br /&gt;
There are two modules in the device which work in tandem. The first is known as &amp;quot;UP0&amp;quot; and acutally executes the upload and download of configuration information as well as the download of updated firmware. UP0 is controlled by commands as detailed below.&lt;br /&gt;
The second module is known as &amp;quot;UP1&amp;quot;. It serves to poll a given website for changed configuration information. If certain conditions are met, UP1 will issue commands to UP1 to perform the requested updates.&lt;br /&gt;
&lt;br /&gt;
=== System requirements ===&lt;br /&gt;
* One or more Web server(s) accessible by the devices.&lt;br /&gt;
* The Web servers tested were MS IIS and the Apache server. It should, however, also work with all other common Web servers.&lt;br /&gt;
* For best results, the Web server should be able to manage a large number of simultaneous HTTP sessions. MS Personal Web Server, for example, is not a suitable Web server, since it manages a maximum of 10 simultaneous HTTP sessions.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
To be able to transfer device configurations onto the Webserver, the latter must allow HTTP PUT requests. All other functions require  HTTP GET authorisation.&lt;br /&gt;
&lt;br /&gt;
Since all HTTP requests are executed unauthenticated, the Web server must allow anonymous reading and possibly also anonymous writing.&lt;br /&gt;
&lt;br /&gt;
To allow HTTP PUT commands on a MS IIS, the read and write check box must be enabled in the configuration of the relevant virtual directory.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
Detailed information on how the URL parameter of the update server is configured on the innovaphone devices may be found in the chapter entitled &amp;quot;[[Reference:Configuration/General/Update|Configuration/General/Update]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note here that the URL parameter must point precisely to the location of the file with the contained maintenance commands. It is also to be noted that this URL (just like all other URLs used by innovaphone devices) does not support host names. Therefore, a valid IP address always has to specified.&lt;br /&gt;
&lt;br /&gt;
If the URL happens to end with a ‘/’, then a standard file name based on the product description is used. If, for example, the URL is &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/&amp;lt;/nowiki&amp;gt; , then it is extended in the case of an IP1200 as follows: &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/update-ip1200.htm&amp;lt;/nowiki&amp;gt; . The product name is specified in the first line in chapter &amp;quot;[[Reference:Configuration/General/Info|Configuration/General/Info]]&amp;quot;. The file extension is irrelevant here. The extension *.txt or *.htm or no file extension at all is possible. In relation to URL specifications, note that some Web servers differentiate between upper case and lower case letters.&lt;br /&gt;
&lt;br /&gt;
=== Running maintenance ===&lt;br /&gt;
The update file is immediately read and also immediately executed. After a device restart, the update server is automatically queried periodically in accordance with the interval set.&lt;br /&gt;
&lt;br /&gt;
When the maintenance file has been successfully received, it is executed sequentially. Theoretically, all commands that can be transmitted to the device in a Telnet session or that occur in a configuration file can be used in the maintenance file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Maintenance commands ===&lt;br /&gt;
Additional commands implemented specially for the update server are available.&lt;br /&gt;
The maintenance file is executed every time (depending on the interval set), as soon as it is received.&lt;br /&gt;
&lt;br /&gt;
==== Check command ====&lt;br /&gt;
In most cases, however, the maintenance file should be executed not every time as soon as it is received, but once only. Assuming that a secure configuration is to be loaded onto several devices, then it is best if this is done from one device. This can be achieved with the check command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 check &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/CHECK. The check command compares the content of &amp;lt;serial&amp;gt; with the UPDATE/CHECK variable. If both match, all further processes of the maintenance file are terminated.&lt;br /&gt;
&lt;br /&gt;
If they differ, the remaining processes are executed. When the last process has been executed, the UPDATE/CHECK variable is overwritten with the content of &amp;lt;serial&amp;gt;, and the content of &amp;lt;final-command&amp;gt; is executed. The following commands are usable content for &amp;lt;final-command&amp;gt;&lt;br /&gt;
* ireset: Resets the device as soon as it is not being actively used.&lt;br /&gt;
* reset: Resets the device immediately.&lt;br /&gt;
* iresetn: Resets the device as soon as it is not being actively used and a reset is required.&lt;br /&gt;
* resetn: Resets the device immediately if a reset is required.&lt;br /&gt;
* ser: no-op&lt;br /&gt;
&lt;br /&gt;
==== Time command ====&lt;br /&gt;
Often it is preferred to perform such changes at particular times (for example, at night when no work is being done). This can be achieved with the times command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time command compares the current time with the content of &amp;lt;hours&amp;gt;. &amp;lt;hours&amp;gt; is a comma-separated list of specified hours, within which execution of the maintenance file is possible. If the content of &amp;lt;hours&amp;gt; with the restriction does not match, all further processes are terminated. The following hours are considered valid times, within which execution of the maintenance file makes sense.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this command, execution of the maintenance file is allowed from 12:00 to 12:59 hrs and from 22:00 to 04:59 hrs. If the device does not have a time, all processes are terminated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;] [/initial &amp;lt;minutes&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the /initial parameter is set, no further commands are executed within the specified number of minutes &amp;lt;minutes&amp;gt;, once the device has been reset. This was implemented to avoid a firmware download and the overwriting of Flash memory during device installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4 /initial 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this specification, all processes of the maintenance file are suppressed within the first six minutes and within the valid times specified in the /allow parameter after every device restart. If the /initial parameter was set, new devices (or devices that were reset with the standard settings) can, after a restart, receive the maintenance file within the number of minutes specified in the /initial parameter, even if they lie outside the valid times as specified in the /allow parameter. This allows new devices to receive a current standard configuration quickly.&lt;br /&gt;
&lt;br /&gt;
==== Prot command ====&lt;br /&gt;
To initiate a firmware update, the following command can be executed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command downloads new firmware (if available) from the specified URL onto the device. Finally, the &amp;lt;final-command&amp;gt; is executed.&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/PROT. The prot command compares the content of &amp;lt;build-serial&amp;gt; with the UPDATE/PROT variable. If both match, no firmware is downloaded. If the UPDATE/PROT variable is not set (new devices or after a device restart), the content of &amp;lt;build-serial&amp;gt; is compared with the built number of the current firmware. Once the firmware has been successfully downloaded, the UPDATE/PROT variable is overwritten with the content of &amp;lt;build-serial&amp;gt; . Note that the &amp;lt;build-serial&amp;gt; parameter is not compared with the firmware version currently loaded. It is the responsibility of the administrator to keep this standard.&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;url&amp;gt; parameter ends with a slash (‘/’), a standard firmware file name is appended to the URL depending on the product description (for example, IP1200.bin for an IP DECT system).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ip1200.bin ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the firmware version 04-5656 was already installed. If this is not the case, the current firmware is downloaded from the address 192.168.0.10/firm/ip1200.bin, the UPDATE/PROT internal variable is overwritten with 04-5656 and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
==== Boot command ====&lt;br /&gt;
With the boot command, the boot code is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 205&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the boot code version 205 was already installed. If this is not the case, the current boot code is downloaded from the address 192.168.0.10/firm/boot1200.bin, the UPDATE/BOOT internal variable is overwritten with the version number of the downloaded boot code (205) and, finally, the device is reset as soon as it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
==== Bmc command (only for DECT devices)====&lt;br /&gt;
With the bmc command, the DECT radio code ( aka burst mode controller firmware or BMC code ) is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset PCS04fd&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the DECT radio code PCS04fd was already installed. If this is not the case, the current DECT radio code is downloaded from the address 192.168.0.10/firm/ccfp1200.bin, the UPDATE/BMC internal variable is overwritten with PCS04fd and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
==== SCFG command ====&lt;br /&gt;
If the UP0 interface is being used, then the device configuration can be stored on a Web server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0  scfg &#039;&#039;&amp;lt;url&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command instructs the device to upload its current configuration to the &#039;&#039;&amp;lt;url&amp;gt;&#039;&#039;. This can be achieved with the HTTP PUT command. The url must be writable. The following constants can be used in the url:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Sequence !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Replaces !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Example&lt;br /&gt;
|-&lt;br /&gt;
| #F || kernel build number || 08-12345&lt;br /&gt;
|-&lt;br /&gt;
| #B || boot code build number || 401&lt;br /&gt;
|-&lt;br /&gt;
| #H || hardware build || 102&lt;br /&gt;
|-&lt;br /&gt;
| #h || Device hardware number || IP1200-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #m || MAC address of the device || 00-90-33-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #d || Current date and time || 20051010-170130&lt;br /&gt;
|-&lt;br /&gt;
| #b&#039;&#039;n&#039;&#039; || rolling backup index || 3&lt;br /&gt;
|-&lt;br /&gt;
| #i || (one of) the local ip-address || 192.168.0.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The rolling backup number loops over 0 .. &#039;&#039;n&#039;&#039;-1 for each backup.&lt;br /&gt;
&lt;br /&gt;
==== CFG command ====&lt;br /&gt;
A configuration file may be loaded using the &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd cfg &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command. The file will be read, all configuration commands in there executed and a final &#039;&#039;&#039;config write&#039;&#039;&#039; appended.  Please note that no activation will be done implicitly.  Thus, you will likely either use &#039;&#039;&#039;reset&#039;&#039;&#039; as &amp;lt;final-command&amp;gt; or use &#039;&#039;&#039;ser&#039;&#039;&#039; and have a &#039;&#039;&#039;config activate&#039;&#039;&#039; and &#039;&#039;&#039;iresetn&#039;&#039;&#039; follow.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
A Web server exists at the address 192.168.0.10 with a subdirectory called configs. In this directory, there are two further subdirectories, in which the current firmware files for all innovaphone devices are stored.&lt;br /&gt;
Clients provide the DHCP server with the option #215 as &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/&amp;lt;/nowiki&amp;gt;. In this directory, there is a file update-ip1200.htm , which processes the following lines:&lt;br /&gt;
&lt;br /&gt;
  mod cmd UP1 times /allow 23,0,1,2,3,4 /initial 6&lt;br /&gt;
  mod cmd UP0 scfg http://192.168.0.10/configs/saved/#h.txt&lt;br /&gt;
  mod cmd UP0 prot http://192.168.0.10/configs/04-5679 ser 04-5679&lt;br /&gt;
  mod cmd UP1 check ser 20040330-01&lt;br /&gt;
  config change PHONECFG0 /coder G729A,60, /lang eng /protect&lt;br /&gt;
  config change PHONEAPP0 /f4-10 BellOff /f4-v0 %1BE /f5-10 BellOn /f5-v0 %1BF&lt;br /&gt;
  config write&lt;br /&gt;
  config activate&lt;br /&gt;
  iresetn&lt;br /&gt;
&lt;br /&gt;
There is also the file update-ip3000.htm, which reads the following two lines:&lt;br /&gt;
  mod cmd UP1 time /allow 23,0,1,2,3,4&lt;br /&gt;
  mod cmd UP0 prot http://192.168.0.10/configs/04-5679 /ser 04-5679&lt;br /&gt;
&lt;br /&gt;
This example demonstrates how the configuration of a device is stored on a Web server; all IP1200 devices are then instructed to load/update the firware version 04-5679 in the time period 23:00 hrs to 04:59 hrs. New devices are updated after a restart and after the specified six minutes have elapsed. The devices are configured so that they use the G729 codec with a frame size of 60ms, the language setting is English and the configuration is write-protected. Therefore, only an administrator with appropriate authorisation can change this file. In addition, two standard functions were programmed for the device.&lt;br /&gt;
&lt;br /&gt;
IP3000 devices are updated to firmware version 04-5679 in the time period 23:00 hrs to 04:59 hrs.&lt;br /&gt;
&lt;br /&gt;
====Using an innovaphone box as web server====&lt;br /&gt;
Any box with a CF slot and a CF card installed can serve as web server platform to read update scripts, firmware files, configuration files or to save configurations from V6 SR1 on.&lt;br /&gt;
&lt;br /&gt;
====Asynchronous operation====&lt;br /&gt;
The commands prot boot bmc and cfg run asyncronous. The status of the current upload  command can be shown with the status command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 status&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In most cases a syncronous operation is preferred, in this case the /sync option can be used:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 /sync prot&#039;&#039;&#039; ...&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=6591</id>
		<title>Reference:Update Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=6591"/>
		<updated>2007-10-23T11:34:44Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: /* Bmc command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to update the firmware and configuration of a large number of innovaphone devices in a distributed environment by automated means.&lt;br /&gt;
&lt;br /&gt;
This is done by storing the configuration and firmware information on a standard Web server, which in turn is called up the individual devices.&lt;br /&gt;
&lt;br /&gt;
There are two modules in the device which work in tandem. The first is known as &amp;quot;UP0&amp;quot; and acutally executes the upload and download of configuration information as well as the download of updated firmware. UP0 is controlled by commands as detailed below.&lt;br /&gt;
The second module is known as &amp;quot;UP1&amp;quot;. It serves to poll a given website for changed configuration information. If certain conditions are met, UP1 will issue commands to UP0 to perform the requested updates.&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
* One or more Web server(s) accessible by the devices. It is also possible to use an innovaphone device with a CF card as an update server.&lt;br /&gt;
* The Web servers tested were MS IIS and the Apache server. It should, however, also work with all other common Web servers.&lt;br /&gt;
* For best results, the Web server should be able to manage a large number of simultaneous HTTP sessions. MS Personal Web Server, for example, is not a suitable Web server, since it manages a maximum of 10 simultaneous HTTP sessions.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
To be able to transfer device configurations onto the Webserver, the latter must allow HTTP PUT requests. All other functions require  HTTP GET authorisation.&lt;br /&gt;
&lt;br /&gt;
Since all HTTP requests are executed unauthenticated, the Web server must allow anonymous reading and possibly also anonymous writing.&lt;br /&gt;
&lt;br /&gt;
To allow HTTP PUT commands on a MS IIS, the read and write check box must be enabled in the configuration of the relevant virtual directory.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Detailed information on how the URL parameter of the update server is configured on the innovaphone devices may be found in the chapter entitled &amp;quot;[[Reference:Configuration/General/Update|Configuration/General/Update]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note here that the URL parameter must point precisely to the location of the file with the contained maintenance commands. It is also to be noted that this URL (just like all other URLs used by innovaphone devices) does not support host names. Therefore, a valid IP address always has to specified.&lt;br /&gt;
&lt;br /&gt;
If the URL happens to end with a ‘/’, then a standard file name based on the product description is used. If, for example, the URL is &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/&amp;lt;/nowiki&amp;gt; , then it is extended in the case of an IP1200 as follows: &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/update-ip1200.htm&amp;lt;/nowiki&amp;gt; . The product name is specified in the first line in chapter &amp;quot;[[Reference:Configuration/General/Info|Configuration/General/Info]]&amp;quot;. The file extension is irrelevant here. The extension *.txt or *.htm or no file extension at all is possible. &lt;br /&gt;
When you discover problems that the update isn&#039;t working and the update screen in the GUI is presenting &amp;quot;failed 404&amp;quot; then check if the file name, for example &amp;quot;update-ip1200&amp;quot; does have the extension *.htm.&lt;br /&gt;
&lt;br /&gt;
In relation to URL specifications, note that some Web servers differentiate between upper case and lower case letters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running maintenance ==&lt;br /&gt;
The update file is immediately read and also immediately executed. After a device restart, the update server is automatically queried periodically in accordance with the interval set.&lt;br /&gt;
&lt;br /&gt;
When the maintenance file has been successfully received, it is executed sequentially. Theoretically, all commands that can be transmitted to the device in a Telnet session or that occur in a configuration file can be used in the maintenance file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintenance commands ==&lt;br /&gt;
Additional commands implemented specially for the update server are available.&lt;br /&gt;
The maintenance file is executed every time (depending on the interval set), as soon as it is received.&lt;br /&gt;
&lt;br /&gt;
=== Check command ===&lt;br /&gt;
In most cases, however, the maintenance file should be executed not every time as soon as it is received, but once only. Assuming that a secure configuration is to be loaded onto several devices, then it is best if this is done from one device. This can be achieved with the check command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 check &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/CHECK. The check command compares the content of &amp;lt;serial&amp;gt; with the UPDATE/CHECK variable. If both match, all further processes of the maintenance file are terminated.&lt;br /&gt;
&lt;br /&gt;
If they differ, the remaining processes are executed. When the last process has been executed, the UPDATE/CHECK variable is overwritten with the content of &amp;lt;serial&amp;gt;, and the content of &amp;lt;final-command&amp;gt; is executed. The following commands are usable content for &amp;lt;final-command&amp;gt;&lt;br /&gt;
* ireset: Resets the device as soon as it is not being actively used.&lt;br /&gt;
* reset: Resets the device immediately.&lt;br /&gt;
* iresetn: Resets the device as soon as it is not being actively used and a reset is required.&lt;br /&gt;
* resetn: Resets the device immediately if a reset is required.&lt;br /&gt;
* ser: Is a global variable and not a function.&lt;br /&gt;
&lt;br /&gt;
=== Times command ===&lt;br /&gt;
Often it is preferred to perform such changes at particular times (for example, at night when no work is being done). This can be achieved with the times command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 times [/allow &amp;lt;hours&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The times command compares the current time with the content of &amp;lt;hours&amp;gt;. &amp;lt;hours&amp;gt; is a comma-separated list of hours, within which execution of the maintenance file is allowed. If  the current time does not match &amp;lt;hours&amp;gt;, all further processing of the maintenance file is suppressed. The command line&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 times /allow 12,22,23,0,1,2,3,4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
allows execution of the maintenance file from 12:00 to 12:59 hrs and from 22:00 to 04:59 hrs. Note that if the device has no time set (yet), all commands following the times command will be ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 times [/allow &amp;lt;hours&amp;gt;] [/initial &amp;lt;minutes&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The /initial parameter prevents execution of the maintanance file within &amp;lt;minutes&amp;gt; minutes after the device has been booted. Further the /initial parameter forces the execution of the maintanance file for new devices when &amp;lt;minutes&amp;gt; minutes have been passed, even if the current time then does not match the times specified in the /allow parameter. Thus the /initial parameter avoids firmware download and overwriting of flash memory during device installation and forces new devices to receive a current standard configuration quickly. The command line&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 times /allow 12,22,23,0,1,2,3,4 /initial 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
will suppress execution of the maintenance file within the first six minutes after each boot of the device. If a new device (or a device that has been reset to factory defaults) (re)reads the maintenance file therafter it will ignore the restrictions of the /allow parameter and execute the maintenance file.&lt;br /&gt;
&lt;br /&gt;
=== Prot command ===&lt;br /&gt;
To initiate a firmware update, the following command can be executed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;build-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command downloads new firmware (if available) from the specified URL onto the device. Finally, the &amp;lt;final-command&amp;gt; is executed.&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/PROT. The prot command compares the content of &amp;lt;build-serial&amp;gt; with the UPDATE/PROT variable. If both match, no firmware is downloaded. If the UPDATE/PROT variable is not set (new devices or after a device restart), the content of &amp;lt;build-serial&amp;gt; is compared with the build number of the current firmware. Once the firmware has been successfully downloaded, the UPDATE/PROT variable is overwritten with the content of &amp;lt;build-serial&amp;gt; . Note that the &amp;lt;build-serial&amp;gt; parameter is not compared with the firmware version currently loaded. It is the responsibility of the administrator to keep this standard.&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;url&amp;gt; parameter ends with a slash (‘/’), a standard firmware file name is appended to the URL depending on the product description (for example, IP1200.bin for an IP DECT system).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ip1200.bin ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the firmware version 04-5656 was already installed. If this is not the case, the current firmware is downloaded from the address 192.168.0.10/firm/ip1200.bin, the UPDATE/PROT internal variable is overwritten with 04-5656 and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
=== Boot command ===&lt;br /&gt;
With the boot command, the boot code is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;build-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 205&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the boot code version 205 was already installed. If this is not the case, the current boot code is downloaded from the address 192.168.0.10/firm/bootip1200.bin, the UPDATE/BOOT internal variable is overwritten with 205 and, finally, the device is reset as soon as it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
=== Bmc command ===&lt;br /&gt;
The bmc command allows you to update the &#039;&#039;burst mode controller&#039; firmware (a.k.a. &#039;&#039;radio-code&#039;&#039;) and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;build-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 bmc &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 4711&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
determines whether the bmc code version 4711 was already installed. If this is not the case, the current bmc code is downloaded from the address 192.168.0.10/firm/ccfp1200.bin, the UPDATE/BMC internal variable is overwritten with 4711 and, finally, the device is reset as soon as it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
Please note that this should work for IP600 and IP1200 and for version 5 and 6, but not for IP1500.  Of course, it does only work for DECT devices anyway.&lt;br /&gt;
&lt;br /&gt;
=== SCFG command ===&lt;br /&gt;
If the UP0 interface is being used, then the device configuration can be stored on a Web server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0  scfg &amp;lt;url&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command instructs the device to upload its current configuration to the &amp;lt;url&amp;gt;. This can be achieved with the HTTP PUT command. The url must be writable. The following constants can be used in the url:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Sequence !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Replaces !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Example&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#d&#039;&#039;&#039; || Current date and time || 20051010-170130&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#m&#039;&#039;&#039; || MAC address of the device || 00-90-33-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#h&#039;&#039;&#039; || Device hardware number || IP1200-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#b&#039;&#039;&#039;&#039;&#039;N&#039;&#039; || Backup number (cycling from 1 to &#039;&#039;N&#039;&#039;)&amp;lt;br&amp;gt;&#039;&#039;N&#039;&#039; defaults to 10  || 1 .. &#039;&#039;N&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#F&#039;&#039;&#039; || current Firmware || 07-6060001&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#B&#039;&#039;&#039; || current boot code (no year) || 307&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#H&#039;&#039;&#039; || current hardware build || 101&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: #b is implemented in version 6.00 SR1, #F/#B/#H are implemented in version 6.00 SR1-hotfix-1&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
A Web server exists at the address 192.168.0.10 with a subdirectory called configs. In this directory, there are two further subdirectories, in which the current firmware files for all innovaphone devices are stored.&lt;br /&gt;
Clients provide the DHCP server with the option #215 as &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/&amp;lt;/nowiki&amp;gt;. In this directory, there is a file update-ip1200.htm , which processes the following lines:&lt;br /&gt;
&lt;br /&gt;
  mod cmd UP1 times /allow 23,0,1,2,3,4 /initial 6&lt;br /&gt;
  mod cmd UP0 scfg &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/saved/#h.txt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/04-5679&amp;lt;/nowiki&amp;gt; /ser 04-5679&lt;br /&gt;
  mod cmd UP1 check ser 20040330-01&lt;br /&gt;
  config change PHONECFG0 /coder G729A,60, /lang eng /protect&lt;br /&gt;
  config change PHONEAPP0 /f4-10 BellOff /f4-v0 %1BE /f5-10 BellOn /f5-v0 %1BF&lt;br /&gt;
  config write&lt;br /&gt;
  config activate&lt;br /&gt;
  iresetn&lt;br /&gt;
&lt;br /&gt;
There is also the file update-ip3000.htm, which reads the following two lines:&lt;br /&gt;
  mod cmd UP1 times /allow 23,0,1,2,3,4&lt;br /&gt;
  mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/04-5679&amp;lt;/nowiki&amp;gt; /ser 04-5679&lt;br /&gt;
&lt;br /&gt;
This example demonstrates how the configuration of a device is stored on a Web server; all IP1200 devices are then instructed to load/update the firware version 04-5679 in the time period 23:00 hrs to 04:59 hrs. New devices are updated after a restart and after the specified six minutes have elapsed. The devices are configured so that they use the G729 codec with a frame size of 60ms, the language setting is English and the configuration is write-protected. Therefore, only an administrator with appropriate authorisation can change this file. In addition, two standard functions were programmed for the device.&lt;br /&gt;
&lt;br /&gt;
IP3000 devices are updated to firmware version 04-5679 in the time period 23:00 hrs to 04:59 hrs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Convert_wave_files_in_to_G7xx_coder_files&amp;diff=6027</id>
		<title>Howto:Convert wave files in to G7xx coder files</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Convert_wave_files_in_to_G7xx_coder_files&amp;diff=6027"/>
		<updated>2007-09-17T13:54:30Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: /* V6 SR1 note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The HTTP interface allows to play sound files delivered from a web server. This is used mostly for music on hold or waiting queue announcements. These files need to be in a specific format, not standard wave file. Here is how to convert a standard wave file into this format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
*  All innovaphone gateways (IP202, IP302,IP305 ,IP800, IP3000, IP6000)&lt;br /&gt;
&lt;br /&gt;
Version 5.0 and later.&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
&lt;br /&gt;
===Problem Details===&lt;br /&gt;
To avoid just-in-time format conversion and/or encoding, sound files played via the HTTP interface must be present as coder-specific raw sound stream data files. To use a standard wave file, it must be converted into G711/G723/G729 format first. Also, if you want to provide a specific sound file for calls with different coders, you must provide a single version of such file for each coder in question. To create G723, G729, G711a or G711u files, you will need standard 8kHz, 16bit, mono wave files. &lt;br /&gt;
 &lt;br /&gt;
At the [http://download.innovaphone.com/ice/6.00/ download site] you will find the softcod.exe in the tools folder. This is a command line utility which will convert such a wave file to the required coder files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To convert a wave file announcement.wav, call at command line:&lt;br /&gt;
 softcod announcement.wav&lt;br /&gt;
&lt;br /&gt;
Softcode will create announcement.g723, announcement.g729, announcement.g711a and announcement.g711u.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Due to licensing issues, the conversion process requires access to an innovaphone gateway. The tool will thus ask for a valid gatekeeper/pbx alias. Note that the tool must be able to register with this alias. Therefore, you cannot use an account which is currently in use. As the tool will not ask for a password, you cannot use an account which is password protected.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
There is no install available or required. Simply call softcod.exe from the command line.&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
The tool will locate the gatekeeper/pbx using gatekeeper discovery. Note that this currently will not work on multi-homed hosts, that is, hosts with more than one (virtual or physical) network interface. Most available wave file tools will not create wave files in the proper format (as defined above). In order for softcod.exe to work, you have to make sure the input wave file is in the proper format. Depending on the tool you are using, you may need to change the files audio properties. Also, you may use Windows™ standard audiorecorder application (sndrec32.exe) to convert a wave file in to the proper format (use File/Properties/Convert).&lt;br /&gt;
&lt;br /&gt;
== V6 SR1 note ==&lt;br /&gt;
Starting from V6 Sr1 it is possible to run the sound files via the Cf cardslot (no etxternal web server needed) please refer to the related articles below.&lt;br /&gt;
&lt;br /&gt;
Also it is then possible to automaticly convert the wav files into g7xx  on the built-in compact flash card.&lt;br /&gt;
&lt;br /&gt;
8khz, 16bit, mono *.wav files can be copied to webdav-mountable &#039;&#039;&#039;\\&#039;&#039;x.x.x.x&#039;&#039;\drive\CX0&#039;&#039;&#039;, in order to convert to *.g711a, *.g711u, *.g729.&lt;br /&gt;
Please use the the &#039;&#039;&#039;Internet Explorer&#039;&#039;&#039; to open the directory on the CF. &lt;br /&gt;
Go with &#039;&#039;&#039;Internet Explorer&#039;&#039;&#039; to &#039;&#039;&#039;&amp;quot;Administration, Diagnostics, CF&amp;quot;&#039;&#039;&#039; and choose the option &#039;&#039;&#039;&amp;quot;Browse CF Content (Explorer, IE only)&amp;quot;&#039;&#039;&#039;. In the Internet Explorer the line &#039;&#039;&#039;\\&#039;&#039;x.x.x.x&#039;&#039;\drive\CF0&#039;&#039;&#039; is appearing. &lt;br /&gt;
Change in the URL &#039;&#039;&#039;CF0&#039;&#039;&#039; to &#039;&#039;&#039;CX0&#039;&#039;&#039;. The URL is then looking like &#039;&#039;&#039;\\&#039;&#039;x.x.x.x&#039;&#039;\drive\CX0&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Use now drag&amp;amp;drop to copy the wav file to the directory on the Compact Flash card.&lt;br /&gt;
&lt;br /&gt;
[[Image:How_to_convert_wave_files_in_to_G7xx_coder_files_for_the_HTTP_interface_1.PNG]]&lt;br /&gt;
&lt;br /&gt;
After a succesfull conversion, you should have a similar file structure on your CF card.&lt;br /&gt;
&lt;br /&gt;
However, please be patient - a 2.5MB file (2.5min audio content) takes on an ip800 ~15min to be converted into a *.g729 file.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
&lt;br /&gt;
[http://download.innovaphone.com/ice/6.00/ Download softcode (icluded into Tools Package)]&lt;br /&gt;
&lt;br /&gt;
[[Howto:Installing_the_voicemail/music_on_hold_on_a_compact_flash_card]]&lt;br /&gt;
&lt;br /&gt;
[[Howto:General_information_for_compact_flash_cards]]&lt;br /&gt;
&lt;br /&gt;
[[Howto:Convert wave files to G7xxx with softcode]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=5666</id>
		<title>User:Gijsbert Zijlstra</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=5666"/>
		<updated>2007-08-14T13:18:21Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gijsbert Zijlstra&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Technical Research &amp;amp; Support Manager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tiptel b.v.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Camerastraat 2&lt;br /&gt;
&lt;br /&gt;
NL – 1322 BC Almere&lt;br /&gt;
&lt;br /&gt;
The Netherlands&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel:      +31 (0) 36 53 66 650&lt;br /&gt;
&lt;br /&gt;
Mobile: +31 (0) 6 212 969 34&lt;br /&gt;
&lt;br /&gt;
Fax:     +31 (0) 36 54 65 296&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E-mail: [mailto:g.zijlstra@tiptel.nl g.zijlstra@tiptel.nl]&lt;br /&gt;
&lt;br /&gt;
Web:    [http://www.tiptel.nl www.tiptel.nl]&lt;br /&gt;
&lt;br /&gt;
Skype:  gijsbertzijlstra&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=5664</id>
		<title>User:Gijsbert Zijlstra</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=User:Gijsbert_Zijlstra&amp;diff=5664"/>
		<updated>2007-08-14T12:53:01Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: New page: &amp;#039;&amp;#039;&amp;#039;Gijsbert Zijlstra &amp;#039;&amp;#039;&amp;#039;  Technical Research &amp;amp; Support Manager   Tiptel b.v.  Camerastraat 2  NL – 1322 BC Almere  The Netherlands   Tel:      +31 (0) 36 53 66 650  Mobile: +31 (0) 6 212...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Gijsbert Zijlstra&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Technical Research &amp;amp; Support Manager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tiptel b.v.&lt;br /&gt;
&lt;br /&gt;
Camerastraat 2&lt;br /&gt;
&lt;br /&gt;
NL – 1322 BC Almere&lt;br /&gt;
&lt;br /&gt;
The Netherlands&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel:      +31 (0) 36 53 66 650&lt;br /&gt;
&lt;br /&gt;
Mobile: +31 (0) 6 212 969 34&lt;br /&gt;
&lt;br /&gt;
Fax:     +31 (0) 36 54 65 296&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
E-mail: g.zijlstra@tiptel.nl&lt;br /&gt;
&lt;br /&gt;
Web:    [www.tiptel.nl]&lt;br /&gt;
&lt;br /&gt;
Skype: gijsbertzijlstra&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=4160</id>
		<title>Reference:Update Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference:Update_Server&amp;diff=4160"/>
		<updated>2007-05-08T12:27:02Z</updated>

		<summary type="html">&lt;p&gt;Gijsbert Zijlstra: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to update the firmware and configuration of a large number of innovaphone devices in a distributed environment by automated means.&lt;br /&gt;
&lt;br /&gt;
This is done by storing the configuration and firmware information on a standard Web server, which in turn is called up the individual devices.&lt;br /&gt;
&lt;br /&gt;
There are two modules in the device which work in tandem. The first is known as &amp;quot;UP0&amp;quot; and acutally executes the upload and download of configuration information as well as the download of updated firmware. UP0 is controlled by commands as detailed below.&lt;br /&gt;
The second module is known as &amp;quot;UP1&amp;quot;. It serves to poll a given website for changed configuration information. If certain conditions are met, UP1 will issue commands to UP1 to perform the requested updates.&lt;br /&gt;
&lt;br /&gt;
== System requirements ==&lt;br /&gt;
&lt;br /&gt;
* One or more Web server(s) accessible by the devices.&lt;br /&gt;
* The Web servers tested were MS IIS and the Apache server. It should, however, also work with all other common Web servers.&lt;br /&gt;
* For best results, the Web server should be able to manage a large number of simultaneous HTTP sessions. MS Personal Web Server, for example, is not a suitable Web server, since it manages a maximum of 10 simultaneous HTTP sessions.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
To be able to transfer device configurations onto the Webserver, the latter must allow HTTP PUT requests. All other functions require  HTTP GET authorisation.&lt;br /&gt;
&lt;br /&gt;
Since all HTTP requests are executed unauthenticated, the Web server must allow anonymous reading and possibly also anonymous writing.&lt;br /&gt;
&lt;br /&gt;
To allow HTTP PUT commands on a MS IIS, the read and write check box must be enabled in the configuration of the relevant virtual directory.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
Detailed information on how the URL parameter of the update server is configured on the innovaphone devices may be found in the chapter entitled &amp;quot;[[General_Update|Configuration/General/Update]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note here that the URL parameter must point precisely to the location of the file with the contained maintenance commands. It is also to be noted that this URL (just like all other URLs used by innovaphone devices) does not support host names. Therefore, a valid IP address always has to specified.&lt;br /&gt;
&lt;br /&gt;
If the URL happens to end with a ‘/’, then a standard file name based on the product description is used. If, for example, the URL is &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/&amp;lt;/nowiki&amp;gt; , then it is extended in the case of an IP1200 as follows: &amp;lt;nowiki&amp;gt;http://1.2.3.4/configs/update-ip1200.htm&amp;lt;/nowiki&amp;gt; . The product name is specified in the first line in chapter &amp;quot;[[General_Info|Configuration/General/Info]]&amp;quot;. The file extension is irrelevant here. The extension *.txt or *.htm or no file extension at all is possible. &lt;br /&gt;
When you discover problems that the update isn&#039;t working and the update screen in the GUI is presenting &amp;quot;failed 404&amp;quot; then check if the file name, for example &amp;quot;update-ip1200&amp;quot; does have the extension *.htm.&lt;br /&gt;
&lt;br /&gt;
In relation to URL specifications, note that some Web servers differentiate between upper case and lower case letters.&lt;br /&gt;
&lt;br /&gt;
== Running maintenance ==&lt;br /&gt;
&lt;br /&gt;
The update file is immediately read and also immediately executed. After a device restart, the update server is automatically queried periodically in accordance with the interval set.&lt;br /&gt;
&lt;br /&gt;
When the maintenance file has been successfully received, it is executed sequentially. Theoretically, all commands that can be transmitted to the device in a Telnet session or that occur in a configuration file can be used in the maintenance file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maintenance commands ==&lt;br /&gt;
&lt;br /&gt;
Additional commands implemented specially for the update server are available.&lt;br /&gt;
The maintenance file is executed every time (depending on the interval set), as soon as it is received.&lt;br /&gt;
&lt;br /&gt;
=== Check command ===&lt;br /&gt;
&lt;br /&gt;
In most cases, however, the maintenance file should be executed not every time as soon as it is received, but once only. Assuming that a secure configuration is to be loaded onto several devices, then it is best if this is done from one device. This can be achieved with the check command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 check &amp;lt;final-command&amp;gt; &amp;lt;serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/CHECK. The check command compares the content of &amp;lt;serial&amp;gt; with the UPDATE/CHECK variable. If both match, all further processes of the maintenance file are terminated.&lt;br /&gt;
&lt;br /&gt;
If they differ, the remaining processes are executed. When the last process has been executed, the UPDATE/CHECK variable is overwritten with the content of &amp;lt;serial&amp;gt;, and the content of &amp;lt;final-command&amp;gt; is executed. The following commands are usable content for &amp;lt;final-command&amp;gt;&lt;br /&gt;
* ireset: Resets the device as soon as it is not being actively used.&lt;br /&gt;
* reset: Resets the device immediately.&lt;br /&gt;
* iresetn: Resets the device as soon as it is not being actively used and a reset is required.&lt;br /&gt;
* resetn: Resets the device immediately if a reset is required.&lt;br /&gt;
* ser: Is a global variable and not a function.&lt;br /&gt;
&lt;br /&gt;
=== Time command ===&lt;br /&gt;
&lt;br /&gt;
Often it is preferred to perform such changes at particular times (for example, at night when no work is being done). This can be achieved with the times command:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time command compares the current time with the content of &amp;lt;hours&amp;gt;. &amp;lt;hours&amp;gt; is a comma-separated list of specified hours, within which execution of the maintenance file is possible. If the content of &amp;lt;hours&amp;gt; with the restriction does not match, all further processes are terminated. The following hours are considered valid times, within which execution of the maintenance file makes sense.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this command, execution of the maintenance file is allowed from 12:00 to 12:59 hrs and from 22:00 to 04:59 hrs. If the device does not have a time, all processes are terminated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time [/allow &amp;lt;hours&amp;gt;] [/initial &amp;lt;minutes&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the /initial parameter is set, no further commands are executed within the specified number of minutes &amp;lt;minutes&amp;gt;, once the device has been reset. This was implemented to avoid a firmware download and the overwriting of Flash memory during device installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP1 time /allow 12,22,23,0,1,2,3,4 /initial 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
With this specification, all processes of the maintenance file are suppressed within the first six minutes and within the valid times specified in the /allow parameter after every device restart. If the /initial parameter was set, new devices (or devices that were reset with the standard settings) can, after a restart, receive the maintenance file within the number of minutes specified in the /initial parameter, even if they lie outside the valid times as specified in the /allow parameter. This allows new devices to receive a current standard configuration quickly.&lt;br /&gt;
&lt;br /&gt;
=== Prot command ===&lt;br /&gt;
&lt;br /&gt;
To initiate a firmware update, the following command can be executed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command downloads new firmware (if available) from the specified URL onto the device. Finally, the &amp;lt;final-command&amp;gt; is executed.&lt;br /&gt;
innovaphone devices have an internal variable that is initially empty (or empty if the device was reset with the standard settings) called UPDATE/PROT. The prot command compares the content of &amp;lt;build-serial&amp;gt; with the UPDATE/PROT variable. If both match, no firmware is downloaded. If the UPDATE/PROT variable is not set (new devices or after a device restart), the content of &amp;lt;build-serial&amp;gt; is compared with the built number of the current firmware. Once the firmware has been successfully downloaded, the UPDATE/PROT variable is overwritten with the content of &amp;lt;build-serial&amp;gt; . Note that the &amp;lt;build-serial&amp;gt; parameter is not compared with the firmware version currently loaded. It is the responsibility of the administrator to keep this standard.&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;url&amp;gt; parameter ends with a slash (‘/’), a standard firmware file name is appended to the URL depending on the product description (for example, IP1200.bin for an IP DECT system).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ip1200.bin ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 04-5656&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the firmware version 04-5656 was already installed. If this is not the case, the current firmware is downloaded from the address 192.168.0.10/firm/ip1200.bin, the UPDATE/PROT internal variable is overwritten with 04-5656 and, finally, the device is reset as soon at it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
=== Boot command ===&lt;br /&gt;
&lt;br /&gt;
With the boot command, the boot code is updated and this is done in the same way as with the prot command. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;url&amp;gt; &amp;lt;final-command&amp;gt; &amp;lt;built-serial&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The command&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0 boot &amp;lt;nowiki&amp;gt;http://192.168.0.10/firm/ ireset 205&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
determines whether the boot code version 205 was already installed. If this is not the case, the current boot code is downloaded from the address 192.168.0.10/firm/bootip1200.bin, the UPDATE/BOOT internal variable is overwritten with the version number of the downloaded boot code (205) and, finally, the device is reset as soon as it is not being actively used.&lt;br /&gt;
&lt;br /&gt;
=== SCFG command ===&lt;br /&gt;
&lt;br /&gt;
If the UP0 interface is being used, then the device configuration can be stored on a Web server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod cmd UP0  scfg &amp;lt;url&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This command instructs the device to upload its current configuration to the &amp;lt;url&amp;gt;. This can be achieved with the HTTP PUT command. The url must be writable. The following constants can be used in the url:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Sequence !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Replaces !! style=&amp;quot;background-color:#DCDCDC;&amp;quot;| Example&lt;br /&gt;
|-&lt;br /&gt;
| #d || Current date and time || 20051010-170130&lt;br /&gt;
|-&lt;br /&gt;
| #m || MAC address of the device || 00-90-33-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #h || Device hardware number || IP1200-03-0d-f0&lt;br /&gt;
|-&lt;br /&gt;
| #bN || Backup number (cycling from 1 to N)&amp;lt;br&amp;gt;N defaults to 10 || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: #b is implemented in version 6.00 SR1&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
A Web server exists at the address 192.168.0.10 with a subdirectory called configs. In this directory, there are two further subdirectories, in which the current firmware files for all innovaphone devices are stored.&lt;br /&gt;
Clients provide the DHCP server with the option #215 as &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/&amp;lt;/nowiki&amp;gt;. In this directory, there is a file update-ip1200.htm , which processes the following lines:&lt;br /&gt;
&lt;br /&gt;
  mod cmd UP1 times /allow 23,0,1,2,3,4 /initial 6&lt;br /&gt;
  mod cmd UP0 scfg &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/saved/#h.txt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/04-5679&amp;lt;/nowiki&amp;gt; /ser 04-5679&lt;br /&gt;
  mod cmd UP1 check ser 20040330-01&lt;br /&gt;
  config change PHONECFG0 /coder G729A,60, /lang eng /protect&lt;br /&gt;
  config change PHONEAPP0 /f4-10 BellOff /f4-v0 %1BE /f5-10 BellOn /f5-v0 %1BF&lt;br /&gt;
  config write&lt;br /&gt;
  config activate&lt;br /&gt;
  iresetn&lt;br /&gt;
&lt;br /&gt;
There is also the file update-ip3000.htm, which reads the following two lines:&lt;br /&gt;
  mod cmd UP1 time /allow 23,0,1,2,3,4&lt;br /&gt;
  mod cmd UP0 prot &amp;lt;nowiki&amp;gt;http://192.168.0.10/configs/04-5679&amp;lt;/nowiki&amp;gt; /ser 04-5679&lt;br /&gt;
&lt;br /&gt;
This example demonstrates how the configuration of a device is stored on a Web server; all IP1200 devices are then instructed to load/update the firware version 04-5679 in the time period 23:00 hrs to 04:59 hrs. New devices are updated after a restart and after the specified six minutes have elapsed. The devices are configured so that they use the G729 codec with a frame size of 60ms, the language setting is English and the configuration is write-protected. Therefore, only an administrator with appropriate authorisation can change this file. In addition, two standard functions were programmed for the device.&lt;br /&gt;
&lt;br /&gt;
IP3000 devices are updated to firmware version 04-5679 in the time period 23:00 hrs to 04:59 hrs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Gijsbert Zijlstra</name></author>
	</entry>
</feed>