<?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=Slu</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=Slu"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/Slu"/>
	<updated>2026-09-01T10:34:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80377</id>
		<title>Reference16r1:Concept Innovaphone Virtual Appliance (IPVA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80377"/>
		<updated>2026-08-24T13:51:53Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Applies To */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--ipva virtual virtuell va--&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to:&lt;br /&gt;
*V16r1&lt;br /&gt;
*innovaphone Virtual Appliance&lt;br /&gt;
*Intel/AMD CPUs&lt;br /&gt;
* Virtualization platforms&lt;br /&gt;
**VMware&lt;br /&gt;
*** Workstation&lt;br /&gt;
*** Player&lt;br /&gt;
*** vSphere 4 - 8&lt;br /&gt;
*** ESXi 6 - 8&lt;br /&gt;
**Microsoft Hyper-V ([[{{NAMESPACE}}:Concept IPVA On Hyper-V|Concept IPVA On Hyper-V]])&lt;br /&gt;
*** Windows 8.1&lt;br /&gt;
*** Windows 10&lt;br /&gt;
*** Windows Server 2012 R2&lt;br /&gt;
*** Windows Server 2016 CTP4&lt;br /&gt;
**Linux based Hypervisors with [https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM] and [https://en.wikipedia.org/wiki/QEMU QEMU] support&lt;br /&gt;
*** Proxmox VE 8.0 / 8.1 / 9.1 / 9.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer: Manufacturers/versions of VM platforms other than those specified here have not been tested, so use at your own risk.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer 2: We occasionally encounter customers experiencing unusual issues related to OpenStack. OpenStack is not officially supported, and such issues are not analyzed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
The innovaphone Virtual Appliance (IPVA) is a virtual machine to be run on a virtualization platform.&lt;br /&gt;
&lt;br /&gt;
The IPVA is a software-only solution. It appears and behaves like an innovaphone &amp;quot;hard-box&amp;quot; without physical resources such as hardware DSP or ISDN interface.&lt;br /&gt;
&lt;br /&gt;
==Package Overview==&lt;br /&gt;
We supply an OVF (&#039;&#039;&#039;O&#039;&#039;&#039;pen &#039;&#039;&#039;V&#039;&#039;&#039;irtualization &#039;&#039;&#039;F&#039;&#039;&#039;ormat) import or - depending on the virtualization platform - a suitable variant.&lt;br /&gt;
OVF is an open standard that contains several files in one package. The .ovf file is therefore an archive that contains all the necessary files.&lt;br /&gt;
&lt;br /&gt;
=== Sample VMware ===&lt;br /&gt;
;ipva-ovf.zip:&lt;br /&gt;
The compressed archive &#039;&#039;ipva-ovf.zip&#039;&#039; contains the file ipva.ova. A deployment of ipva.ova will result in a set of 5 files - the file names may differ from the following list:&lt;br /&gt;
*ipva.vmx: The virtual machine configuration file&lt;br /&gt;
*hd-boot.vmdk: The virtual boot disk on IDE 0:0&lt;br /&gt;
*hd-cf.vmdk: The disk for emulation of a Compact Flash card on IDE 0:1&lt;br /&gt;
*hd-flash.vmdk: The disk for emulation of flash memory on IDE 1:0&lt;br /&gt;
*hd-dump.vmdk: The disk serving as a store for a crash dump on IDE 1:1&lt;br /&gt;
&lt;br /&gt;
;ipva.bin:&lt;br /&gt;
The file &#039;&#039;ipva.bin&#039;&#039; is the firmware file, which is only needed for update purposes.&lt;br /&gt;
&lt;br /&gt;
== Virtualization platforms ==&lt;br /&gt;
&lt;br /&gt;
===VMware Player / VMware Workstation===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Copy the file ipva.ova to e.g. your desktop and Double-click on ipva.ova.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===VMware vSphere===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Import ipva.ova by means of &#039;&#039;&#039;File/Deploy OVF-Template...&#039;&#039;&#039; (de: &#039;&#039;&#039;Datei/OFV-Vorlage bereitstellen...&#039;&#039;&#039;) and follow instructions.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Microsoft Hyper-V===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
* Use the UI Wizard to Import a new machine&lt;br /&gt;
* Browse to the directory where the downloaded package was extracted to. Browse to the subdirectory Virtual Machines and click Ok&lt;br /&gt;
* Select &#039;&#039;Copy the Virtual Machine&#039;&#039; as &#039;&#039;Import Type&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Proxmox VE===&lt;br /&gt;
==== Settings ====&lt;br /&gt;
Here, we list the VM settings that allowed us to successfully test the system and that ensure VMs run stably in production. These settings should be considered best practices.&lt;br /&gt;
&lt;br /&gt;
===== PVE Version =====&lt;br /&gt;
* Version: 9.2.4&lt;br /&gt;
* Repositories: Enterprise repositories&lt;br /&gt;
&lt;br /&gt;
===== Hardware =====&lt;br /&gt;
* Processors: 1 socket, 1 core, Type &amp;quot;Host&amp;quot; preferred, fallback &amp;quot;x86-64-v2-AES&amp;quot;&lt;br /&gt;
* Bios: SeaBIOS&lt;br /&gt;
* Machine: i440fx&lt;br /&gt;
* SCSI Controller: VirtIO SCSI single&lt;br /&gt;
* Hard Disks&lt;br /&gt;
** Datastore: Ceph (19.2.3) or local LVM&lt;br /&gt;
** Cache: No Cache&lt;br /&gt;
** Discard: Enable&lt;br /&gt;
** SSD emulation: Yes&lt;br /&gt;
** Async IO: io_uring&lt;br /&gt;
* Network Devices&lt;br /&gt;
** Model: VirtIO (paravirtualized)&lt;br /&gt;
&lt;br /&gt;
===== Options =====&lt;br /&gt;
* OS Type: Other&lt;br /&gt;
* Boot Order: ide0, ide1, ide2, ide3&lt;br /&gt;
* QEMU Gust Agent: Disabled&lt;br /&gt;
&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
Import the &amp;quot;ova&amp;quot; file to your storage which is enabled for the type &amp;quot;import&amp;quot;. After that you can select the created template an create new machines from it with the button &amp;quot;Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Before you start up the VM in the UI you have to adjust the following configuration options:&lt;br /&gt;
** Hardware -&amp;gt; Processors: Adjust &amp;quot;Extra Cpu Flags&amp;quot; -&amp;gt; &amp;quot;aes&amp;quot; if required&lt;br /&gt;
** Hardware -&amp;gt; SCSI Controller: Change Model to &amp;quot;VirtIO SCSI Single&amp;quot;&lt;br /&gt;
** Hardware -&amp;gt; Network Device (net0 / net1): Change Model to &amp;quot;VirtIO (paravirtualized)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
===Network Configuration===&lt;br /&gt;
The IPVA is preconfigured a DHCP client. You will see the current IP-Address in the console-screen of the VM. If there&#039;s in no case a DHCP server available for the 1st-time configuration, you can set your IP-Configuration in the console.&lt;br /&gt;
&lt;br /&gt;
 config change IP0 ETH0 /addr 192.168.0.10 /mask 255.255.255.0&lt;br /&gt;
 config change IP0 RT0 /gateway 192.168.0.1&lt;br /&gt;
 config change DHCP0 /mode off&lt;br /&gt;
 config write&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
====MAC/serial number====&lt;br /&gt;
Take care that you use a MAC address which is supported by my.innovaphone, see [[Reference:My_Innovaphone#IPVA_MAC_exists]].&lt;br /&gt;
&lt;br /&gt;
===AES Hardware Acceleration===&lt;br /&gt;
It may be beneficial to activate hardware acceleration for AES operations.&lt;br /&gt;
Whether hardware acceleration is activated can be checked with the command &amp;lt;code&amp;gt;!mod cmd CPU cpu-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;flags&amp;quot; attribute must contain &amp;quot;aesni&amp;quot;&lt;br /&gt;
* The &amp;quot;act-features&amp;quot; attribute must contain &amp;quot;has_aesni&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;info&amp;gt;&lt;br /&gt;
   &amp;lt;cpu &lt;br /&gt;
     vendor=&amp;quot;GenuineIntel&amp;quot; &lt;br /&gt;
     signature=&amp;quot;0x906e9&amp;quot;&lt;br /&gt;
     brand=&amp;quot;Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz&amp;quot; &lt;br /&gt;
     ...     &lt;br /&gt;
     flags=&amp;quot;sse3 pclmulqdq ssse3 sse4_1 sse4_2 &amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;aesni&amp;lt;/span&amp;gt; xsave xsaveopt osxsave avx f16c rdrand fpu mmx fxsr sse sse2 avx2&amp;quot; &lt;br /&gt;
     act-features=&amp;quot;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;has_aesni&amp;lt;/span&amp;gt; has_avx has_vaesni has_vpclmulqdq&amp;quot; srtp-mips=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Large IPVA with 512 MiB Flash==&lt;br /&gt;
In some scenarios the standard 64 MiB flash memory is not enough to store all user data. It is possible to manually enlarge the flash memory of an IPVA up to 512 MiB.&lt;br /&gt;
&lt;br /&gt;
You have to change the settings of the virtual machine and format the flash. You cannot do it with an already configured machine, because you will lose all your configuration!&lt;br /&gt;
&lt;br /&gt;
# shutdown the IPVA&lt;br /&gt;
# increase the RAM to 3.072 MiB&lt;br /&gt;
# increase the size of &#039;&#039;&#039;IDE1:0&#039;&#039;&#039; to 512 MiB or recreate it&lt;br /&gt;
# power up the IPVA&lt;br /&gt;
# format the flash: &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 reset all&amp;lt;/code&amp;gt;&lt;br /&gt;
# reboot the IPVA: &amp;lt;code&amp;gt;!reset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the free space with the command &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 info&amp;lt;/code&amp;gt;. You will see a big amount of available segments&lt;br /&gt;
&lt;br /&gt;
 segments=675, segment-size=0x10000 (64k)&lt;br /&gt;
 LDAP - used 1k avail 63k owned 64k (segments 1) maximum 517056k (&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;segments 8079&amp;lt;/span&amp;gt;, configured 8079)&lt;br /&gt;
 VARS - used 23k avail 16k owned 192k (segments 3) maximum 640k (segments 10, configured 10)&lt;br /&gt;
&lt;br /&gt;
But please keep in mind, the more data is saved, the longer it takes to reboot and load the UI in the [[{{NAMESPACE}}:PBX/Objects|PBX/Objects]] area.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Support procedures are commonly identical to the ones known from innovaphones&#039; physical appliances. Except for:&lt;br /&gt;
*&#039;&#039;&#039;Post-Mortem Logs&#039;&#039;&#039; A post-mortem log must be retrieved by clicking on &#039;&#039;Maintenance/Diagnostics/Tracing/&#039;&#039;&#039;trace(crash-dump)&#039;&#039;&#039;&#039;&#039; (alternatively: http://a.b.c.d/crash_dump.txt).&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Maximal 3.072 MiB RAM ===&lt;br /&gt;
Because the IPVA has no [https://en.wikipedia.org/wiki/Virtual_memory virtual memory management], it will use only the first linear 3 GiB of RAM. But please keep in mind, that the flash content will be stored 3-times (Flashmanager, Flashdirectory, PBX) in RAM at startup.&lt;br /&gt;
=== Restored IPVA may not run ===&lt;br /&gt;
We have seen issues where an IPVA which had been backed up using one of the available backup tools for VMWare do not start up properly when they have been restored. &lt;br /&gt;
&lt;br /&gt;
We strongly suggest to not rely on VMWare backup mechanism but instead to use the standard innovaphone backup scheme (that is, save the configuration on a regular basis).&lt;br /&gt;
&lt;br /&gt;
==== How to run a restored backup that fails to start ====&lt;br /&gt;
Here is the procedure to run an IPVA from an IPVA if the restored virtual machine does not boot up properly:&lt;br /&gt;
&lt;br /&gt;
* restore the backed up V10 IPVA&lt;br /&gt;
* create a new, empty V11r1 IPVA (you will need this merely to copy the boot disk from)&lt;br /&gt;
*replace the boot disk of the failing V10 IPVA by the boot disk of the fresh V11r1 IPVA (see [[#How To Replace The Boot Disk On vSphere.3F| How To Replace The Boot Disk On vSphere]] for details)&lt;br /&gt;
* start the restored and fixed V10 IPVA (it should run fine now)&lt;br /&gt;
* downgrade this V10 IPVA to desired V10 firmware&lt;br /&gt;
* remove the fresh V11r1 IPVA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some Customer who are running Fw v12r1 (up to sr6) with ESXi 6.0 and VEEAM 9 reported that after a backup with VEEAM 9, the restored IPVA was not starting. &lt;br /&gt;
At this point, there is no possibility to solve this problem. The only workaround in that case is to delete the machine, reinstall a new one, and restore a configuration saved before.&lt;br /&gt;
&lt;br /&gt;
If you did not run into the problem yet, for prevention, we recommend to replace the Boot disk of your working IPVA.vmx with one of the IPVA.ova. Please follow the steps below (be aware that this will upgrade the firmware on the IPVA to 12r2, due to the fact that actually, IPVA.ova is only available from version 12r2):&lt;br /&gt;
&lt;br /&gt;
1. Remove the Boot disk of the virtual machine (vmx)(is normaly the first one).&amp;lt;br&amp;gt;&lt;br /&gt;
* Power off the VM&lt;br /&gt;
* Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Remove&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;OK&#039;&#039; to save your changes.&lt;br /&gt;
&lt;br /&gt;
2. Add the Boot disk of the ova virtual machine to the vmx one.&lt;br /&gt;
* Identify the size of the boot disk of the ova virtual machine (will be needed on the step when navigating to boot disk)&lt;br /&gt;
* On the powered off VM, Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Add&#039;&#039;.&lt;br /&gt;
* Select Use “an existing virtual disk” then click &#039;&#039;Next&#039;&#039;.&lt;br /&gt;
* Navigate to the boot disk of the ova Virtual machine then click &#039;&#039;next&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;Finish&#039;&#039;.&lt;br /&gt;
Now the vmx virtual machine should have the Fw version 12r2.&lt;br /&gt;
&lt;br /&gt;
The .ova version will be available also in V12r1 sr7&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on Citrix Cloud Platform ===&lt;br /&gt;
Reportedly, the Citrix cloud platform - although based on VMware - cannot run the IPVA.  Amongst other issues, the platform does not allow 4 virtual disks, which are required for the IPVA.&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on VCloud Air ===&lt;br /&gt;
VCloud Air apparently does not support the timekeeping mechanism required by the IPVA.&lt;br /&gt;
&lt;br /&gt;
[[User:Ckl|ckl]] 15:50, 30 November 2016 (CET) We have seen the IPVA v12r2 running on vCloud Air. Use the ova import.&lt;br /&gt;
&lt;br /&gt;
=== IPVA on ESX 6.5 ===&lt;br /&gt;
We have reports that the IPVA does not run properly on ESX 6.5.  The IPVA boots up properly but the clock does not run.  Running the .ova based variation available in v12r2 fixed the issue or edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Administration: Avoid &#039;reboot&#039; Command. Use &#039;reset&#039; Command ===&lt;br /&gt;
Alwas use the &#039;reset&#039; command to restart an IPVA. &lt;br /&gt;
The &#039;reboot&#039; command makes sense only on physical applicances, where its purpose is to deploy a new bootcode by means of a forced watchdog trap. The resulting post-reboot state will be as if an unsolicited trap/crash had occurred.&lt;br /&gt;
&lt;br /&gt;
=== Voice Quality Issues ===&lt;br /&gt;
When dealing with media streams (e.g. for announcements), the IPVA needs to fulfil real-time processing requirements, for example to process RTP packets in a timely fashion.  To do so, the IPVA relies on the capabilities of the virtualization platform it runs on. &lt;br /&gt;
&lt;br /&gt;
It is therefore important to configure the platform so that it supports real-time applications best. If you experience voice quality or latency issues, consider &lt;br /&gt;
* to make sure that all of the IPVAs memory is &#039;&#039;reserved&#039;&#039; to the IPVA (&#039;&#039;Latency Sensitivity&#039;&#039; set to &#039;&#039;High&#039;&#039;)&lt;br /&gt;
* to guarantee exclusive PCPU access&lt;br /&gt;
This helps to reduce CPU halt/wake-up states.&lt;br /&gt;
&lt;br /&gt;
===Additional vCPUs may cause problems===&lt;br /&gt;
The Multi-Core functionality of version 13r2 is a beta functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
===Can The emulated compact-flash disk size be increased?===&lt;br /&gt;
Yes, from within the &#039;&#039;Edit Virtual Machine&#039;&#039; dialog. Doing so just increases the size of the virtual harddisk. The emulated compact-flash must be formatted afterwards and accordingly to benefit from the increased size. That step can be administrated from &#039;&#039;Administration/Compact Flash/Format&#039;&#039;. Note: A recommendation for an upper size limit is not given. Please note: The compact-flash disk is not the flash which store LDAP and VARS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vSphere / vSphere Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. At first backup all of your files from CF card&amp;lt;br&amp;gt;&lt;br /&gt;
2. Shutdown the corresponding IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
3. Choose &amp;quot;Properties&amp;quot; of the IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
4. Delete &amp;quot;Harddrive 2&amp;quot; (Hardrive file xxx/xxx_1.vmdk)&amp;lt;br&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 hd-boot.vmdk  &amp;gt; xxx.vmdk&lt;br /&gt;
 hd-cf.vmdk    &amp;gt; xxx_1.vmdk&lt;br /&gt;
 hd-flash.vmdk &amp;gt; xxx_2.vmdk&lt;br /&gt;
 hd-dump.vmdk  &amp;gt; xxx_3.vmdk&lt;br /&gt;
&lt;br /&gt;
5. Create new harddrive&amp;lt;br&amp;gt;&lt;br /&gt;
6. Configure the required size&amp;lt;br&amp;gt;&lt;br /&gt;
7. As &amp;quot;Node of virtual device&amp;quot; select &amp;quot;IDE(0:1)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
8. Start the IPVA.&amp;lt;br&amp;gt;&lt;br /&gt;
9. &amp;quot;Format&amp;quot; the CF Card and &amp;quot;mount&amp;quot; it (General/Compact-Flash/General)&lt;br /&gt;
===What Is the minimum size of the emulated flash storage?===&lt;br /&gt;
The VMDK-File hd-flash.vmdk is allocated with 100 MB, because VMWare can not handle smaller virtual disks.&lt;br /&gt;
&lt;br /&gt;
===What Is The Size Of the Flash Directory on the IPVA?===&lt;br /&gt;
As noted above, the virtual flash memory on the IPVA is defaulted to a size of 64MB. Most of the flash is used by the &#039;&#039;flash directory&#039;&#039; (FLASHDIR0) which amongst other things provides storage for PBX objects.&lt;br /&gt;
&lt;br /&gt;
The size of the flash directory depends on the available RAM. The maximum of 900 segments á 64KB, i.e. ~56MB, is available if 192MB or more RAM is available. If less RAM is available, the size of the flash directory is decreased accordingly.  For this reason, it is unsafe to reduce RAM size in a given IPVA, as the flash directory size may be decreased so that objects from the flash directory get lost.&lt;br /&gt;
&lt;br /&gt;
The easiest method to see how much flash directory space is available is to investigate the boot trace. For the standard configuration of 64MB the respective trace output is going to look as follows and informs about a size of 14MB:&lt;br /&gt;
 &lt;br /&gt;
 0:0000:081:4 - start flashdir FLASHDIR0&lt;br /&gt;
 0:0000:081:4 - fdir: segments=901-&amp;gt;224(14.0MB)&lt;br /&gt;
&lt;br /&gt;
{{Limit_Virtual_IPVA_Flash}}&lt;br /&gt;
&lt;br /&gt;
===How much RAM is required per IPVA instance?===&lt;br /&gt;
Since 12r2sr27/13r1sr5 the downloadable virtual appliance comes preconfigured with 256 MiB RAM. This amount is seen as a good trade-off for the majority of all installations. The IPVA need the amount of used flash 3-times at startup. The RAM-size can be administrated by VMware-means.&lt;br /&gt;
&lt;br /&gt;
===What is the maximum amount of RAM?===&lt;br /&gt;
The maximum meaningful RAM setting is 3GB. Memory space beyond that limit will be left unused. Assigning more than 3GB to an IPVA instance doesn&#039;t provide any benefit.&lt;br /&gt;
&lt;br /&gt;
===Why does &#039;&#039;General/Info/DRAM&#039;&#039; show less than the configured memory?===&lt;br /&gt;
Not all of the configured memory is available to the IPVA. E.g. a bit of memory is occupied by the VMM&amp;lt;ref&amp;gt;Virtual Machine Monitor: A component belonging to the virtualization platform&amp;lt;/ref&amp;gt;. The indicator &#039;&#039;General/Info/DRAM&#039;&#039; displays the memory available to the IPVA and is truncated down to a whole number. A boot-trace reveals a bit more about IPVA-available memory as shown in the following excerpt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
0:0000:030:4 - Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz&lt;br /&gt;
0:0000:030:4 - mem(64946176)=61.93MB ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What about Open VM Tools / VMware Tools?===&lt;br /&gt;
Tools like this are not supported / integrated because it is not needed. The Virtual Appliance provides his own operating system, and we don&#039;t need any of the VM-Tools features in our guest.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of A Checksum Boot Error?===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
checksum wrong! Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-crc-wrong.jpg|center|thumb|200px|ipva-crc-wrong.jpg/|/Ipva-crc-wrong.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Replace the boot harddisk by a fresh one. The boot harddisk is the 1st hd(originally named &#039;&#039;hd-boot.vmdk&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur on a system crash while a firmware update is taking place.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;NIC unavailable!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NIC unavailable!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-nic-unavailable.jpg|center|thumb|200px|ipva-nic-unavailable.jpg/|/Ipva-nic-unavailable.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Administrate by VMware means: Ensure the correct/expected type of network interface controller(NIC) is going to be offered by the hypervisor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IPVA offers driver support for:&lt;br /&gt;
*AMD NIC: Am79C970A PCnet-PCI II Single-Chip Full-Duplex Ethernet Controller&lt;br /&gt;
**a.k.a &#039;&#039;PCNet32&#039;&#039;&lt;br /&gt;
**a.k.a &#039;&#039;Vlance&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The AMD-NIC is kind of default. However, the NIC type may be overriden manually and accordingly within the configuration file ipva.vmx as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ethernet0.virtualDev = &amp;quot;vlance&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur after a VMware re-configuration of the network settings.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perfcounter-not enabled!!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:screenshot-ipva-perfcounter-nok.jpg|center|thumb|200px|screenshot-ipva-perfcounter-nok.jpg/|/Screenshot-ipva-perfcounter-nok.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by an OVA-import of the IPVA. The appliance&#039;s configuration file &#039;&#039;ipva.vmx&#039;&#039; requires a VMware proprietary configuration line that&#039;s not specifiable within an OVA-file. &lt;br /&gt;
&lt;br /&gt;
The IPVA utilizes a VMware proprietary mechanism for its internal timekeeping&amp;lt;ref&amp;gt;Timekeeping in Virtual Machines http://www.vmware.com/pdf/vmware_timekeeping.pdf&amp;lt;/ref&amp;gt;. That mechanism is only available after adding the following line to the configuration file &#039;&#039;ipva.vmx&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor_control.pseudo_perfctr = TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that line is not present, the hypervisor is going to throw a CPU exception. Hint: In vSphere a VMX-file can be edited under &#039;&#039;&#039;Edit Settings/Options/Advanced/General/Configuration Parameters&#039;&#039;&#039;&amp;lt;ref&amp;gt;vmware Labs - How to edit vmx file in ESXi vSphere: https://www.youtube.com/watch?v=ICICoq-maB0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
*The vmx file should be edited after the installation of the IPVA.&lt;br /&gt;
*The vmx file should NOT be edited with Text editor (use vSphere as shown above)&lt;br /&gt;
*To our knowledge, a converter is always necessary for the installation with vmx.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;Loading failed for image=IPVA    BIN&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:Ipva-fw-load-failed.png|center|thumb|200px|ipva-fw-load-failed.png/|/Ipva-fw-load-failed.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by a calculation fault within the boot-code. &lt;br /&gt;
*The solution requires a replacement of the boot disk hd-boot.vmdk. &lt;br /&gt;
**Download an IPVA package from on 11r2 sr22.&lt;br /&gt;
**Replace the 1st disk with the one from the downloaded package&lt;br /&gt;
&lt;br /&gt;
===Are Additional vCPUs useful?===&lt;br /&gt;
The Multi-Core functionality is an experimental functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Licenses|Reference15r1:Licenses]]&lt;br /&gt;
* [[Howto15r1:Implement_PBX_with_zero_downtime_using_IPVA_and_VMWare_Fault_Tolerance]]&lt;br /&gt;
* [[Howto:A_rough_estimate_of_IPVA_Performance]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept15r1|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80376</id>
		<title>Reference16r1:Concept Innovaphone Virtual Appliance (IPVA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80376"/>
		<updated>2026-08-24T13:51:28Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--ipva virtual virtuell va--&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to:&lt;br /&gt;
*V16r1&lt;br /&gt;
*innovaphone Virtual Appliance&lt;br /&gt;
*Intel/AMD CPUs&lt;br /&gt;
* Virtualization platforms&lt;br /&gt;
**VMware&lt;br /&gt;
*** Workstation&lt;br /&gt;
*** Player&lt;br /&gt;
*** vSphere 4 - 8&lt;br /&gt;
*** ESXi 6 - 8&lt;br /&gt;
**Microsoft Hyper-V ([[{{NAMESPACE}}:Concept IPVA On Hyper-V|Concept IPVA On Hyper-V]])&lt;br /&gt;
*** Windows 8.1&lt;br /&gt;
*** Windows 10&lt;br /&gt;
*** Windows Server 2012 R2&lt;br /&gt;
*** Windows Server 2016 CTP4&lt;br /&gt;
**Linux based Hypervisors with [https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM] and [https://en.wikipedia.org/wiki/QEMU QEMU] support&lt;br /&gt;
*** Proxmox VE 8.0 / 8.1 / 9.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer: Manufacturers/versions of VM platforms other than those specified here have not been tested, so use at your own risk.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer 2: We occasionally encounter customers experiencing unusual issues related to OpenStack. OpenStack is not officially supported, and such issues are not analyzed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
The innovaphone Virtual Appliance (IPVA) is a virtual machine to be run on a virtualization platform.&lt;br /&gt;
&lt;br /&gt;
The IPVA is a software-only solution. It appears and behaves like an innovaphone &amp;quot;hard-box&amp;quot; without physical resources such as hardware DSP or ISDN interface.&lt;br /&gt;
&lt;br /&gt;
==Package Overview==&lt;br /&gt;
We supply an OVF (&#039;&#039;&#039;O&#039;&#039;&#039;pen &#039;&#039;&#039;V&#039;&#039;&#039;irtualization &#039;&#039;&#039;F&#039;&#039;&#039;ormat) import or - depending on the virtualization platform - a suitable variant.&lt;br /&gt;
OVF is an open standard that contains several files in one package. The .ovf file is therefore an archive that contains all the necessary files.&lt;br /&gt;
&lt;br /&gt;
=== Sample VMware ===&lt;br /&gt;
;ipva-ovf.zip:&lt;br /&gt;
The compressed archive &#039;&#039;ipva-ovf.zip&#039;&#039; contains the file ipva.ova. A deployment of ipva.ova will result in a set of 5 files - the file names may differ from the following list:&lt;br /&gt;
*ipva.vmx: The virtual machine configuration file&lt;br /&gt;
*hd-boot.vmdk: The virtual boot disk on IDE 0:0&lt;br /&gt;
*hd-cf.vmdk: The disk for emulation of a Compact Flash card on IDE 0:1&lt;br /&gt;
*hd-flash.vmdk: The disk for emulation of flash memory on IDE 1:0&lt;br /&gt;
*hd-dump.vmdk: The disk serving as a store for a crash dump on IDE 1:1&lt;br /&gt;
&lt;br /&gt;
;ipva.bin:&lt;br /&gt;
The file &#039;&#039;ipva.bin&#039;&#039; is the firmware file, which is only needed for update purposes.&lt;br /&gt;
&lt;br /&gt;
== Virtualization platforms ==&lt;br /&gt;
&lt;br /&gt;
===VMware Player / VMware Workstation===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Copy the file ipva.ova to e.g. your desktop and Double-click on ipva.ova.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===VMware vSphere===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Import ipva.ova by means of &#039;&#039;&#039;File/Deploy OVF-Template...&#039;&#039;&#039; (de: &#039;&#039;&#039;Datei/OFV-Vorlage bereitstellen...&#039;&#039;&#039;) and follow instructions.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Microsoft Hyper-V===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
* Use the UI Wizard to Import a new machine&lt;br /&gt;
* Browse to the directory where the downloaded package was extracted to. Browse to the subdirectory Virtual Machines and click Ok&lt;br /&gt;
* Select &#039;&#039;Copy the Virtual Machine&#039;&#039; as &#039;&#039;Import Type&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Proxmox VE===&lt;br /&gt;
==== Settings ====&lt;br /&gt;
Here, we list the VM settings that allowed us to successfully test the system and that ensure VMs run stably in production. These settings should be considered best practices.&lt;br /&gt;
&lt;br /&gt;
===== PVE Version =====&lt;br /&gt;
* Version: 9.2.4&lt;br /&gt;
* Repositories: Enterprise repositories&lt;br /&gt;
&lt;br /&gt;
===== Hardware =====&lt;br /&gt;
* Processors: 1 socket, 1 core, Type &amp;quot;Host&amp;quot; preferred, fallback &amp;quot;x86-64-v2-AES&amp;quot;&lt;br /&gt;
* Bios: SeaBIOS&lt;br /&gt;
* Machine: i440fx&lt;br /&gt;
* SCSI Controller: VirtIO SCSI single&lt;br /&gt;
* Hard Disks&lt;br /&gt;
** Datastore: Ceph (19.2.3) or local LVM&lt;br /&gt;
** Cache: No Cache&lt;br /&gt;
** Discard: Enable&lt;br /&gt;
** SSD emulation: Yes&lt;br /&gt;
** Async IO: io_uring&lt;br /&gt;
* Network Devices&lt;br /&gt;
** Model: VirtIO (paravirtualized)&lt;br /&gt;
&lt;br /&gt;
===== Options =====&lt;br /&gt;
* OS Type: Other&lt;br /&gt;
* Boot Order: ide0, ide1, ide2, ide3&lt;br /&gt;
* QEMU Gust Agent: Disabled&lt;br /&gt;
&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
Import the &amp;quot;ova&amp;quot; file to your storage which is enabled for the type &amp;quot;import&amp;quot;. After that you can select the created template an create new machines from it with the button &amp;quot;Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Before you start up the VM in the UI you have to adjust the following configuration options:&lt;br /&gt;
** Hardware -&amp;gt; Processors: Adjust &amp;quot;Extra Cpu Flags&amp;quot; -&amp;gt; &amp;quot;aes&amp;quot; if required&lt;br /&gt;
** Hardware -&amp;gt; SCSI Controller: Change Model to &amp;quot;VirtIO SCSI Single&amp;quot;&lt;br /&gt;
** Hardware -&amp;gt; Network Device (net0 / net1): Change Model to &amp;quot;VirtIO (paravirtualized)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
===Network Configuration===&lt;br /&gt;
The IPVA is preconfigured a DHCP client. You will see the current IP-Address in the console-screen of the VM. If there&#039;s in no case a DHCP server available for the 1st-time configuration, you can set your IP-Configuration in the console.&lt;br /&gt;
&lt;br /&gt;
 config change IP0 ETH0 /addr 192.168.0.10 /mask 255.255.255.0&lt;br /&gt;
 config change IP0 RT0 /gateway 192.168.0.1&lt;br /&gt;
 config change DHCP0 /mode off&lt;br /&gt;
 config write&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
====MAC/serial number====&lt;br /&gt;
Take care that you use a MAC address which is supported by my.innovaphone, see [[Reference:My_Innovaphone#IPVA_MAC_exists]].&lt;br /&gt;
&lt;br /&gt;
===AES Hardware Acceleration===&lt;br /&gt;
It may be beneficial to activate hardware acceleration for AES operations.&lt;br /&gt;
Whether hardware acceleration is activated can be checked with the command &amp;lt;code&amp;gt;!mod cmd CPU cpu-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;flags&amp;quot; attribute must contain &amp;quot;aesni&amp;quot;&lt;br /&gt;
* The &amp;quot;act-features&amp;quot; attribute must contain &amp;quot;has_aesni&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;info&amp;gt;&lt;br /&gt;
   &amp;lt;cpu &lt;br /&gt;
     vendor=&amp;quot;GenuineIntel&amp;quot; &lt;br /&gt;
     signature=&amp;quot;0x906e9&amp;quot;&lt;br /&gt;
     brand=&amp;quot;Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz&amp;quot; &lt;br /&gt;
     ...     &lt;br /&gt;
     flags=&amp;quot;sse3 pclmulqdq ssse3 sse4_1 sse4_2 &amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;aesni&amp;lt;/span&amp;gt; xsave xsaveopt osxsave avx f16c rdrand fpu mmx fxsr sse sse2 avx2&amp;quot; &lt;br /&gt;
     act-features=&amp;quot;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;has_aesni&amp;lt;/span&amp;gt; has_avx has_vaesni has_vpclmulqdq&amp;quot; srtp-mips=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Large IPVA with 512 MiB Flash==&lt;br /&gt;
In some scenarios the standard 64 MiB flash memory is not enough to store all user data. It is possible to manually enlarge the flash memory of an IPVA up to 512 MiB.&lt;br /&gt;
&lt;br /&gt;
You have to change the settings of the virtual machine and format the flash. You cannot do it with an already configured machine, because you will lose all your configuration!&lt;br /&gt;
&lt;br /&gt;
# shutdown the IPVA&lt;br /&gt;
# increase the RAM to 3.072 MiB&lt;br /&gt;
# increase the size of &#039;&#039;&#039;IDE1:0&#039;&#039;&#039; to 512 MiB or recreate it&lt;br /&gt;
# power up the IPVA&lt;br /&gt;
# format the flash: &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 reset all&amp;lt;/code&amp;gt;&lt;br /&gt;
# reboot the IPVA: &amp;lt;code&amp;gt;!reset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the free space with the command &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 info&amp;lt;/code&amp;gt;. You will see a big amount of available segments&lt;br /&gt;
&lt;br /&gt;
 segments=675, segment-size=0x10000 (64k)&lt;br /&gt;
 LDAP - used 1k avail 63k owned 64k (segments 1) maximum 517056k (&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;segments 8079&amp;lt;/span&amp;gt;, configured 8079)&lt;br /&gt;
 VARS - used 23k avail 16k owned 192k (segments 3) maximum 640k (segments 10, configured 10)&lt;br /&gt;
&lt;br /&gt;
But please keep in mind, the more data is saved, the longer it takes to reboot and load the UI in the [[{{NAMESPACE}}:PBX/Objects|PBX/Objects]] area.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Support procedures are commonly identical to the ones known from innovaphones&#039; physical appliances. Except for:&lt;br /&gt;
*&#039;&#039;&#039;Post-Mortem Logs&#039;&#039;&#039; A post-mortem log must be retrieved by clicking on &#039;&#039;Maintenance/Diagnostics/Tracing/&#039;&#039;&#039;trace(crash-dump)&#039;&#039;&#039;&#039;&#039; (alternatively: http://a.b.c.d/crash_dump.txt).&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Maximal 3.072 MiB RAM ===&lt;br /&gt;
Because the IPVA has no [https://en.wikipedia.org/wiki/Virtual_memory virtual memory management], it will use only the first linear 3 GiB of RAM. But please keep in mind, that the flash content will be stored 3-times (Flashmanager, Flashdirectory, PBX) in RAM at startup.&lt;br /&gt;
=== Restored IPVA may not run ===&lt;br /&gt;
We have seen issues where an IPVA which had been backed up using one of the available backup tools for VMWare do not start up properly when they have been restored. &lt;br /&gt;
&lt;br /&gt;
We strongly suggest to not rely on VMWare backup mechanism but instead to use the standard innovaphone backup scheme (that is, save the configuration on a regular basis).&lt;br /&gt;
&lt;br /&gt;
==== How to run a restored backup that fails to start ====&lt;br /&gt;
Here is the procedure to run an IPVA from an IPVA if the restored virtual machine does not boot up properly:&lt;br /&gt;
&lt;br /&gt;
* restore the backed up V10 IPVA&lt;br /&gt;
* create a new, empty V11r1 IPVA (you will need this merely to copy the boot disk from)&lt;br /&gt;
*replace the boot disk of the failing V10 IPVA by the boot disk of the fresh V11r1 IPVA (see [[#How To Replace The Boot Disk On vSphere.3F| How To Replace The Boot Disk On vSphere]] for details)&lt;br /&gt;
* start the restored and fixed V10 IPVA (it should run fine now)&lt;br /&gt;
* downgrade this V10 IPVA to desired V10 firmware&lt;br /&gt;
* remove the fresh V11r1 IPVA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some Customer who are running Fw v12r1 (up to sr6) with ESXi 6.0 and VEEAM 9 reported that after a backup with VEEAM 9, the restored IPVA was not starting. &lt;br /&gt;
At this point, there is no possibility to solve this problem. The only workaround in that case is to delete the machine, reinstall a new one, and restore a configuration saved before.&lt;br /&gt;
&lt;br /&gt;
If you did not run into the problem yet, for prevention, we recommend to replace the Boot disk of your working IPVA.vmx with one of the IPVA.ova. Please follow the steps below (be aware that this will upgrade the firmware on the IPVA to 12r2, due to the fact that actually, IPVA.ova is only available from version 12r2):&lt;br /&gt;
&lt;br /&gt;
1. Remove the Boot disk of the virtual machine (vmx)(is normaly the first one).&amp;lt;br&amp;gt;&lt;br /&gt;
* Power off the VM&lt;br /&gt;
* Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Remove&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;OK&#039;&#039; to save your changes.&lt;br /&gt;
&lt;br /&gt;
2. Add the Boot disk of the ova virtual machine to the vmx one.&lt;br /&gt;
* Identify the size of the boot disk of the ova virtual machine (will be needed on the step when navigating to boot disk)&lt;br /&gt;
* On the powered off VM, Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Add&#039;&#039;.&lt;br /&gt;
* Select Use “an existing virtual disk” then click &#039;&#039;Next&#039;&#039;.&lt;br /&gt;
* Navigate to the boot disk of the ova Virtual machine then click &#039;&#039;next&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;Finish&#039;&#039;.&lt;br /&gt;
Now the vmx virtual machine should have the Fw version 12r2.&lt;br /&gt;
&lt;br /&gt;
The .ova version will be available also in V12r1 sr7&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on Citrix Cloud Platform ===&lt;br /&gt;
Reportedly, the Citrix cloud platform - although based on VMware - cannot run the IPVA.  Amongst other issues, the platform does not allow 4 virtual disks, which are required for the IPVA.&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on VCloud Air ===&lt;br /&gt;
VCloud Air apparently does not support the timekeeping mechanism required by the IPVA.&lt;br /&gt;
&lt;br /&gt;
[[User:Ckl|ckl]] 15:50, 30 November 2016 (CET) We have seen the IPVA v12r2 running on vCloud Air. Use the ova import.&lt;br /&gt;
&lt;br /&gt;
=== IPVA on ESX 6.5 ===&lt;br /&gt;
We have reports that the IPVA does not run properly on ESX 6.5.  The IPVA boots up properly but the clock does not run.  Running the .ova based variation available in v12r2 fixed the issue or edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Administration: Avoid &#039;reboot&#039; Command. Use &#039;reset&#039; Command ===&lt;br /&gt;
Alwas use the &#039;reset&#039; command to restart an IPVA. &lt;br /&gt;
The &#039;reboot&#039; command makes sense only on physical applicances, where its purpose is to deploy a new bootcode by means of a forced watchdog trap. The resulting post-reboot state will be as if an unsolicited trap/crash had occurred.&lt;br /&gt;
&lt;br /&gt;
=== Voice Quality Issues ===&lt;br /&gt;
When dealing with media streams (e.g. for announcements), the IPVA needs to fulfil real-time processing requirements, for example to process RTP packets in a timely fashion.  To do so, the IPVA relies on the capabilities of the virtualization platform it runs on. &lt;br /&gt;
&lt;br /&gt;
It is therefore important to configure the platform so that it supports real-time applications best. If you experience voice quality or latency issues, consider &lt;br /&gt;
* to make sure that all of the IPVAs memory is &#039;&#039;reserved&#039;&#039; to the IPVA (&#039;&#039;Latency Sensitivity&#039;&#039; set to &#039;&#039;High&#039;&#039;)&lt;br /&gt;
* to guarantee exclusive PCPU access&lt;br /&gt;
This helps to reduce CPU halt/wake-up states.&lt;br /&gt;
&lt;br /&gt;
===Additional vCPUs may cause problems===&lt;br /&gt;
The Multi-Core functionality of version 13r2 is a beta functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
===Can The emulated compact-flash disk size be increased?===&lt;br /&gt;
Yes, from within the &#039;&#039;Edit Virtual Machine&#039;&#039; dialog. Doing so just increases the size of the virtual harddisk. The emulated compact-flash must be formatted afterwards and accordingly to benefit from the increased size. That step can be administrated from &#039;&#039;Administration/Compact Flash/Format&#039;&#039;. Note: A recommendation for an upper size limit is not given. Please note: The compact-flash disk is not the flash which store LDAP and VARS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vSphere / vSphere Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. At first backup all of your files from CF card&amp;lt;br&amp;gt;&lt;br /&gt;
2. Shutdown the corresponding IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
3. Choose &amp;quot;Properties&amp;quot; of the IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
4. Delete &amp;quot;Harddrive 2&amp;quot; (Hardrive file xxx/xxx_1.vmdk)&amp;lt;br&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 hd-boot.vmdk  &amp;gt; xxx.vmdk&lt;br /&gt;
 hd-cf.vmdk    &amp;gt; xxx_1.vmdk&lt;br /&gt;
 hd-flash.vmdk &amp;gt; xxx_2.vmdk&lt;br /&gt;
 hd-dump.vmdk  &amp;gt; xxx_3.vmdk&lt;br /&gt;
&lt;br /&gt;
5. Create new harddrive&amp;lt;br&amp;gt;&lt;br /&gt;
6. Configure the required size&amp;lt;br&amp;gt;&lt;br /&gt;
7. As &amp;quot;Node of virtual device&amp;quot; select &amp;quot;IDE(0:1)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
8. Start the IPVA.&amp;lt;br&amp;gt;&lt;br /&gt;
9. &amp;quot;Format&amp;quot; the CF Card and &amp;quot;mount&amp;quot; it (General/Compact-Flash/General)&lt;br /&gt;
===What Is the minimum size of the emulated flash storage?===&lt;br /&gt;
The VMDK-File hd-flash.vmdk is allocated with 100 MB, because VMWare can not handle smaller virtual disks.&lt;br /&gt;
&lt;br /&gt;
===What Is The Size Of the Flash Directory on the IPVA?===&lt;br /&gt;
As noted above, the virtual flash memory on the IPVA is defaulted to a size of 64MB. Most of the flash is used by the &#039;&#039;flash directory&#039;&#039; (FLASHDIR0) which amongst other things provides storage for PBX objects.&lt;br /&gt;
&lt;br /&gt;
The size of the flash directory depends on the available RAM. The maximum of 900 segments á 64KB, i.e. ~56MB, is available if 192MB or more RAM is available. If less RAM is available, the size of the flash directory is decreased accordingly.  For this reason, it is unsafe to reduce RAM size in a given IPVA, as the flash directory size may be decreased so that objects from the flash directory get lost.&lt;br /&gt;
&lt;br /&gt;
The easiest method to see how much flash directory space is available is to investigate the boot trace. For the standard configuration of 64MB the respective trace output is going to look as follows and informs about a size of 14MB:&lt;br /&gt;
 &lt;br /&gt;
 0:0000:081:4 - start flashdir FLASHDIR0&lt;br /&gt;
 0:0000:081:4 - fdir: segments=901-&amp;gt;224(14.0MB)&lt;br /&gt;
&lt;br /&gt;
{{Limit_Virtual_IPVA_Flash}}&lt;br /&gt;
&lt;br /&gt;
===How much RAM is required per IPVA instance?===&lt;br /&gt;
Since 12r2sr27/13r1sr5 the downloadable virtual appliance comes preconfigured with 256 MiB RAM. This amount is seen as a good trade-off for the majority of all installations. The IPVA need the amount of used flash 3-times at startup. The RAM-size can be administrated by VMware-means.&lt;br /&gt;
&lt;br /&gt;
===What is the maximum amount of RAM?===&lt;br /&gt;
The maximum meaningful RAM setting is 3GB. Memory space beyond that limit will be left unused. Assigning more than 3GB to an IPVA instance doesn&#039;t provide any benefit.&lt;br /&gt;
&lt;br /&gt;
===Why does &#039;&#039;General/Info/DRAM&#039;&#039; show less than the configured memory?===&lt;br /&gt;
Not all of the configured memory is available to the IPVA. E.g. a bit of memory is occupied by the VMM&amp;lt;ref&amp;gt;Virtual Machine Monitor: A component belonging to the virtualization platform&amp;lt;/ref&amp;gt;. The indicator &#039;&#039;General/Info/DRAM&#039;&#039; displays the memory available to the IPVA and is truncated down to a whole number. A boot-trace reveals a bit more about IPVA-available memory as shown in the following excerpt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
0:0000:030:4 - Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz&lt;br /&gt;
0:0000:030:4 - mem(64946176)=61.93MB ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What about Open VM Tools / VMware Tools?===&lt;br /&gt;
Tools like this are not supported / integrated because it is not needed. The Virtual Appliance provides his own operating system, and we don&#039;t need any of the VM-Tools features in our guest.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of A Checksum Boot Error?===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
checksum wrong! Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-crc-wrong.jpg|center|thumb|200px|ipva-crc-wrong.jpg/|/Ipva-crc-wrong.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Replace the boot harddisk by a fresh one. The boot harddisk is the 1st hd(originally named &#039;&#039;hd-boot.vmdk&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur on a system crash while a firmware update is taking place.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;NIC unavailable!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NIC unavailable!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-nic-unavailable.jpg|center|thumb|200px|ipva-nic-unavailable.jpg/|/Ipva-nic-unavailable.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Administrate by VMware means: Ensure the correct/expected type of network interface controller(NIC) is going to be offered by the hypervisor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IPVA offers driver support for:&lt;br /&gt;
*AMD NIC: Am79C970A PCnet-PCI II Single-Chip Full-Duplex Ethernet Controller&lt;br /&gt;
**a.k.a &#039;&#039;PCNet32&#039;&#039;&lt;br /&gt;
**a.k.a &#039;&#039;Vlance&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The AMD-NIC is kind of default. However, the NIC type may be overriden manually and accordingly within the configuration file ipva.vmx as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ethernet0.virtualDev = &amp;quot;vlance&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur after a VMware re-configuration of the network settings.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perfcounter-not enabled!!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:screenshot-ipva-perfcounter-nok.jpg|center|thumb|200px|screenshot-ipva-perfcounter-nok.jpg/|/Screenshot-ipva-perfcounter-nok.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by an OVA-import of the IPVA. The appliance&#039;s configuration file &#039;&#039;ipva.vmx&#039;&#039; requires a VMware proprietary configuration line that&#039;s not specifiable within an OVA-file. &lt;br /&gt;
&lt;br /&gt;
The IPVA utilizes a VMware proprietary mechanism for its internal timekeeping&amp;lt;ref&amp;gt;Timekeeping in Virtual Machines http://www.vmware.com/pdf/vmware_timekeeping.pdf&amp;lt;/ref&amp;gt;. That mechanism is only available after adding the following line to the configuration file &#039;&#039;ipva.vmx&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor_control.pseudo_perfctr = TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that line is not present, the hypervisor is going to throw a CPU exception. Hint: In vSphere a VMX-file can be edited under &#039;&#039;&#039;Edit Settings/Options/Advanced/General/Configuration Parameters&#039;&#039;&#039;&amp;lt;ref&amp;gt;vmware Labs - How to edit vmx file in ESXi vSphere: https://www.youtube.com/watch?v=ICICoq-maB0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
*The vmx file should be edited after the installation of the IPVA.&lt;br /&gt;
*The vmx file should NOT be edited with Text editor (use vSphere as shown above)&lt;br /&gt;
*To our knowledge, a converter is always necessary for the installation with vmx.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;Loading failed for image=IPVA    BIN&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:Ipva-fw-load-failed.png|center|thumb|200px|ipva-fw-load-failed.png/|/Ipva-fw-load-failed.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by a calculation fault within the boot-code. &lt;br /&gt;
*The solution requires a replacement of the boot disk hd-boot.vmdk. &lt;br /&gt;
**Download an IPVA package from on 11r2 sr22.&lt;br /&gt;
**Replace the 1st disk with the one from the downloaded package&lt;br /&gt;
&lt;br /&gt;
===Are Additional vCPUs useful?===&lt;br /&gt;
The Multi-Core functionality is an experimental functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Licenses|Reference15r1:Licenses]]&lt;br /&gt;
* [[Howto15r1:Implement_PBX_with_zero_downtime_using_IPVA_and_VMWare_Fault_Tolerance]]&lt;br /&gt;
* [[Howto:A_rough_estimate_of_IPVA_Performance]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept15r1|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80375</id>
		<title>Reference16r1:Concept Innovaphone Virtual Appliance (IPVA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80375"/>
		<updated>2026-08-24T13:47:34Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--ipva virtual virtuell va--&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to:&lt;br /&gt;
*V16r1&lt;br /&gt;
*innovaphone Virtual Appliance&lt;br /&gt;
*Intel/AMD CPUs&lt;br /&gt;
* Virtualization platforms&lt;br /&gt;
**VMware&lt;br /&gt;
*** Workstation&lt;br /&gt;
*** Player&lt;br /&gt;
*** vSphere 4 - 8&lt;br /&gt;
*** ESXi 6 - 8&lt;br /&gt;
**Microsoft Hyper-V ([[{{NAMESPACE}}:Concept IPVA On Hyper-V|Concept IPVA On Hyper-V]])&lt;br /&gt;
*** Windows 8.1&lt;br /&gt;
*** Windows 10&lt;br /&gt;
*** Windows Server 2012 R2&lt;br /&gt;
*** Windows Server 2016 CTP4&lt;br /&gt;
**Linux based Hypervisors with [https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM] and [https://en.wikipedia.org/wiki/QEMU QEMU] support&lt;br /&gt;
*** Proxmox VE 8.0 / 8.1 / 9.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer: Manufacturers/versions of VM platforms other than those specified here have not been tested, so use at your own risk.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer 2: We occasionally encounter customers experiencing unusual issues related to OpenStack. OpenStack is not officially supported, and such issues are not analyzed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
The innovaphone Virtual Appliance (IPVA) is a virtual machine to be run on a virtualization platform.&lt;br /&gt;
&lt;br /&gt;
The IPVA is a software-only solution. It appears and behaves like an innovaphone &amp;quot;hard-box&amp;quot; without physical resources such as hardware DSP or ISDN interface.&lt;br /&gt;
&lt;br /&gt;
==Package Overview==&lt;br /&gt;
We supply an OVF (&#039;&#039;&#039;O&#039;&#039;&#039;pen &#039;&#039;&#039;V&#039;&#039;&#039;irtualization &#039;&#039;&#039;F&#039;&#039;&#039;ormat) import or - depending on the virtualization platform - a suitable variant.&lt;br /&gt;
OVF is an open standard that contains several files in one package. The .ovf file is therefore an archive that contains all the necessary files.&lt;br /&gt;
&lt;br /&gt;
=== Sample VMware ===&lt;br /&gt;
;ipva-ovf.zip:&lt;br /&gt;
The compressed archive &#039;&#039;ipva-ovf.zip&#039;&#039; contains the file ipva.ova. A deployment of ipva.ova will result in a set of 5 files - the file names may differ from the following list:&lt;br /&gt;
*ipva.vmx: The virtual machine configuration file&lt;br /&gt;
*hd-boot.vmdk: The virtual boot disk on IDE 0:0&lt;br /&gt;
*hd-cf.vmdk: The disk for emulation of a Compact Flash card on IDE 0:1&lt;br /&gt;
*hd-flash.vmdk: The disk for emulation of flash memory on IDE 1:0&lt;br /&gt;
*hd-dump.vmdk: The disk serving as a store for a crash dump on IDE 1:1&lt;br /&gt;
&lt;br /&gt;
;ipva.bin:&lt;br /&gt;
The file &#039;&#039;ipva.bin&#039;&#039; is the firmware file, which is only needed for update purposes.&lt;br /&gt;
&lt;br /&gt;
== Virtualization platforms ==&lt;br /&gt;
&lt;br /&gt;
===VMware Player / VMware Workstation===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Copy the file ipva.ova to e.g. your desktop and Double-click on ipva.ova.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===VMware vSphere===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Import ipva.ova by means of &#039;&#039;&#039;File/Deploy OVF-Template...&#039;&#039;&#039; (de: &#039;&#039;&#039;Datei/OFV-Vorlage bereitstellen...&#039;&#039;&#039;) and follow instructions.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Microsoft Hyper-V===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
* Use the UI Wizard to Import a new machine&lt;br /&gt;
* Browse to the directory where the downloaded package was extracted to. Browse to the subdirectory Virtual Machines and click Ok&lt;br /&gt;
* Select &#039;&#039;Copy the Virtual Machine&#039;&#039; as &#039;&#039;Import Type&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Proxmox VE===&lt;br /&gt;
==== Settings ====&lt;br /&gt;
Here, we list the VM settings that allowed us to successfully test the system and that ensure VMs run stably in production. These settings should be considered best practices.&lt;br /&gt;
&lt;br /&gt;
===== Hardware =====&lt;br /&gt;
* Processors: 1 socket, 1 core, Type &amp;quot;Host&amp;quot; preferred, fallback &amp;quot;x86-64-v2-AES&amp;quot;&lt;br /&gt;
* Bios: SeaBIOS&lt;br /&gt;
* Machine: i440fx&lt;br /&gt;
* SCSI Controller: VirtIO SCSI single&lt;br /&gt;
* Hard Disks&lt;br /&gt;
** Datastore: Ceph (19.2.3) or local LVM&lt;br /&gt;
** Cache: No Cache&lt;br /&gt;
** Discard: Enable&lt;br /&gt;
** SSD emulation: Yes&lt;br /&gt;
** Async IO: io_uring&lt;br /&gt;
* Network Devices&lt;br /&gt;
** Model: VirtIO (paravirtualized)&lt;br /&gt;
&lt;br /&gt;
===== Options =====&lt;br /&gt;
* OS Type: Other&lt;br /&gt;
* Boot Order: ide0, ide1, ide2, ide3&lt;br /&gt;
* QEMU Gust Agent: Disabled&lt;br /&gt;
&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
Import the &amp;quot;ova&amp;quot; file to your storage which is enabled for the type &amp;quot;import&amp;quot;. After that you can select the created template an create new machines from it with the button &amp;quot;Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Before you start up the VM in the UI you have to adjust the following configuration options:&lt;br /&gt;
** Hardware -&amp;gt; Processors: Adjust &amp;quot;Extra Cpu Flags&amp;quot; -&amp;gt; &amp;quot;aes&amp;quot; if required&lt;br /&gt;
** Hardware -&amp;gt; SCSI Controller: Change Model to &amp;quot;VirtIO SCSI Single&amp;quot;&lt;br /&gt;
** Hardware -&amp;gt; Network Device (net0 / net1): Change Model to &amp;quot;VirtIO (paravirtualized)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
===Network Configuration===&lt;br /&gt;
The IPVA is preconfigured a DHCP client. You will see the current IP-Address in the console-screen of the VM. If there&#039;s in no case a DHCP server available for the 1st-time configuration, you can set your IP-Configuration in the console.&lt;br /&gt;
&lt;br /&gt;
 config change IP0 ETH0 /addr 192.168.0.10 /mask 255.255.255.0&lt;br /&gt;
 config change IP0 RT0 /gateway 192.168.0.1&lt;br /&gt;
 config change DHCP0 /mode off&lt;br /&gt;
 config write&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
====MAC/serial number====&lt;br /&gt;
Take care that you use a MAC address which is supported by my.innovaphone, see [[Reference:My_Innovaphone#IPVA_MAC_exists]].&lt;br /&gt;
&lt;br /&gt;
===AES Hardware Acceleration===&lt;br /&gt;
It may be beneficial to activate hardware acceleration for AES operations.&lt;br /&gt;
Whether hardware acceleration is activated can be checked with the command &amp;lt;code&amp;gt;!mod cmd CPU cpu-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;flags&amp;quot; attribute must contain &amp;quot;aesni&amp;quot;&lt;br /&gt;
* The &amp;quot;act-features&amp;quot; attribute must contain &amp;quot;has_aesni&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;info&amp;gt;&lt;br /&gt;
   &amp;lt;cpu &lt;br /&gt;
     vendor=&amp;quot;GenuineIntel&amp;quot; &lt;br /&gt;
     signature=&amp;quot;0x906e9&amp;quot;&lt;br /&gt;
     brand=&amp;quot;Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz&amp;quot; &lt;br /&gt;
     ...     &lt;br /&gt;
     flags=&amp;quot;sse3 pclmulqdq ssse3 sse4_1 sse4_2 &amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;aesni&amp;lt;/span&amp;gt; xsave xsaveopt osxsave avx f16c rdrand fpu mmx fxsr sse sse2 avx2&amp;quot; &lt;br /&gt;
     act-features=&amp;quot;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;has_aesni&amp;lt;/span&amp;gt; has_avx has_vaesni has_vpclmulqdq&amp;quot; srtp-mips=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Large IPVA with 512 MiB Flash==&lt;br /&gt;
In some scenarios the standard 64 MiB flash memory is not enough to store all user data. It is possible to manually enlarge the flash memory of an IPVA up to 512 MiB.&lt;br /&gt;
&lt;br /&gt;
You have to change the settings of the virtual machine and format the flash. You cannot do it with an already configured machine, because you will lose all your configuration!&lt;br /&gt;
&lt;br /&gt;
# shutdown the IPVA&lt;br /&gt;
# increase the RAM to 3.072 MiB&lt;br /&gt;
# increase the size of &#039;&#039;&#039;IDE1:0&#039;&#039;&#039; to 512 MiB or recreate it&lt;br /&gt;
# power up the IPVA&lt;br /&gt;
# format the flash: &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 reset all&amp;lt;/code&amp;gt;&lt;br /&gt;
# reboot the IPVA: &amp;lt;code&amp;gt;!reset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the free space with the command &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 info&amp;lt;/code&amp;gt;. You will see a big amount of available segments&lt;br /&gt;
&lt;br /&gt;
 segments=675, segment-size=0x10000 (64k)&lt;br /&gt;
 LDAP - used 1k avail 63k owned 64k (segments 1) maximum 517056k (&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;segments 8079&amp;lt;/span&amp;gt;, configured 8079)&lt;br /&gt;
 VARS - used 23k avail 16k owned 192k (segments 3) maximum 640k (segments 10, configured 10)&lt;br /&gt;
&lt;br /&gt;
But please keep in mind, the more data is saved, the longer it takes to reboot and load the UI in the [[{{NAMESPACE}}:PBX/Objects|PBX/Objects]] area.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Support procedures are commonly identical to the ones known from innovaphones&#039; physical appliances. Except for:&lt;br /&gt;
*&#039;&#039;&#039;Post-Mortem Logs&#039;&#039;&#039; A post-mortem log must be retrieved by clicking on &#039;&#039;Maintenance/Diagnostics/Tracing/&#039;&#039;&#039;trace(crash-dump)&#039;&#039;&#039;&#039;&#039; (alternatively: http://a.b.c.d/crash_dump.txt).&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Maximal 3.072 MiB RAM ===&lt;br /&gt;
Because the IPVA has no [https://en.wikipedia.org/wiki/Virtual_memory virtual memory management], it will use only the first linear 3 GiB of RAM. But please keep in mind, that the flash content will be stored 3-times (Flashmanager, Flashdirectory, PBX) in RAM at startup.&lt;br /&gt;
=== Restored IPVA may not run ===&lt;br /&gt;
We have seen issues where an IPVA which had been backed up using one of the available backup tools for VMWare do not start up properly when they have been restored. &lt;br /&gt;
&lt;br /&gt;
We strongly suggest to not rely on VMWare backup mechanism but instead to use the standard innovaphone backup scheme (that is, save the configuration on a regular basis).&lt;br /&gt;
&lt;br /&gt;
==== How to run a restored backup that fails to start ====&lt;br /&gt;
Here is the procedure to run an IPVA from an IPVA if the restored virtual machine does not boot up properly:&lt;br /&gt;
&lt;br /&gt;
* restore the backed up V10 IPVA&lt;br /&gt;
* create a new, empty V11r1 IPVA (you will need this merely to copy the boot disk from)&lt;br /&gt;
*replace the boot disk of the failing V10 IPVA by the boot disk of the fresh V11r1 IPVA (see [[#How To Replace The Boot Disk On vSphere.3F| How To Replace The Boot Disk On vSphere]] for details)&lt;br /&gt;
* start the restored and fixed V10 IPVA (it should run fine now)&lt;br /&gt;
* downgrade this V10 IPVA to desired V10 firmware&lt;br /&gt;
* remove the fresh V11r1 IPVA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some Customer who are running Fw v12r1 (up to sr6) with ESXi 6.0 and VEEAM 9 reported that after a backup with VEEAM 9, the restored IPVA was not starting. &lt;br /&gt;
At this point, there is no possibility to solve this problem. The only workaround in that case is to delete the machine, reinstall a new one, and restore a configuration saved before.&lt;br /&gt;
&lt;br /&gt;
If you did not run into the problem yet, for prevention, we recommend to replace the Boot disk of your working IPVA.vmx with one of the IPVA.ova. Please follow the steps below (be aware that this will upgrade the firmware on the IPVA to 12r2, due to the fact that actually, IPVA.ova is only available from version 12r2):&lt;br /&gt;
&lt;br /&gt;
1. Remove the Boot disk of the virtual machine (vmx)(is normaly the first one).&amp;lt;br&amp;gt;&lt;br /&gt;
* Power off the VM&lt;br /&gt;
* Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Remove&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;OK&#039;&#039; to save your changes.&lt;br /&gt;
&lt;br /&gt;
2. Add the Boot disk of the ova virtual machine to the vmx one.&lt;br /&gt;
* Identify the size of the boot disk of the ova virtual machine (will be needed on the step when navigating to boot disk)&lt;br /&gt;
* On the powered off VM, Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Add&#039;&#039;.&lt;br /&gt;
* Select Use “an existing virtual disk” then click &#039;&#039;Next&#039;&#039;.&lt;br /&gt;
* Navigate to the boot disk of the ova Virtual machine then click &#039;&#039;next&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;Finish&#039;&#039;.&lt;br /&gt;
Now the vmx virtual machine should have the Fw version 12r2.&lt;br /&gt;
&lt;br /&gt;
The .ova version will be available also in V12r1 sr7&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on Citrix Cloud Platform ===&lt;br /&gt;
Reportedly, the Citrix cloud platform - although based on VMware - cannot run the IPVA.  Amongst other issues, the platform does not allow 4 virtual disks, which are required for the IPVA.&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on VCloud Air ===&lt;br /&gt;
VCloud Air apparently does not support the timekeeping mechanism required by the IPVA.&lt;br /&gt;
&lt;br /&gt;
[[User:Ckl|ckl]] 15:50, 30 November 2016 (CET) We have seen the IPVA v12r2 running on vCloud Air. Use the ova import.&lt;br /&gt;
&lt;br /&gt;
=== IPVA on ESX 6.5 ===&lt;br /&gt;
We have reports that the IPVA does not run properly on ESX 6.5.  The IPVA boots up properly but the clock does not run.  Running the .ova based variation available in v12r2 fixed the issue or edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Administration: Avoid &#039;reboot&#039; Command. Use &#039;reset&#039; Command ===&lt;br /&gt;
Alwas use the &#039;reset&#039; command to restart an IPVA. &lt;br /&gt;
The &#039;reboot&#039; command makes sense only on physical applicances, where its purpose is to deploy a new bootcode by means of a forced watchdog trap. The resulting post-reboot state will be as if an unsolicited trap/crash had occurred.&lt;br /&gt;
&lt;br /&gt;
=== Voice Quality Issues ===&lt;br /&gt;
When dealing with media streams (e.g. for announcements), the IPVA needs to fulfil real-time processing requirements, for example to process RTP packets in a timely fashion.  To do so, the IPVA relies on the capabilities of the virtualization platform it runs on. &lt;br /&gt;
&lt;br /&gt;
It is therefore important to configure the platform so that it supports real-time applications best. If you experience voice quality or latency issues, consider &lt;br /&gt;
* to make sure that all of the IPVAs memory is &#039;&#039;reserved&#039;&#039; to the IPVA (&#039;&#039;Latency Sensitivity&#039;&#039; set to &#039;&#039;High&#039;&#039;)&lt;br /&gt;
* to guarantee exclusive PCPU access&lt;br /&gt;
This helps to reduce CPU halt/wake-up states.&lt;br /&gt;
&lt;br /&gt;
===Additional vCPUs may cause problems===&lt;br /&gt;
The Multi-Core functionality of version 13r2 is a beta functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
===Can The emulated compact-flash disk size be increased?===&lt;br /&gt;
Yes, from within the &#039;&#039;Edit Virtual Machine&#039;&#039; dialog. Doing so just increases the size of the virtual harddisk. The emulated compact-flash must be formatted afterwards and accordingly to benefit from the increased size. That step can be administrated from &#039;&#039;Administration/Compact Flash/Format&#039;&#039;. Note: A recommendation for an upper size limit is not given. Please note: The compact-flash disk is not the flash which store LDAP and VARS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vSphere / vSphere Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. At first backup all of your files from CF card&amp;lt;br&amp;gt;&lt;br /&gt;
2. Shutdown the corresponding IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
3. Choose &amp;quot;Properties&amp;quot; of the IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
4. Delete &amp;quot;Harddrive 2&amp;quot; (Hardrive file xxx/xxx_1.vmdk)&amp;lt;br&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 hd-boot.vmdk  &amp;gt; xxx.vmdk&lt;br /&gt;
 hd-cf.vmdk    &amp;gt; xxx_1.vmdk&lt;br /&gt;
 hd-flash.vmdk &amp;gt; xxx_2.vmdk&lt;br /&gt;
 hd-dump.vmdk  &amp;gt; xxx_3.vmdk&lt;br /&gt;
&lt;br /&gt;
5. Create new harddrive&amp;lt;br&amp;gt;&lt;br /&gt;
6. Configure the required size&amp;lt;br&amp;gt;&lt;br /&gt;
7. As &amp;quot;Node of virtual device&amp;quot; select &amp;quot;IDE(0:1)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
8. Start the IPVA.&amp;lt;br&amp;gt;&lt;br /&gt;
9. &amp;quot;Format&amp;quot; the CF Card and &amp;quot;mount&amp;quot; it (General/Compact-Flash/General)&lt;br /&gt;
===What Is the minimum size of the emulated flash storage?===&lt;br /&gt;
The VMDK-File hd-flash.vmdk is allocated with 100 MB, because VMWare can not handle smaller virtual disks.&lt;br /&gt;
&lt;br /&gt;
===What Is The Size Of the Flash Directory on the IPVA?===&lt;br /&gt;
As noted above, the virtual flash memory on the IPVA is defaulted to a size of 64MB. Most of the flash is used by the &#039;&#039;flash directory&#039;&#039; (FLASHDIR0) which amongst other things provides storage for PBX objects.&lt;br /&gt;
&lt;br /&gt;
The size of the flash directory depends on the available RAM. The maximum of 900 segments á 64KB, i.e. ~56MB, is available if 192MB or more RAM is available. If less RAM is available, the size of the flash directory is decreased accordingly.  For this reason, it is unsafe to reduce RAM size in a given IPVA, as the flash directory size may be decreased so that objects from the flash directory get lost.&lt;br /&gt;
&lt;br /&gt;
The easiest method to see how much flash directory space is available is to investigate the boot trace. For the standard configuration of 64MB the respective trace output is going to look as follows and informs about a size of 14MB:&lt;br /&gt;
 &lt;br /&gt;
 0:0000:081:4 - start flashdir FLASHDIR0&lt;br /&gt;
 0:0000:081:4 - fdir: segments=901-&amp;gt;224(14.0MB)&lt;br /&gt;
&lt;br /&gt;
{{Limit_Virtual_IPVA_Flash}}&lt;br /&gt;
&lt;br /&gt;
===How much RAM is required per IPVA instance?===&lt;br /&gt;
Since 12r2sr27/13r1sr5 the downloadable virtual appliance comes preconfigured with 256 MiB RAM. This amount is seen as a good trade-off for the majority of all installations. The IPVA need the amount of used flash 3-times at startup. The RAM-size can be administrated by VMware-means.&lt;br /&gt;
&lt;br /&gt;
===What is the maximum amount of RAM?===&lt;br /&gt;
The maximum meaningful RAM setting is 3GB. Memory space beyond that limit will be left unused. Assigning more than 3GB to an IPVA instance doesn&#039;t provide any benefit.&lt;br /&gt;
&lt;br /&gt;
===Why does &#039;&#039;General/Info/DRAM&#039;&#039; show less than the configured memory?===&lt;br /&gt;
Not all of the configured memory is available to the IPVA. E.g. a bit of memory is occupied by the VMM&amp;lt;ref&amp;gt;Virtual Machine Monitor: A component belonging to the virtualization platform&amp;lt;/ref&amp;gt;. The indicator &#039;&#039;General/Info/DRAM&#039;&#039; displays the memory available to the IPVA and is truncated down to a whole number. A boot-trace reveals a bit more about IPVA-available memory as shown in the following excerpt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
0:0000:030:4 - Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz&lt;br /&gt;
0:0000:030:4 - mem(64946176)=61.93MB ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What about Open VM Tools / VMware Tools?===&lt;br /&gt;
Tools like this are not supported / integrated because it is not needed. The Virtual Appliance provides his own operating system, and we don&#039;t need any of the VM-Tools features in our guest.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of A Checksum Boot Error?===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
checksum wrong! Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-crc-wrong.jpg|center|thumb|200px|ipva-crc-wrong.jpg/|/Ipva-crc-wrong.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Replace the boot harddisk by a fresh one. The boot harddisk is the 1st hd(originally named &#039;&#039;hd-boot.vmdk&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur on a system crash while a firmware update is taking place.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;NIC unavailable!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NIC unavailable!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-nic-unavailable.jpg|center|thumb|200px|ipva-nic-unavailable.jpg/|/Ipva-nic-unavailable.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Administrate by VMware means: Ensure the correct/expected type of network interface controller(NIC) is going to be offered by the hypervisor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IPVA offers driver support for:&lt;br /&gt;
*AMD NIC: Am79C970A PCnet-PCI II Single-Chip Full-Duplex Ethernet Controller&lt;br /&gt;
**a.k.a &#039;&#039;PCNet32&#039;&#039;&lt;br /&gt;
**a.k.a &#039;&#039;Vlance&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The AMD-NIC is kind of default. However, the NIC type may be overriden manually and accordingly within the configuration file ipva.vmx as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ethernet0.virtualDev = &amp;quot;vlance&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur after a VMware re-configuration of the network settings.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perfcounter-not enabled!!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:screenshot-ipva-perfcounter-nok.jpg|center|thumb|200px|screenshot-ipva-perfcounter-nok.jpg/|/Screenshot-ipva-perfcounter-nok.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by an OVA-import of the IPVA. The appliance&#039;s configuration file &#039;&#039;ipva.vmx&#039;&#039; requires a VMware proprietary configuration line that&#039;s not specifiable within an OVA-file. &lt;br /&gt;
&lt;br /&gt;
The IPVA utilizes a VMware proprietary mechanism for its internal timekeeping&amp;lt;ref&amp;gt;Timekeeping in Virtual Machines http://www.vmware.com/pdf/vmware_timekeeping.pdf&amp;lt;/ref&amp;gt;. That mechanism is only available after adding the following line to the configuration file &#039;&#039;ipva.vmx&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor_control.pseudo_perfctr = TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that line is not present, the hypervisor is going to throw a CPU exception. Hint: In vSphere a VMX-file can be edited under &#039;&#039;&#039;Edit Settings/Options/Advanced/General/Configuration Parameters&#039;&#039;&#039;&amp;lt;ref&amp;gt;vmware Labs - How to edit vmx file in ESXi vSphere: https://www.youtube.com/watch?v=ICICoq-maB0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
*The vmx file should be edited after the installation of the IPVA.&lt;br /&gt;
*The vmx file should NOT be edited with Text editor (use vSphere as shown above)&lt;br /&gt;
*To our knowledge, a converter is always necessary for the installation with vmx.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;Loading failed for image=IPVA    BIN&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:Ipva-fw-load-failed.png|center|thumb|200px|ipva-fw-load-failed.png/|/Ipva-fw-load-failed.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by a calculation fault within the boot-code. &lt;br /&gt;
*The solution requires a replacement of the boot disk hd-boot.vmdk. &lt;br /&gt;
**Download an IPVA package from on 11r2 sr22.&lt;br /&gt;
**Replace the 1st disk with the one from the downloaded package&lt;br /&gt;
&lt;br /&gt;
===Are Additional vCPUs useful?===&lt;br /&gt;
The Multi-Core functionality is an experimental functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Licenses|Reference15r1:Licenses]]&lt;br /&gt;
* [[Howto15r1:Implement_PBX_with_zero_downtime_using_IPVA_and_VMWare_Fault_Tolerance]]&lt;br /&gt;
* [[Howto:A_rough_estimate_of_IPVA_Performance]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept15r1|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80373</id>
		<title>Reference16r1:Concept Innovaphone Virtual Appliance (IPVA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80373"/>
		<updated>2026-08-24T11:24:48Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--ipva virtual virtuell va--&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to:&lt;br /&gt;
*V16r1&lt;br /&gt;
*innovaphone Virtual Appliance&lt;br /&gt;
*Intel/AMD CPUs&lt;br /&gt;
* Virtualization platforms&lt;br /&gt;
**VMware&lt;br /&gt;
*** Workstation&lt;br /&gt;
*** Player&lt;br /&gt;
*** vSphere 4 - 8&lt;br /&gt;
*** ESXi 6 - 8&lt;br /&gt;
**Microsoft Hyper-V ([[{{NAMESPACE}}:Concept IPVA On Hyper-V|Concept IPVA On Hyper-V]])&lt;br /&gt;
*** Windows 8.1&lt;br /&gt;
*** Windows 10&lt;br /&gt;
*** Windows Server 2012 R2&lt;br /&gt;
*** Windows Server 2016 CTP4&lt;br /&gt;
**Linux based Hypervisors with [https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM] and [https://en.wikipedia.org/wiki/QEMU QEMU] support&lt;br /&gt;
*** Proxmox VE 8.0 / 8.1 / 9.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer: Manufacturers/versions of VM platforms other than those specified here have not been tested, so use at your own risk.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer 2: We occasionally encounter customers experiencing unusual issues related to OpenStack. OpenStack is not officially supported, and such issues are not analyzed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
The innovaphone Virtual Appliance (IPVA) is a virtual machine to be run on a virtualization platform.&lt;br /&gt;
&lt;br /&gt;
The IPVA is a software-only solution. It appears and behaves like an innovaphone &amp;quot;hard-box&amp;quot; without physical resources such as hardware DSP or ISDN interface.&lt;br /&gt;
&lt;br /&gt;
==Package Overview==&lt;br /&gt;
We supply an OVF (&#039;&#039;&#039;O&#039;&#039;&#039;pen &#039;&#039;&#039;V&#039;&#039;&#039;irtualization &#039;&#039;&#039;F&#039;&#039;&#039;ormat) import or - depending on the virtualization platform - a suitable variant.&lt;br /&gt;
OVF is an open standard that contains several files in one package. The .ovf file is therefore an archive that contains all the necessary files.&lt;br /&gt;
&lt;br /&gt;
=== Sample VMware ===&lt;br /&gt;
;ipva-ovf.zip:&lt;br /&gt;
The compressed archive &#039;&#039;ipva-ovf.zip&#039;&#039; contains the file ipva.ova. A deployment of ipva.ova will result in a set of 5 files - the file names may differ from the following list:&lt;br /&gt;
*ipva.vmx: The virtual machine configuration file&lt;br /&gt;
*hd-boot.vmdk: The virtual boot disk on IDE 0:0&lt;br /&gt;
*hd-cf.vmdk: The disk for emulation of a Compact Flash card on IDE 0:1&lt;br /&gt;
*hd-flash.vmdk: The disk for emulation of flash memory on IDE 1:0&lt;br /&gt;
*hd-dump.vmdk: The disk serving as a store for a crash dump on IDE 1:1&lt;br /&gt;
&lt;br /&gt;
;ipva.bin:&lt;br /&gt;
The file &#039;&#039;ipva.bin&#039;&#039; is the firmware file, which is only needed for update purposes.&lt;br /&gt;
&lt;br /&gt;
== Virtualization platforms ==&lt;br /&gt;
&lt;br /&gt;
===VMware Player / VMware Workstation===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Copy the file ipva.ova to e.g. your desktop and Double-click on ipva.ova.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===VMware vSphere===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Import ipva.ova by means of &#039;&#039;&#039;File/Deploy OVF-Template...&#039;&#039;&#039; (de: &#039;&#039;&#039;Datei/OFV-Vorlage bereitstellen...&#039;&#039;&#039;) and follow instructions.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Microsoft Hyper-V===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
* Use the UI Wizard to Import a new machine&lt;br /&gt;
* Browse to the directory where the downloaded package was extracted to. Browse to the subdirectory Virtual Machines and click Ok&lt;br /&gt;
* Select &#039;&#039;Copy the Virtual Machine&#039;&#039; as &#039;&#039;Import Type&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Proxmox VE===&lt;br /&gt;
==== Settings ====&lt;br /&gt;
===== Hardware =====&lt;br /&gt;
* Processors: 1 socket, 1 core, Type &amp;quot;Host&amp;quot; preferred, fallback &amp;quot;x86-64-v2-AES&amp;quot;&lt;br /&gt;
* Bios: SeaBIOS&lt;br /&gt;
* Machine: i440fx&lt;br /&gt;
* SCSI Controller: VirtIO SCSI single&lt;br /&gt;
* Hard Disks&lt;br /&gt;
** Dadstore: Ceph (19.2.3) or local LVM&lt;br /&gt;
** Cache: No Cache&lt;br /&gt;
** Discard: Enable&lt;br /&gt;
** SSD emulation: Yes&lt;br /&gt;
** Async IO: io_uring&lt;br /&gt;
* Network Devices&lt;br /&gt;
** Model: VirtIO (paravirtualized)&lt;br /&gt;
&lt;br /&gt;
===== Options =====&lt;br /&gt;
* OS Type: Other&lt;br /&gt;
* Boot Order: ide0, ide1, ide2, ide3&lt;br /&gt;
* QEMU Gust Agent: Disabled&lt;br /&gt;
&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
Import the &amp;quot;ova&amp;quot; file to your storage which is enabled for the type &amp;quot;import&amp;quot;. After that you can select the created template an create new machines from it with the button &amp;quot;Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Before you start up the VM in the UI you have to adjust the following configuration options:&lt;br /&gt;
** Hardware -&amp;gt; Processors: Adjust &amp;quot;Extra Cpu Flags&amp;quot; -&amp;gt; &amp;quot;aes&amp;quot; if required&lt;br /&gt;
** Hardware -&amp;gt; SCSI Controller: Change Model to &amp;quot;VirtIO SCSI Single&amp;quot;&lt;br /&gt;
** Hardware -&amp;gt; Network Device (net0 / net1): Change Model to &amp;quot;VirtIO (paravirtualized)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
===Network Configuration===&lt;br /&gt;
The IPVA is preconfigured a DHCP client. You will see the current IP-Address in the console-screen of the VM. If there&#039;s in no case a DHCP server available for the 1st-time configuration, you can set your IP-Configuration in the console.&lt;br /&gt;
&lt;br /&gt;
 config change IP0 ETH0 /addr 192.168.0.10 /mask 255.255.255.0&lt;br /&gt;
 config change IP0 RT0 /gateway 192.168.0.1&lt;br /&gt;
 config change DHCP0 /mode off&lt;br /&gt;
 config write&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
====MAC/serial number====&lt;br /&gt;
Take care that you use a MAC address which is supported by my.innovaphone, see [[Reference:My_Innovaphone#IPVA_MAC_exists]].&lt;br /&gt;
&lt;br /&gt;
===AES Hardware Acceleration===&lt;br /&gt;
It may be beneficial to activate hardware acceleration for AES operations.&lt;br /&gt;
Whether hardware acceleration is activated can be checked with the command &amp;lt;code&amp;gt;!mod cmd CPU cpu-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;flags&amp;quot; attribute must contain &amp;quot;aesni&amp;quot;&lt;br /&gt;
* The &amp;quot;act-features&amp;quot; attribute must contain &amp;quot;has_aesni&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;info&amp;gt;&lt;br /&gt;
   &amp;lt;cpu &lt;br /&gt;
     vendor=&amp;quot;GenuineIntel&amp;quot; &lt;br /&gt;
     signature=&amp;quot;0x906e9&amp;quot;&lt;br /&gt;
     brand=&amp;quot;Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz&amp;quot; &lt;br /&gt;
     ...     &lt;br /&gt;
     flags=&amp;quot;sse3 pclmulqdq ssse3 sse4_1 sse4_2 &amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;aesni&amp;lt;/span&amp;gt; xsave xsaveopt osxsave avx f16c rdrand fpu mmx fxsr sse sse2 avx2&amp;quot; &lt;br /&gt;
     act-features=&amp;quot;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;has_aesni&amp;lt;/span&amp;gt; has_avx has_vaesni has_vpclmulqdq&amp;quot; srtp-mips=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Large IPVA with 512 MiB Flash==&lt;br /&gt;
In some scenarios the standard 64 MiB flash memory is not enough to store all user data. It is possible to manually enlarge the flash memory of an IPVA up to 512 MiB.&lt;br /&gt;
&lt;br /&gt;
You have to change the settings of the virtual machine and format the flash. You cannot do it with an already configured machine, because you will lose all your configuration!&lt;br /&gt;
&lt;br /&gt;
# shutdown the IPVA&lt;br /&gt;
# increase the RAM to 3.072 MiB&lt;br /&gt;
# increase the size of &#039;&#039;&#039;IDE1:0&#039;&#039;&#039; to 512 MiB or recreate it&lt;br /&gt;
# power up the IPVA&lt;br /&gt;
# format the flash: &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 reset all&amp;lt;/code&amp;gt;&lt;br /&gt;
# reboot the IPVA: &amp;lt;code&amp;gt;!reset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the free space with the command &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 info&amp;lt;/code&amp;gt;. You will see a big amount of available segments&lt;br /&gt;
&lt;br /&gt;
 segments=675, segment-size=0x10000 (64k)&lt;br /&gt;
 LDAP - used 1k avail 63k owned 64k (segments 1) maximum 517056k (&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;segments 8079&amp;lt;/span&amp;gt;, configured 8079)&lt;br /&gt;
 VARS - used 23k avail 16k owned 192k (segments 3) maximum 640k (segments 10, configured 10)&lt;br /&gt;
&lt;br /&gt;
But please keep in mind, the more data is saved, the longer it takes to reboot and load the UI in the [[{{NAMESPACE}}:PBX/Objects|PBX/Objects]] area.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Support procedures are commonly identical to the ones known from innovaphones&#039; physical appliances. Except for:&lt;br /&gt;
*&#039;&#039;&#039;Post-Mortem Logs&#039;&#039;&#039; A post-mortem log must be retrieved by clicking on &#039;&#039;Maintenance/Diagnostics/Tracing/&#039;&#039;&#039;trace(crash-dump)&#039;&#039;&#039;&#039;&#039; (alternatively: http://a.b.c.d/crash_dump.txt).&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Maximal 3.072 MiB RAM ===&lt;br /&gt;
Because the IPVA has no [https://en.wikipedia.org/wiki/Virtual_memory virtual memory management], it will use only the first linear 3 GiB of RAM. But please keep in mind, that the flash content will be stored 3-times (Flashmanager, Flashdirectory, PBX) in RAM at startup.&lt;br /&gt;
=== Restored IPVA may not run ===&lt;br /&gt;
We have seen issues where an IPVA which had been backed up using one of the available backup tools for VMWare do not start up properly when they have been restored. &lt;br /&gt;
&lt;br /&gt;
We strongly suggest to not rely on VMWare backup mechanism but instead to use the standard innovaphone backup scheme (that is, save the configuration on a regular basis).&lt;br /&gt;
&lt;br /&gt;
==== How to run a restored backup that fails to start ====&lt;br /&gt;
Here is the procedure to run an IPVA from an IPVA if the restored virtual machine does not boot up properly:&lt;br /&gt;
&lt;br /&gt;
* restore the backed up V10 IPVA&lt;br /&gt;
* create a new, empty V11r1 IPVA (you will need this merely to copy the boot disk from)&lt;br /&gt;
*replace the boot disk of the failing V10 IPVA by the boot disk of the fresh V11r1 IPVA (see [[#How To Replace The Boot Disk On vSphere.3F| How To Replace The Boot Disk On vSphere]] for details)&lt;br /&gt;
* start the restored and fixed V10 IPVA (it should run fine now)&lt;br /&gt;
* downgrade this V10 IPVA to desired V10 firmware&lt;br /&gt;
* remove the fresh V11r1 IPVA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some Customer who are running Fw v12r1 (up to sr6) with ESXi 6.0 and VEEAM 9 reported that after a backup with VEEAM 9, the restored IPVA was not starting. &lt;br /&gt;
At this point, there is no possibility to solve this problem. The only workaround in that case is to delete the machine, reinstall a new one, and restore a configuration saved before.&lt;br /&gt;
&lt;br /&gt;
If you did not run into the problem yet, for prevention, we recommend to replace the Boot disk of your working IPVA.vmx with one of the IPVA.ova. Please follow the steps below (be aware that this will upgrade the firmware on the IPVA to 12r2, due to the fact that actually, IPVA.ova is only available from version 12r2):&lt;br /&gt;
&lt;br /&gt;
1. Remove the Boot disk of the virtual machine (vmx)(is normaly the first one).&amp;lt;br&amp;gt;&lt;br /&gt;
* Power off the VM&lt;br /&gt;
* Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Remove&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;OK&#039;&#039; to save your changes.&lt;br /&gt;
&lt;br /&gt;
2. Add the Boot disk of the ova virtual machine to the vmx one.&lt;br /&gt;
* Identify the size of the boot disk of the ova virtual machine (will be needed on the step when navigating to boot disk)&lt;br /&gt;
* On the powered off VM, Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Add&#039;&#039;.&lt;br /&gt;
* Select Use “an existing virtual disk” then click &#039;&#039;Next&#039;&#039;.&lt;br /&gt;
* Navigate to the boot disk of the ova Virtual machine then click &#039;&#039;next&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;Finish&#039;&#039;.&lt;br /&gt;
Now the vmx virtual machine should have the Fw version 12r2.&lt;br /&gt;
&lt;br /&gt;
The .ova version will be available also in V12r1 sr7&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on Citrix Cloud Platform ===&lt;br /&gt;
Reportedly, the Citrix cloud platform - although based on VMware - cannot run the IPVA.  Amongst other issues, the platform does not allow 4 virtual disks, which are required for the IPVA.&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on VCloud Air ===&lt;br /&gt;
VCloud Air apparently does not support the timekeeping mechanism required by the IPVA.&lt;br /&gt;
&lt;br /&gt;
[[User:Ckl|ckl]] 15:50, 30 November 2016 (CET) We have seen the IPVA v12r2 running on vCloud Air. Use the ova import.&lt;br /&gt;
&lt;br /&gt;
=== IPVA on ESX 6.5 ===&lt;br /&gt;
We have reports that the IPVA does not run properly on ESX 6.5.  The IPVA boots up properly but the clock does not run.  Running the .ova based variation available in v12r2 fixed the issue or edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Administration: Avoid &#039;reboot&#039; Command. Use &#039;reset&#039; Command ===&lt;br /&gt;
Alwas use the &#039;reset&#039; command to restart an IPVA. &lt;br /&gt;
The &#039;reboot&#039; command makes sense only on physical applicances, where its purpose is to deploy a new bootcode by means of a forced watchdog trap. The resulting post-reboot state will be as if an unsolicited trap/crash had occurred.&lt;br /&gt;
&lt;br /&gt;
=== Voice Quality Issues ===&lt;br /&gt;
When dealing with media streams (e.g. for announcements), the IPVA needs to fulfil real-time processing requirements, for example to process RTP packets in a timely fashion.  To do so, the IPVA relies on the capabilities of the virtualization platform it runs on. &lt;br /&gt;
&lt;br /&gt;
It is therefore important to configure the platform so that it supports real-time applications best. If you experience voice quality or latency issues, consider &lt;br /&gt;
* to make sure that all of the IPVAs memory is &#039;&#039;reserved&#039;&#039; to the IPVA (&#039;&#039;Latency Sensitivity&#039;&#039; set to &#039;&#039;High&#039;&#039;)&lt;br /&gt;
* to guarantee exclusive PCPU access&lt;br /&gt;
This helps to reduce CPU halt/wake-up states.&lt;br /&gt;
&lt;br /&gt;
===Additional vCPUs may cause problems===&lt;br /&gt;
The Multi-Core functionality of version 13r2 is a beta functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
===Can The emulated compact-flash disk size be increased?===&lt;br /&gt;
Yes, from within the &#039;&#039;Edit Virtual Machine&#039;&#039; dialog. Doing so just increases the size of the virtual harddisk. The emulated compact-flash must be formatted afterwards and accordingly to benefit from the increased size. That step can be administrated from &#039;&#039;Administration/Compact Flash/Format&#039;&#039;. Note: A recommendation for an upper size limit is not given. Please note: The compact-flash disk is not the flash which store LDAP and VARS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vSphere / vSphere Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. At first backup all of your files from CF card&amp;lt;br&amp;gt;&lt;br /&gt;
2. Shutdown the corresponding IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
3. Choose &amp;quot;Properties&amp;quot; of the IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
4. Delete &amp;quot;Harddrive 2&amp;quot; (Hardrive file xxx/xxx_1.vmdk)&amp;lt;br&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 hd-boot.vmdk  &amp;gt; xxx.vmdk&lt;br /&gt;
 hd-cf.vmdk    &amp;gt; xxx_1.vmdk&lt;br /&gt;
 hd-flash.vmdk &amp;gt; xxx_2.vmdk&lt;br /&gt;
 hd-dump.vmdk  &amp;gt; xxx_3.vmdk&lt;br /&gt;
&lt;br /&gt;
5. Create new harddrive&amp;lt;br&amp;gt;&lt;br /&gt;
6. Configure the required size&amp;lt;br&amp;gt;&lt;br /&gt;
7. As &amp;quot;Node of virtual device&amp;quot; select &amp;quot;IDE(0:1)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
8. Start the IPVA.&amp;lt;br&amp;gt;&lt;br /&gt;
9. &amp;quot;Format&amp;quot; the CF Card and &amp;quot;mount&amp;quot; it (General/Compact-Flash/General)&lt;br /&gt;
===What Is the minimum size of the emulated flash storage?===&lt;br /&gt;
The VMDK-File hd-flash.vmdk is allocated with 100 MB, because VMWare can not handle smaller virtual disks.&lt;br /&gt;
&lt;br /&gt;
===What Is The Size Of the Flash Directory on the IPVA?===&lt;br /&gt;
As noted above, the virtual flash memory on the IPVA is defaulted to a size of 64MB. Most of the flash is used by the &#039;&#039;flash directory&#039;&#039; (FLASHDIR0) which amongst other things provides storage for PBX objects.&lt;br /&gt;
&lt;br /&gt;
The size of the flash directory depends on the available RAM. The maximum of 900 segments á 64KB, i.e. ~56MB, is available if 192MB or more RAM is available. If less RAM is available, the size of the flash directory is decreased accordingly.  For this reason, it is unsafe to reduce RAM size in a given IPVA, as the flash directory size may be decreased so that objects from the flash directory get lost.&lt;br /&gt;
&lt;br /&gt;
The easiest method to see how much flash directory space is available is to investigate the boot trace. For the standard configuration of 64MB the respective trace output is going to look as follows and informs about a size of 14MB:&lt;br /&gt;
 &lt;br /&gt;
 0:0000:081:4 - start flashdir FLASHDIR0&lt;br /&gt;
 0:0000:081:4 - fdir: segments=901-&amp;gt;224(14.0MB)&lt;br /&gt;
&lt;br /&gt;
{{Limit_Virtual_IPVA_Flash}}&lt;br /&gt;
&lt;br /&gt;
===How much RAM is required per IPVA instance?===&lt;br /&gt;
Since 12r2sr27/13r1sr5 the downloadable virtual appliance comes preconfigured with 256 MiB RAM. This amount is seen as a good trade-off for the majority of all installations. The IPVA need the amount of used flash 3-times at startup. The RAM-size can be administrated by VMware-means.&lt;br /&gt;
&lt;br /&gt;
===What is the maximum amount of RAM?===&lt;br /&gt;
The maximum meaningful RAM setting is 3GB. Memory space beyond that limit will be left unused. Assigning more than 3GB to an IPVA instance doesn&#039;t provide any benefit.&lt;br /&gt;
&lt;br /&gt;
===Why does &#039;&#039;General/Info/DRAM&#039;&#039; show less than the configured memory?===&lt;br /&gt;
Not all of the configured memory is available to the IPVA. E.g. a bit of memory is occupied by the VMM&amp;lt;ref&amp;gt;Virtual Machine Monitor: A component belonging to the virtualization platform&amp;lt;/ref&amp;gt;. The indicator &#039;&#039;General/Info/DRAM&#039;&#039; displays the memory available to the IPVA and is truncated down to a whole number. A boot-trace reveals a bit more about IPVA-available memory as shown in the following excerpt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
0:0000:030:4 - Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz&lt;br /&gt;
0:0000:030:4 - mem(64946176)=61.93MB ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What about Open VM Tools / VMware Tools?===&lt;br /&gt;
Tools like this are not supported / integrated because it is not needed. The Virtual Appliance provides his own operating system, and we don&#039;t need any of the VM-Tools features in our guest.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of A Checksum Boot Error?===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
checksum wrong! Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-crc-wrong.jpg|center|thumb|200px|ipva-crc-wrong.jpg/|ipva-crc-wrong.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Replace the boot harddisk by a fresh one. The boot harddisk is the 1st hd(originally named &#039;&#039;hd-boot.vmdk&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur on a system crash while a firmware update is taking place.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;NIC unavailable!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NIC unavailable!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-nic-unavailable.jpg|center|thumb|200px|ipva-nic-unavailable.jpg/|ipva-nic-unavailable.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Administrate by VMware means: Ensure the correct/expected type of network interface controller(NIC) is going to be offered by the hypervisor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IPVA offers driver support for:&lt;br /&gt;
*AMD NIC: Am79C970A PCnet-PCI II Single-Chip Full-Duplex Ethernet Controller&lt;br /&gt;
**a.k.a &#039;&#039;PCNet32&#039;&#039;&lt;br /&gt;
**a.k.a &#039;&#039;Vlance&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The AMD-NIC is kind of default. However, the NIC type may be overriden manually and accordingly within the configuration file ipva.vmx as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ethernet0.virtualDev = &amp;quot;vlance&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur after a VMware re-configuration of the network settings.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perfcounter-not enabled!!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:screenshot-ipva-perfcounter-nok.jpg|center|thumb|200px|screenshot-ipva-perfcounter-nok.jpg/|screenshot-ipva-perfcounter-nok.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by an OVA-import of the IPVA. The appliance&#039;s configuration file &#039;&#039;ipva.vmx&#039;&#039; requires a VMware proprietary configuration line that&#039;s not specifiable within an OVA-file. &lt;br /&gt;
&lt;br /&gt;
The IPVA utilizes a VMware proprietary mechanism for its internal timekeeping&amp;lt;ref&amp;gt;Timekeeping in Virtual Machines http://www.vmware.com/pdf/vmware_timekeeping.pdf&amp;lt;/ref&amp;gt;. That mechanism is only available after adding the following line to the configuration file &#039;&#039;ipva.vmx&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor_control.pseudo_perfctr = TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that line is not present, the hypervisor is going to throw a CPU exception. Hint: In vSphere a VMX-file can be edited under &#039;&#039;&#039;Edit Settings/Options/Advanced/General/Configuration Parameters&#039;&#039;&#039;&amp;lt;ref&amp;gt;vmware Labs - How to edit vmx file in ESXi vSphere: https://www.youtube.com/watch?v=ICICoq-maB0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
*The vmx file should be edited after the installation of the IPVA.&lt;br /&gt;
*The vmx file should NOT be edited with Text editor (use vSphere as shown above)&lt;br /&gt;
*To our knowledge, a converter is always necessary for the installation with vmx.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;Loading failed for image=IPVA    BIN&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:Ipva-fw-load-failed.png|center|thumb|200px|ipva-fw-load-failed.png/|ipva-fw-load-failed.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by a calculation fault within the boot-code. &lt;br /&gt;
*The solution requires a replacement of the boot disk hd-boot.vmdk. &lt;br /&gt;
**Download an IPVA package from on 11r2 sr22.&lt;br /&gt;
**Replace the 1st disk with the one from the downloaded package&lt;br /&gt;
&lt;br /&gt;
===Are Additional vCPUs useful?===&lt;br /&gt;
The Multi-Core functionality is an experimental functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Licenses|Reference15r1:Licenses]]&lt;br /&gt;
* [[Howto15r1:Implement_PBX_with_zero_downtime_using_IPVA_and_VMWare_Fault_Tolerance]]&lt;br /&gt;
* [[Howto:A_rough_estimate_of_IPVA_Performance]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept15r1|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80372</id>
		<title>Reference16r1:Concept Innovaphone Virtual Appliance (IPVA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80372"/>
		<updated>2026-08-24T11:14:39Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--ipva virtual virtuell va--&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to:&lt;br /&gt;
*V16r1&lt;br /&gt;
*innovaphone Virtual Appliance&lt;br /&gt;
*Intel/AMD CPUs&lt;br /&gt;
* Virtualization platforms&lt;br /&gt;
**VMware&lt;br /&gt;
*** Workstation&lt;br /&gt;
*** Player&lt;br /&gt;
*** vSphere 4 - 8&lt;br /&gt;
*** ESXi 6 - 8&lt;br /&gt;
**Microsoft Hyper-V ([[{{NAMESPACE}}:Concept IPVA On Hyper-V|Concept IPVA On Hyper-V]])&lt;br /&gt;
*** Windows 8.1&lt;br /&gt;
*** Windows 10&lt;br /&gt;
*** Windows Server 2012 R2&lt;br /&gt;
*** Windows Server 2016 CTP4&lt;br /&gt;
**Linux based Hypervisors with [https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM] and [https://en.wikipedia.org/wiki/QEMU QEMU] support&lt;br /&gt;
*** Proxmox VE 8.0 / 8.1 / 9.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer: Manufacturers/versions of VM platforms other than those specified here have not been tested, so use at your own risk.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer 2: We occasionally encounter customers experiencing unusual issues related to OpenStack. OpenStack is not officially supported, and such issues are not analyzed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
The innovaphone Virtual Appliance (IPVA) is a virtual machine to be run on a virtualization platform.&lt;br /&gt;
&lt;br /&gt;
The IPVA is a software-only solution. It appears and behaves like an innovaphone &amp;quot;hard-box&amp;quot; without physical resources such as hardware DSP or ISDN interface.&lt;br /&gt;
&lt;br /&gt;
==Package Overview==&lt;br /&gt;
We supply an OVF (&#039;&#039;&#039;O&#039;&#039;&#039;pen &#039;&#039;&#039;V&#039;&#039;&#039;irtualization &#039;&#039;&#039;F&#039;&#039;&#039;ormat) import or - depending on the virtualization platform - a suitable variant.&lt;br /&gt;
OVF is an open standard that contains several files in one package. The .ovf file is therefore an archive that contains all the necessary files.&lt;br /&gt;
&lt;br /&gt;
=== Sample VMware ===&lt;br /&gt;
;ipva-ovf.zip:&lt;br /&gt;
The compressed archive &#039;&#039;ipva-ovf.zip&#039;&#039; contains the file ipva.ova. A deployment of ipva.ova will result in a set of 5 files - the file names may differ from the following list:&lt;br /&gt;
*ipva.vmx: The virtual machine configuration file&lt;br /&gt;
*hd-boot.vmdk: The virtual boot disk on IDE 0:0&lt;br /&gt;
*hd-cf.vmdk: The disk for emulation of a Compact Flash card on IDE 0:1&lt;br /&gt;
*hd-flash.vmdk: The disk for emulation of flash memory on IDE 1:0&lt;br /&gt;
*hd-dump.vmdk: The disk serving as a store for a crash dump on IDE 1:1&lt;br /&gt;
&lt;br /&gt;
;ipva.bin:&lt;br /&gt;
The file &#039;&#039;ipva.bin&#039;&#039; is the firmware file, which is only needed for update purposes.&lt;br /&gt;
&lt;br /&gt;
== Virtualization platforms ==&lt;br /&gt;
&lt;br /&gt;
===VMware Player / VMware Workstation===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Copy the file ipva.ova to e.g. your desktop and Double-click on ipva.ova.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===VMware vSphere===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Import ipva.ova by means of &#039;&#039;&#039;File/Deploy OVF-Template...&#039;&#039;&#039; (de: &#039;&#039;&#039;Datei/OFV-Vorlage bereitstellen...&#039;&#039;&#039;) and follow instructions.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Microsoft Hyper-V===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
* Use the UI Wizard to Import a new machine&lt;br /&gt;
* Browse to the directory where the downloaded package was extracted to. Browse to the subdirectory Virtual Machines and click Ok&lt;br /&gt;
* Select &#039;&#039;Copy the Virtual Machine&#039;&#039; as &#039;&#039;Import Type&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Proxmox VE===&lt;br /&gt;
==== Settings ====&lt;br /&gt;
===== Hardware =====&lt;br /&gt;
* Processors: 1 socket, 1 core, Type &amp;quot;Host&amp;quot; preferred, fallback &amp;quot;x86-64-v2-AES&amp;quot;&lt;br /&gt;
* Bios: SeaBIOS&lt;br /&gt;
* Machine: i440fx&lt;br /&gt;
* SCSI Controller: VirtIO SCSI single&lt;br /&gt;
* Hard Disks&lt;br /&gt;
** Cache: No Cache&lt;br /&gt;
** Discard: Enable&lt;br /&gt;
** SSD emulation: Yes&lt;br /&gt;
** Async IO: io_uring&lt;br /&gt;
* Network Devices&lt;br /&gt;
** Model: VirtIO (paravirtualized)&lt;br /&gt;
===== Options =====&lt;br /&gt;
* OS Type: Other&lt;br /&gt;
* Boot Order: ide0, ide1, ide2, ide3&lt;br /&gt;
* QEMU Gust Agent: Disabled&lt;br /&gt;
&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
Import the &amp;quot;ova&amp;quot; file to your storage which is enabled for the type &amp;quot;import&amp;quot;. After that you can select the created template an create new machines from it with the button &amp;quot;Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Before you start up the VM in the UI you have to adjust the following configuration options:&lt;br /&gt;
** Hardware -&amp;gt; Processors: Adjust &amp;quot;Extra Cpu Flags&amp;quot; -&amp;gt; &amp;quot;aes&amp;quot; if required&lt;br /&gt;
** Hardware -&amp;gt; SCSI Controller: Change Model to &amp;quot;VirtIO SCSI Single&amp;quot;&lt;br /&gt;
** Hardware -&amp;gt; Network Device (net0 / net1): Change Model to &amp;quot;VirtIO (paravirtualized)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
===Network Configuration===&lt;br /&gt;
The IPVA is preconfigured a DHCP client. You will see the current IP-Address in the console-screen of the VM. If there&#039;s in no case a DHCP server available for the 1st-time configuration, you can set your IP-Configuration in the console.&lt;br /&gt;
&lt;br /&gt;
 config change IP0 ETH0 /addr 192.168.0.10 /mask 255.255.255.0&lt;br /&gt;
 config change IP0 RT0 /gateway 192.168.0.1&lt;br /&gt;
 config change DHCP0 /mode off&lt;br /&gt;
 config write&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
====MAC/serial number====&lt;br /&gt;
Take care that you use a MAC address which is supported by my.innovaphone, see [[Reference:My_Innovaphone#IPVA_MAC_exists]].&lt;br /&gt;
&lt;br /&gt;
===AES Hardware Acceleration===&lt;br /&gt;
It may be beneficial to activate hardware acceleration for AES operations.&lt;br /&gt;
Whether hardware acceleration is activated can be checked with the command &amp;lt;code&amp;gt;!mod cmd CPU cpu-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;flags&amp;quot; attribute must contain &amp;quot;aesni&amp;quot;&lt;br /&gt;
* The &amp;quot;act-features&amp;quot; attribute must contain &amp;quot;has_aesni&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;info&amp;gt;&lt;br /&gt;
   &amp;lt;cpu &lt;br /&gt;
     vendor=&amp;quot;GenuineIntel&amp;quot; &lt;br /&gt;
     signature=&amp;quot;0x906e9&amp;quot;&lt;br /&gt;
     brand=&amp;quot;Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz&amp;quot; &lt;br /&gt;
     ...     &lt;br /&gt;
     flags=&amp;quot;sse3 pclmulqdq ssse3 sse4_1 sse4_2 &amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;aesni&amp;lt;/span&amp;gt; xsave xsaveopt osxsave avx f16c rdrand fpu mmx fxsr sse sse2 avx2&amp;quot; &lt;br /&gt;
     act-features=&amp;quot;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;has_aesni&amp;lt;/span&amp;gt; has_avx has_vaesni has_vpclmulqdq&amp;quot; srtp-mips=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Large IPVA with 512 MiB Flash==&lt;br /&gt;
In some scenarios the standard 64 MiB flash memory is not enough to store all user data. It is possible to manually enlarge the flash memory of an IPVA up to 512 MiB.&lt;br /&gt;
&lt;br /&gt;
You have to change the settings of the virtual machine and format the flash. You cannot do it with an already configured machine, because you will lose all your configuration!&lt;br /&gt;
&lt;br /&gt;
# shutdown the IPVA&lt;br /&gt;
# increase the RAM to 3.072 MiB&lt;br /&gt;
# increase the size of &#039;&#039;&#039;IDE1:0&#039;&#039;&#039; to 512 MiB or recreate it&lt;br /&gt;
# power up the IPVA&lt;br /&gt;
# format the flash: &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 reset all&amp;lt;/code&amp;gt;&lt;br /&gt;
# reboot the IPVA: &amp;lt;code&amp;gt;!reset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the free space with the command &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 info&amp;lt;/code&amp;gt;. You will see a big amount of available segments&lt;br /&gt;
&lt;br /&gt;
 segments=675, segment-size=0x10000 (64k)&lt;br /&gt;
 LDAP - used 1k avail 63k owned 64k (segments 1) maximum 517056k (&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;segments 8079&amp;lt;/span&amp;gt;, configured 8079)&lt;br /&gt;
 VARS - used 23k avail 16k owned 192k (segments 3) maximum 640k (segments 10, configured 10)&lt;br /&gt;
&lt;br /&gt;
But please keep in mind, the more data is saved, the longer it takes to reboot and load the UI in the [[{{NAMESPACE}}:PBX/Objects|PBX/Objects]] area.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Support procedures are commonly identical to the ones known from innovaphones&#039; physical appliances. Except for:&lt;br /&gt;
*&#039;&#039;&#039;Post-Mortem Logs&#039;&#039;&#039; A post-mortem log must be retrieved by clicking on &#039;&#039;Maintenance/Diagnostics/Tracing/&#039;&#039;&#039;trace(crash-dump)&#039;&#039;&#039;&#039;&#039; (alternatively: http://a.b.c.d/crash_dump.txt).&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Maximal 3.072 MiB RAM ===&lt;br /&gt;
Because the IPVA has no [https://en.wikipedia.org/wiki/Virtual_memory virtual memory management], it will use only the first linear 3 GiB of RAM. But please keep in mind, that the flash content will be stored 3-times (Flashmanager, Flashdirectory, PBX) in RAM at startup.&lt;br /&gt;
=== Restored IPVA may not run ===&lt;br /&gt;
We have seen issues where an IPVA which had been backed up using one of the available backup tools for VMWare do not start up properly when they have been restored. &lt;br /&gt;
&lt;br /&gt;
We strongly suggest to not rely on VMWare backup mechanism but instead to use the standard innovaphone backup scheme (that is, save the configuration on a regular basis).&lt;br /&gt;
&lt;br /&gt;
==== How to run a restored backup that fails to start ====&lt;br /&gt;
Here is the procedure to run an IPVA from an IPVA if the restored virtual machine does not boot up properly:&lt;br /&gt;
&lt;br /&gt;
* restore the backed up V10 IPVA&lt;br /&gt;
* create a new, empty V11r1 IPVA (you will need this merely to copy the boot disk from)&lt;br /&gt;
*replace the boot disk of the failing V10 IPVA by the boot disk of the fresh V11r1 IPVA (see [[#How To Replace The Boot Disk On vSphere.3F| How To Replace The Boot Disk On vSphere]] for details)&lt;br /&gt;
* start the restored and fixed V10 IPVA (it should run fine now)&lt;br /&gt;
* downgrade this V10 IPVA to desired V10 firmware&lt;br /&gt;
* remove the fresh V11r1 IPVA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some Customer who are running Fw v12r1 (up to sr6) with ESXi 6.0 and VEEAM 9 reported that after a backup with VEEAM 9, the restored IPVA was not starting. &lt;br /&gt;
At this point, there is no possibility to solve this problem. The only workaround in that case is to delete the machine, reinstall a new one, and restore a configuration saved before.&lt;br /&gt;
&lt;br /&gt;
If you did not run into the problem yet, for prevention, we recommend to replace the Boot disk of your working IPVA.vmx with one of the IPVA.ova. Please follow the steps below (be aware that this will upgrade the firmware on the IPVA to 12r2, due to the fact that actually, IPVA.ova is only available from version 12r2):&lt;br /&gt;
&lt;br /&gt;
1. Remove the Boot disk of the virtual machine (vmx)(is normaly the first one).&amp;lt;br&amp;gt;&lt;br /&gt;
* Power off the VM&lt;br /&gt;
* Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Remove&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;OK&#039;&#039; to save your changes.&lt;br /&gt;
&lt;br /&gt;
2. Add the Boot disk of the ova virtual machine to the vmx one.&lt;br /&gt;
* Identify the size of the boot disk of the ova virtual machine (will be needed on the step when navigating to boot disk)&lt;br /&gt;
* On the powered off VM, Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Add&#039;&#039;.&lt;br /&gt;
* Select Use “an existing virtual disk” then click &#039;&#039;Next&#039;&#039;.&lt;br /&gt;
* Navigate to the boot disk of the ova Virtual machine then click &#039;&#039;next&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;Finish&#039;&#039;.&lt;br /&gt;
Now the vmx virtual machine should have the Fw version 12r2.&lt;br /&gt;
&lt;br /&gt;
The .ova version will be available also in V12r1 sr7&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on Citrix Cloud Platform ===&lt;br /&gt;
Reportedly, the Citrix cloud platform - although based on VMware - cannot run the IPVA.  Amongst other issues, the platform does not allow 4 virtual disks, which are required for the IPVA.&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on VCloud Air ===&lt;br /&gt;
VCloud Air apparently does not support the timekeeping mechanism required by the IPVA.&lt;br /&gt;
&lt;br /&gt;
[[User:Ckl|ckl]] 15:50, 30 November 2016 (CET) We have seen the IPVA v12r2 running on vCloud Air. Use the ova import.&lt;br /&gt;
&lt;br /&gt;
=== IPVA on ESX 6.5 ===&lt;br /&gt;
We have reports that the IPVA does not run properly on ESX 6.5.  The IPVA boots up properly but the clock does not run.  Running the .ova based variation available in v12r2 fixed the issue or edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Administration: Avoid &#039;reboot&#039; Command. Use &#039;reset&#039; Command ===&lt;br /&gt;
Alwas use the &#039;reset&#039; command to restart an IPVA. &lt;br /&gt;
The &#039;reboot&#039; command makes sense only on physical applicances, where its purpose is to deploy a new bootcode by means of a forced watchdog trap. The resulting post-reboot state will be as if an unsolicited trap/crash had occurred.&lt;br /&gt;
&lt;br /&gt;
=== Voice Quality Issues ===&lt;br /&gt;
When dealing with media streams (e.g. for announcements), the IPVA needs to fulfil real-time processing requirements, for example to process RTP packets in a timely fashion.  To do so, the IPVA relies on the capabilities of the virtualization platform it runs on. &lt;br /&gt;
&lt;br /&gt;
It is therefore important to configure the platform so that it supports real-time applications best. If you experience voice quality or latency issues, consider &lt;br /&gt;
* to make sure that all of the IPVAs memory is &#039;&#039;reserved&#039;&#039; to the IPVA (&#039;&#039;Latency Sensitivity&#039;&#039; set to &#039;&#039;High&#039;&#039;)&lt;br /&gt;
* to guarantee exclusive PCPU access&lt;br /&gt;
This helps to reduce CPU halt/wake-up states.&lt;br /&gt;
&lt;br /&gt;
===Additional vCPUs may cause problems===&lt;br /&gt;
The Multi-Core functionality of version 13r2 is a beta functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
===Can The emulated compact-flash disk size be increased?===&lt;br /&gt;
Yes, from within the &#039;&#039;Edit Virtual Machine&#039;&#039; dialog. Doing so just increases the size of the virtual harddisk. The emulated compact-flash must be formatted afterwards and accordingly to benefit from the increased size. That step can be administrated from &#039;&#039;Administration/Compact Flash/Format&#039;&#039;. Note: A recommendation for an upper size limit is not given. Please note: The compact-flash disk is not the flash which store LDAP and VARS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vSphere / vSphere Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. At first backup all of your files from CF card&amp;lt;br&amp;gt;&lt;br /&gt;
2. Shutdown the corresponding IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
3. Choose &amp;quot;Properties&amp;quot; of the IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
4. Delete &amp;quot;Harddrive 2&amp;quot; (Hardrive file xxx/xxx_1.vmdk)&amp;lt;br&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 hd-boot.vmdk  &amp;gt; xxx.vmdk&lt;br /&gt;
 hd-cf.vmdk    &amp;gt; xxx_1.vmdk&lt;br /&gt;
 hd-flash.vmdk &amp;gt; xxx_2.vmdk&lt;br /&gt;
 hd-dump.vmdk  &amp;gt; xxx_3.vmdk&lt;br /&gt;
&lt;br /&gt;
5. Create new harddrive&amp;lt;br&amp;gt;&lt;br /&gt;
6. Configure the required size&amp;lt;br&amp;gt;&lt;br /&gt;
7. As &amp;quot;Node of virtual device&amp;quot; select &amp;quot;IDE(0:1)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
8. Start the IPVA.&amp;lt;br&amp;gt;&lt;br /&gt;
9. &amp;quot;Format&amp;quot; the CF Card and &amp;quot;mount&amp;quot; it (General/Compact-Flash/General)&lt;br /&gt;
===What Is the minimum size of the emulated flash storage?===&lt;br /&gt;
The VMDK-File hd-flash.vmdk is allocated with 100 MB, because VMWare can not handle smaller virtual disks.&lt;br /&gt;
&lt;br /&gt;
===What Is The Size Of the Flash Directory on the IPVA?===&lt;br /&gt;
As noted above, the virtual flash memory on the IPVA is defaulted to a size of 64MB. Most of the flash is used by the &#039;&#039;flash directory&#039;&#039; (FLASHDIR0) which amongst other things provides storage for PBX objects.&lt;br /&gt;
&lt;br /&gt;
The size of the flash directory depends on the available RAM. The maximum of 900 segments á 64KB, i.e. ~56MB, is available if 192MB or more RAM is available. If less RAM is available, the size of the flash directory is decreased accordingly.  For this reason, it is unsafe to reduce RAM size in a given IPVA, as the flash directory size may be decreased so that objects from the flash directory get lost.&lt;br /&gt;
&lt;br /&gt;
The easiest method to see how much flash directory space is available is to investigate the boot trace. For the standard configuration of 64MB the respective trace output is going to look as follows and informs about a size of 14MB:&lt;br /&gt;
 &lt;br /&gt;
 0:0000:081:4 - start flashdir FLASHDIR0&lt;br /&gt;
 0:0000:081:4 - fdir: segments=901-&amp;gt;224(14.0MB)&lt;br /&gt;
&lt;br /&gt;
{{Limit_Virtual_IPVA_Flash}}&lt;br /&gt;
&lt;br /&gt;
===How much RAM is required per IPVA instance?===&lt;br /&gt;
Since 12r2sr27/13r1sr5 the downloadable virtual appliance comes preconfigured with 256 MiB RAM. This amount is seen as a good trade-off for the majority of all installations. The IPVA need the amount of used flash 3-times at startup. The RAM-size can be administrated by VMware-means.&lt;br /&gt;
&lt;br /&gt;
===What is the maximum amount of RAM?===&lt;br /&gt;
The maximum meaningful RAM setting is 3GB. Memory space beyond that limit will be left unused. Assigning more than 3GB to an IPVA instance doesn&#039;t provide any benefit.&lt;br /&gt;
&lt;br /&gt;
===Why does &#039;&#039;General/Info/DRAM&#039;&#039; show less than the configured memory?===&lt;br /&gt;
Not all of the configured memory is available to the IPVA. E.g. a bit of memory is occupied by the VMM&amp;lt;ref&amp;gt;Virtual Machine Monitor: A component belonging to the virtualization platform&amp;lt;/ref&amp;gt;. The indicator &#039;&#039;General/Info/DRAM&#039;&#039; displays the memory available to the IPVA and is truncated down to a whole number. A boot-trace reveals a bit more about IPVA-available memory as shown in the following excerpt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
0:0000:030:4 - Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz&lt;br /&gt;
0:0000:030:4 - mem(64946176)=61.93MB ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What about Open VM Tools / VMware Tools?===&lt;br /&gt;
Tools like this are not supported / integrated because it is not needed. The Virtual Appliance provides his own operating system, and we don&#039;t need any of the VM-Tools features in our guest.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of A Checksum Boot Error?===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
checksum wrong! Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-crc-wrong.jpg|center|thumb|200px|ipva-crc-wrong.jpg/|ipva-crc-wrong.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Replace the boot harddisk by a fresh one. The boot harddisk is the 1st hd(originally named &#039;&#039;hd-boot.vmdk&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur on a system crash while a firmware update is taking place.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;NIC unavailable!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NIC unavailable!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-nic-unavailable.jpg|center|thumb|200px|ipva-nic-unavailable.jpg/|ipva-nic-unavailable.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Administrate by VMware means: Ensure the correct/expected type of network interface controller(NIC) is going to be offered by the hypervisor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IPVA offers driver support for:&lt;br /&gt;
*AMD NIC: Am79C970A PCnet-PCI II Single-Chip Full-Duplex Ethernet Controller&lt;br /&gt;
**a.k.a &#039;&#039;PCNet32&#039;&#039;&lt;br /&gt;
**a.k.a &#039;&#039;Vlance&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The AMD-NIC is kind of default. However, the NIC type may be overriden manually and accordingly within the configuration file ipva.vmx as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ethernet0.virtualDev = &amp;quot;vlance&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur after a VMware re-configuration of the network settings.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perfcounter-not enabled!!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:screenshot-ipva-perfcounter-nok.jpg|center|thumb|200px|screenshot-ipva-perfcounter-nok.jpg/|screenshot-ipva-perfcounter-nok.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by an OVA-import of the IPVA. The appliance&#039;s configuration file &#039;&#039;ipva.vmx&#039;&#039; requires a VMware proprietary configuration line that&#039;s not specifiable within an OVA-file. &lt;br /&gt;
&lt;br /&gt;
The IPVA utilizes a VMware proprietary mechanism for its internal timekeeping&amp;lt;ref&amp;gt;Timekeeping in Virtual Machines http://www.vmware.com/pdf/vmware_timekeeping.pdf&amp;lt;/ref&amp;gt;. That mechanism is only available after adding the following line to the configuration file &#039;&#039;ipva.vmx&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor_control.pseudo_perfctr = TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that line is not present, the hypervisor is going to throw a CPU exception. Hint: In vSphere a VMX-file can be edited under &#039;&#039;&#039;Edit Settings/Options/Advanced/General/Configuration Parameters&#039;&#039;&#039;&amp;lt;ref&amp;gt;vmware Labs - How to edit vmx file in ESXi vSphere: https://www.youtube.com/watch?v=ICICoq-maB0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
*The vmx file should be edited after the installation of the IPVA.&lt;br /&gt;
*The vmx file should NOT be edited with Text editor (use vSphere as shown above)&lt;br /&gt;
*To our knowledge, a converter is always necessary for the installation with vmx.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;Loading failed for image=IPVA    BIN&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:Ipva-fw-load-failed.png|center|thumb|200px|ipva-fw-load-failed.png/|ipva-fw-load-failed.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by a calculation fault within the boot-code. &lt;br /&gt;
*The solution requires a replacement of the boot disk hd-boot.vmdk. &lt;br /&gt;
**Download an IPVA package from on 11r2 sr22.&lt;br /&gt;
**Replace the 1st disk with the one from the downloaded package&lt;br /&gt;
&lt;br /&gt;
===Are Additional vCPUs useful?===&lt;br /&gt;
The Multi-Core functionality is an experimental functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Licenses|Reference15r1:Licenses]]&lt;br /&gt;
* [[Howto15r1:Implement_PBX_with_zero_downtime_using_IPVA_and_VMWare_Fault_Tolerance]]&lt;br /&gt;
* [[Howto:A_rough_estimate_of_IPVA_Performance]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept15r1|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80371</id>
		<title>Reference16r1:Concept Innovaphone Virtual Appliance (IPVA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)&amp;diff=80371"/>
		<updated>2026-08-24T11:13:05Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--ipva virtual virtuell va--&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to:&lt;br /&gt;
*V16r1&lt;br /&gt;
*innovaphone Virtual Appliance&lt;br /&gt;
*Intel/AMD CPUs&lt;br /&gt;
* Virtualization platforms&lt;br /&gt;
**VMware&lt;br /&gt;
*** Workstation&lt;br /&gt;
*** Player&lt;br /&gt;
*** vSphere 4 - 8&lt;br /&gt;
*** ESXi 6 - 8&lt;br /&gt;
**Microsoft Hyper-V ([[{{NAMESPACE}}:Concept IPVA On Hyper-V|Concept IPVA On Hyper-V]])&lt;br /&gt;
*** Windows 8.1&lt;br /&gt;
*** Windows 10&lt;br /&gt;
*** Windows Server 2012 R2&lt;br /&gt;
*** Windows Server 2016 CTP4&lt;br /&gt;
**Linux based Hypervisors with [https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM] and [https://en.wikipedia.org/wiki/QEMU QEMU] support&lt;br /&gt;
*** Proxmox VE 8.0 / 8.1 / 9.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer: Manufacturers/versions of VM platforms other than those specified here have not been tested, so use at your own risk.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Disclaimer 2: We occasionally encounter customers experiencing unusual issues related to OpenStack. OpenStack is not officially supported, and such issues are not analyzed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
The innovaphone Virtual Appliance (IPVA) is a virtual machine to be run on a virtualization platform.&lt;br /&gt;
&lt;br /&gt;
The IPVA is a software-only solution. It appears and behaves like an innovaphone &amp;quot;hard-box&amp;quot; without physical resources such as hardware DSP or ISDN interface.&lt;br /&gt;
&lt;br /&gt;
==Package Overview==&lt;br /&gt;
We supply an OVF (&#039;&#039;&#039;O&#039;&#039;&#039;pen &#039;&#039;&#039;V&#039;&#039;&#039;irtualization &#039;&#039;&#039;F&#039;&#039;&#039;ormat) import or - depending on the virtualization platform - a suitable variant.&lt;br /&gt;
OVF is an open standard that contains several files in one package. The .ovf file is therefore an archive that contains all the necessary files.&lt;br /&gt;
&lt;br /&gt;
=== Sample VMware ===&lt;br /&gt;
;ipva-ovf.zip:&lt;br /&gt;
The compressed archive &#039;&#039;ipva-ovf.zip&#039;&#039; contains the file ipva.ova. A deployment of ipva.ova will result in a set of 5 files - the file names may differ from the following list:&lt;br /&gt;
*ipva.vmx: The virtual machine configuration file&lt;br /&gt;
*hd-boot.vmdk: The virtual boot disk on IDE 0:0&lt;br /&gt;
*hd-cf.vmdk: The disk for emulation of a Compact Flash card on IDE 0:1&lt;br /&gt;
*hd-flash.vmdk: The disk for emulation of flash memory on IDE 1:0&lt;br /&gt;
*hd-dump.vmdk: The disk serving as a store for a crash dump on IDE 1:1&lt;br /&gt;
&lt;br /&gt;
;ipva.bin:&lt;br /&gt;
The file &#039;&#039;ipva.bin&#039;&#039; is the firmware file, which is only needed for update purposes.&lt;br /&gt;
&lt;br /&gt;
== Virtualization platforms ==&lt;br /&gt;
&lt;br /&gt;
===VMware Player / VMware Workstation===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Copy the file ipva.ova to e.g. your desktop and Double-click on ipva.ova.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===VMware vSphere===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
*Import ipva.ova by means of &#039;&#039;&#039;File/Deploy OVF-Template...&#039;&#039;&#039; (de: &#039;&#039;&#039;Datei/OFV-Vorlage bereitstellen...&#039;&#039;&#039;) and follow instructions.&lt;br /&gt;
*Edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
===Microsoft Hyper-V===&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
* Use the UI Wizard to Import a new machine&lt;br /&gt;
* Browse to the directory where the downloaded package was extracted to. Browse to the subdirectory Virtual Machines and click Ok&lt;br /&gt;
* Select &#039;&#039;Copy the Virtual Machine&#039;&#039; as &#039;&#039;Import Type&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Proxmox VE===&lt;br /&gt;
==== Settings ====&lt;br /&gt;
===== Hardware =====&lt;br /&gt;
* Processors: 1 socket, 1 core, Type &amp;quot;Host&amp;quot; preferred, fallback &amp;quot;x86-64-v2-AES&amp;quot;&lt;br /&gt;
* Bios: SeaBIOS&lt;br /&gt;
* Machine: i440fx&lt;br /&gt;
* SCSI Controller: VirtIO SCSI single&lt;br /&gt;
* Hard Disks&lt;br /&gt;
** Cache: No Cache&lt;br /&gt;
** Discard: Enable&lt;br /&gt;
** SSD emulation: Yes&lt;br /&gt;
** Async IO: io_uring&lt;br /&gt;
* Network Devices&lt;br /&gt;
** Model: VirtIO (paravirtualized)&lt;br /&gt;
&lt;br /&gt;
==== Import new Machine ====&lt;br /&gt;
Import the &amp;quot;ova&amp;quot; file to your storage which is enabled for the type &amp;quot;import&amp;quot;. After that you can select the created template an create new machines from it with the button &amp;quot;Import&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Before you start up the VM in the UI you have to adjust the following configuration options:&lt;br /&gt;
** Hardware -&amp;gt; Processors: Adjust &amp;quot;Extra Cpu Flags&amp;quot; -&amp;gt; &amp;quot;aes&amp;quot; if required&lt;br /&gt;
** Hardware -&amp;gt; SCSI Controller: Change Model to &amp;quot;VirtIO SCSI Single&amp;quot;&lt;br /&gt;
** Hardware -&amp;gt; Network Device (net0 / net1): Change Model to &amp;quot;VirtIO (paravirtualized)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
===Network Configuration===&lt;br /&gt;
The IPVA is preconfigured a DHCP client. You will see the current IP-Address in the console-screen of the VM. If there&#039;s in no case a DHCP server available for the 1st-time configuration, you can set your IP-Configuration in the console.&lt;br /&gt;
&lt;br /&gt;
 config change IP0 ETH0 /addr 192.168.0.10 /mask 255.255.255.0&lt;br /&gt;
 config change IP0 RT0 /gateway 192.168.0.1&lt;br /&gt;
 config change DHCP0 /mode off&lt;br /&gt;
 config write&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
====MAC/serial number====&lt;br /&gt;
Take care that you use a MAC address which is supported by my.innovaphone, see [[Reference:My_Innovaphone#IPVA_MAC_exists]].&lt;br /&gt;
&lt;br /&gt;
===AES Hardware Acceleration===&lt;br /&gt;
It may be beneficial to activate hardware acceleration for AES operations.&lt;br /&gt;
Whether hardware acceleration is activated can be checked with the command &amp;lt;code&amp;gt;!mod cmd CPU cpu-info&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;flags&amp;quot; attribute must contain &amp;quot;aesni&amp;quot;&lt;br /&gt;
* The &amp;quot;act-features&amp;quot; attribute must contain &amp;quot;has_aesni&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;info&amp;gt;&lt;br /&gt;
   &amp;lt;cpu &lt;br /&gt;
     vendor=&amp;quot;GenuineIntel&amp;quot; &lt;br /&gt;
     signature=&amp;quot;0x906e9&amp;quot;&lt;br /&gt;
     brand=&amp;quot;Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz&amp;quot; &lt;br /&gt;
     ...     &lt;br /&gt;
     flags=&amp;quot;sse3 pclmulqdq ssse3 sse4_1 sse4_2 &amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;aesni&amp;lt;/span&amp;gt; xsave xsaveopt osxsave avx f16c rdrand fpu mmx fxsr sse sse2 avx2&amp;quot; &lt;br /&gt;
     act-features=&amp;quot;&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;has_aesni&amp;lt;/span&amp;gt; has_avx has_vaesni has_vpclmulqdq&amp;quot; srtp-mips=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/info&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Large IPVA with 512 MiB Flash==&lt;br /&gt;
In some scenarios the standard 64 MiB flash memory is not enough to store all user data. It is possible to manually enlarge the flash memory of an IPVA up to 512 MiB.&lt;br /&gt;
&lt;br /&gt;
You have to change the settings of the virtual machine and format the flash. You cannot do it with an already configured machine, because you will lose all your configuration!&lt;br /&gt;
&lt;br /&gt;
# shutdown the IPVA&lt;br /&gt;
# increase the RAM to 3.072 MiB&lt;br /&gt;
# increase the size of &#039;&#039;&#039;IDE1:0&#039;&#039;&#039; to 512 MiB or recreate it&lt;br /&gt;
# power up the IPVA&lt;br /&gt;
# format the flash: &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 reset all&amp;lt;/code&amp;gt;&lt;br /&gt;
# reboot the IPVA: &amp;lt;code&amp;gt;!reset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check the free space with the command &amp;lt;code&amp;gt;!mod cmd FLASHMAN0 info&amp;lt;/code&amp;gt;. You will see a big amount of available segments&lt;br /&gt;
&lt;br /&gt;
 segments=675, segment-size=0x10000 (64k)&lt;br /&gt;
 LDAP - used 1k avail 63k owned 64k (segments 1) maximum 517056k (&amp;lt;span style=&amp;quot;background-color: yellow&amp;quot;&amp;gt;segments 8079&amp;lt;/span&amp;gt;, configured 8079)&lt;br /&gt;
 VARS - used 23k avail 16k owned 192k (segments 3) maximum 640k (segments 10, configured 10)&lt;br /&gt;
&lt;br /&gt;
But please keep in mind, the more data is saved, the longer it takes to reboot and load the UI in the [[{{NAMESPACE}}:PBX/Objects|PBX/Objects]] area.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Support procedures are commonly identical to the ones known from innovaphones&#039; physical appliances. Except for:&lt;br /&gt;
*&#039;&#039;&#039;Post-Mortem Logs&#039;&#039;&#039; A post-mortem log must be retrieved by clicking on &#039;&#039;Maintenance/Diagnostics/Tracing/&#039;&#039;&#039;trace(crash-dump)&#039;&#039;&#039;&#039;&#039; (alternatively: http://a.b.c.d/crash_dump.txt).&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
=== Maximal 3.072 MiB RAM ===&lt;br /&gt;
Because the IPVA has no [https://en.wikipedia.org/wiki/Virtual_memory virtual memory management], it will use only the first linear 3 GiB of RAM. But please keep in mind, that the flash content will be stored 3-times (Flashmanager, Flashdirectory, PBX) in RAM at startup.&lt;br /&gt;
=== Restored IPVA may not run ===&lt;br /&gt;
We have seen issues where an IPVA which had been backed up using one of the available backup tools for VMWare do not start up properly when they have been restored. &lt;br /&gt;
&lt;br /&gt;
We strongly suggest to not rely on VMWare backup mechanism but instead to use the standard innovaphone backup scheme (that is, save the configuration on a regular basis).&lt;br /&gt;
&lt;br /&gt;
==== How to run a restored backup that fails to start ====&lt;br /&gt;
Here is the procedure to run an IPVA from an IPVA if the restored virtual machine does not boot up properly:&lt;br /&gt;
&lt;br /&gt;
* restore the backed up V10 IPVA&lt;br /&gt;
* create a new, empty V11r1 IPVA (you will need this merely to copy the boot disk from)&lt;br /&gt;
*replace the boot disk of the failing V10 IPVA by the boot disk of the fresh V11r1 IPVA (see [[#How To Replace The Boot Disk On vSphere.3F| How To Replace The Boot Disk On vSphere]] for details)&lt;br /&gt;
* start the restored and fixed V10 IPVA (it should run fine now)&lt;br /&gt;
* downgrade this V10 IPVA to desired V10 firmware&lt;br /&gt;
* remove the fresh V11r1 IPVA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some Customer who are running Fw v12r1 (up to sr6) with ESXi 6.0 and VEEAM 9 reported that after a backup with VEEAM 9, the restored IPVA was not starting. &lt;br /&gt;
At this point, there is no possibility to solve this problem. The only workaround in that case is to delete the machine, reinstall a new one, and restore a configuration saved before.&lt;br /&gt;
&lt;br /&gt;
If you did not run into the problem yet, for prevention, we recommend to replace the Boot disk of your working IPVA.vmx with one of the IPVA.ova. Please follow the steps below (be aware that this will upgrade the firmware on the IPVA to 12r2, due to the fact that actually, IPVA.ova is only available from version 12r2):&lt;br /&gt;
&lt;br /&gt;
1. Remove the Boot disk of the virtual machine (vmx)(is normaly the first one).&amp;lt;br&amp;gt;&lt;br /&gt;
* Power off the VM&lt;br /&gt;
* Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Remove&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;OK&#039;&#039; to save your changes.&lt;br /&gt;
&lt;br /&gt;
2. Add the Boot disk of the ova virtual machine to the vmx one.&lt;br /&gt;
* Identify the size of the boot disk of the ova virtual machine (will be needed on the step when navigating to boot disk)&lt;br /&gt;
* On the powered off VM, Select the Virtual Machine &amp;gt; Settings.&lt;br /&gt;
* On the Hardware tab, select the virtual hard disk and click &#039;&#039;Add&#039;&#039;.&lt;br /&gt;
* Select Use “an existing virtual disk” then click &#039;&#039;Next&#039;&#039;.&lt;br /&gt;
* Navigate to the boot disk of the ova Virtual machine then click &#039;&#039;next&#039;&#039;.&lt;br /&gt;
* Click &#039;&#039;Finish&#039;&#039;.&lt;br /&gt;
Now the vmx virtual machine should have the Fw version 12r2.&lt;br /&gt;
&lt;br /&gt;
The .ova version will be available also in V12r1 sr7&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on Citrix Cloud Platform ===&lt;br /&gt;
Reportedly, the Citrix cloud platform - although based on VMware - cannot run the IPVA.  Amongst other issues, the platform does not allow 4 virtual disks, which are required for the IPVA.&lt;br /&gt;
&lt;br /&gt;
=== IPVA does not run on VCloud Air ===&lt;br /&gt;
VCloud Air apparently does not support the timekeeping mechanism required by the IPVA.&lt;br /&gt;
&lt;br /&gt;
[[User:Ckl|ckl]] 15:50, 30 November 2016 (CET) We have seen the IPVA v12r2 running on vCloud Air. Use the ova import.&lt;br /&gt;
&lt;br /&gt;
=== IPVA on ESX 6.5 ===&lt;br /&gt;
We have reports that the IPVA does not run properly on ESX 6.5.  The IPVA boots up properly but the clock does not run.  Running the .ova based variation available in v12r2 fixed the issue or edit the file ipva.vmx according to [[#What Can I Do In Case Of Boot-Problem: perf-counter not enabled.21| What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
=== Administration: Avoid &#039;reboot&#039; Command. Use &#039;reset&#039; Command ===&lt;br /&gt;
Alwas use the &#039;reset&#039; command to restart an IPVA. &lt;br /&gt;
The &#039;reboot&#039; command makes sense only on physical applicances, where its purpose is to deploy a new bootcode by means of a forced watchdog trap. The resulting post-reboot state will be as if an unsolicited trap/crash had occurred.&lt;br /&gt;
&lt;br /&gt;
=== Voice Quality Issues ===&lt;br /&gt;
When dealing with media streams (e.g. for announcements), the IPVA needs to fulfil real-time processing requirements, for example to process RTP packets in a timely fashion.  To do so, the IPVA relies on the capabilities of the virtualization platform it runs on. &lt;br /&gt;
&lt;br /&gt;
It is therefore important to configure the platform so that it supports real-time applications best. If you experience voice quality or latency issues, consider &lt;br /&gt;
* to make sure that all of the IPVAs memory is &#039;&#039;reserved&#039;&#039; to the IPVA (&#039;&#039;Latency Sensitivity&#039;&#039; set to &#039;&#039;High&#039;&#039;)&lt;br /&gt;
* to guarantee exclusive PCPU access&lt;br /&gt;
This helps to reduce CPU halt/wake-up states.&lt;br /&gt;
&lt;br /&gt;
===Additional vCPUs may cause problems===&lt;br /&gt;
The Multi-Core functionality of version 13r2 is a beta functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
===Can The emulated compact-flash disk size be increased?===&lt;br /&gt;
Yes, from within the &#039;&#039;Edit Virtual Machine&#039;&#039; dialog. Doing so just increases the size of the virtual harddisk. The emulated compact-flash must be formatted afterwards and accordingly to benefit from the increased size. That step can be administrated from &#039;&#039;Administration/Compact Flash/Format&#039;&#039;. Note: A recommendation for an upper size limit is not given. Please note: The compact-flash disk is not the flash which store LDAP and VARS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vSphere / vSphere Client&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. At first backup all of your files from CF card&amp;lt;br&amp;gt;&lt;br /&gt;
2. Shutdown the corresponding IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
3. Choose &amp;quot;Properties&amp;quot; of the IPVA&amp;lt;br&amp;gt;&lt;br /&gt;
4. Delete &amp;quot;Harddrive 2&amp;quot; (Hardrive file xxx/xxx_1.vmdk)&amp;lt;br&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
 hd-boot.vmdk  &amp;gt; xxx.vmdk&lt;br /&gt;
 hd-cf.vmdk    &amp;gt; xxx_1.vmdk&lt;br /&gt;
 hd-flash.vmdk &amp;gt; xxx_2.vmdk&lt;br /&gt;
 hd-dump.vmdk  &amp;gt; xxx_3.vmdk&lt;br /&gt;
&lt;br /&gt;
5. Create new harddrive&amp;lt;br&amp;gt;&lt;br /&gt;
6. Configure the required size&amp;lt;br&amp;gt;&lt;br /&gt;
7. As &amp;quot;Node of virtual device&amp;quot; select &amp;quot;IDE(0:1)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
8. Start the IPVA.&amp;lt;br&amp;gt;&lt;br /&gt;
9. &amp;quot;Format&amp;quot; the CF Card and &amp;quot;mount&amp;quot; it (General/Compact-Flash/General)&lt;br /&gt;
===What Is the minimum size of the emulated flash storage?===&lt;br /&gt;
The VMDK-File hd-flash.vmdk is allocated with 100 MB, because VMWare can not handle smaller virtual disks.&lt;br /&gt;
&lt;br /&gt;
===What Is The Size Of the Flash Directory on the IPVA?===&lt;br /&gt;
As noted above, the virtual flash memory on the IPVA is defaulted to a size of 64MB. Most of the flash is used by the &#039;&#039;flash directory&#039;&#039; (FLASHDIR0) which amongst other things provides storage for PBX objects.&lt;br /&gt;
&lt;br /&gt;
The size of the flash directory depends on the available RAM. The maximum of 900 segments á 64KB, i.e. ~56MB, is available if 192MB or more RAM is available. If less RAM is available, the size of the flash directory is decreased accordingly.  For this reason, it is unsafe to reduce RAM size in a given IPVA, as the flash directory size may be decreased so that objects from the flash directory get lost.&lt;br /&gt;
&lt;br /&gt;
The easiest method to see how much flash directory space is available is to investigate the boot trace. For the standard configuration of 64MB the respective trace output is going to look as follows and informs about a size of 14MB:&lt;br /&gt;
 &lt;br /&gt;
 0:0000:081:4 - start flashdir FLASHDIR0&lt;br /&gt;
 0:0000:081:4 - fdir: segments=901-&amp;gt;224(14.0MB)&lt;br /&gt;
&lt;br /&gt;
{{Limit_Virtual_IPVA_Flash}}&lt;br /&gt;
&lt;br /&gt;
===How much RAM is required per IPVA instance?===&lt;br /&gt;
Since 12r2sr27/13r1sr5 the downloadable virtual appliance comes preconfigured with 256 MiB RAM. This amount is seen as a good trade-off for the majority of all installations. The IPVA need the amount of used flash 3-times at startup. The RAM-size can be administrated by VMware-means.&lt;br /&gt;
&lt;br /&gt;
===What is the maximum amount of RAM?===&lt;br /&gt;
The maximum meaningful RAM setting is 3GB. Memory space beyond that limit will be left unused. Assigning more than 3GB to an IPVA instance doesn&#039;t provide any benefit.&lt;br /&gt;
&lt;br /&gt;
===Why does &#039;&#039;General/Info/DRAM&#039;&#039; show less than the configured memory?===&lt;br /&gt;
Not all of the configured memory is available to the IPVA. E.g. a bit of memory is occupied by the VMM&amp;lt;ref&amp;gt;Virtual Machine Monitor: A component belonging to the virtualization platform&amp;lt;/ref&amp;gt;. The indicator &#039;&#039;General/Info/DRAM&#039;&#039; displays the memory available to the IPVA and is truncated down to a whole number. A boot-trace reveals a bit more about IPVA-available memory as shown in the following excerpt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
0:0000:030:4 - Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz&lt;br /&gt;
0:0000:030:4 - mem(64946176)=61.93MB ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What about Open VM Tools / VMware Tools?===&lt;br /&gt;
Tools like this are not supported / integrated because it is not needed. The Virtual Appliance provides his own operating system, and we don&#039;t need any of the VM-Tools features in our guest.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of A Checksum Boot Error?===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
checksum wrong! Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-crc-wrong.jpg|center|thumb|200px|ipva-crc-wrong.jpg/|ipva-crc-wrong.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Replace the boot harddisk by a fresh one. The boot harddisk is the 1st hd(originally named &#039;&#039;hd-boot.vmdk&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur on a system crash while a firmware update is taking place.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;NIC unavailable!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NIC unavailable!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:ipva-nic-unavailable.jpg|center|thumb|200px|ipva-nic-unavailable.jpg/|ipva-nic-unavailable.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
*Power-off the IPVA&lt;br /&gt;
*Administrate by VMware means: Ensure the correct/expected type of network interface controller(NIC) is going to be offered by the hypervisor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IPVA offers driver support for:&lt;br /&gt;
*AMD NIC: Am79C970A PCnet-PCI II Single-Chip Full-Duplex Ethernet Controller&lt;br /&gt;
**a.k.a &#039;&#039;PCNet32&#039;&#039;&lt;br /&gt;
**a.k.a &#039;&#039;Vlance&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The AMD-NIC is kind of default. However, the NIC type may be overriden manually and accordingly within the configuration file ipva.vmx as follows&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ethernet0.virtualDev = &amp;quot;vlance&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This problem may occur after a VMware re-configuration of the network settings.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;perf-counter not enabled!&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
perfcounter-not enabled!!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:screenshot-ipva-perfcounter-nok.jpg|center|thumb|200px|screenshot-ipva-perfcounter-nok.jpg/|screenshot-ipva-perfcounter-nok.jpg/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by an OVA-import of the IPVA. The appliance&#039;s configuration file &#039;&#039;ipva.vmx&#039;&#039; requires a VMware proprietary configuration line that&#039;s not specifiable within an OVA-file. &lt;br /&gt;
&lt;br /&gt;
The IPVA utilizes a VMware proprietary mechanism for its internal timekeeping&amp;lt;ref&amp;gt;Timekeeping in Virtual Machines http://www.vmware.com/pdf/vmware_timekeeping.pdf&amp;lt;/ref&amp;gt;. That mechanism is only available after adding the following line to the configuration file &#039;&#039;ipva.vmx&#039;&#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
monitor_control.pseudo_perfctr = TRUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If that line is not present, the hypervisor is going to throw a CPU exception. Hint: In vSphere a VMX-file can be edited under &#039;&#039;&#039;Edit Settings/Options/Advanced/General/Configuration Parameters&#039;&#039;&#039;&amp;lt;ref&amp;gt;vmware Labs - How to edit vmx file in ESXi vSphere: https://www.youtube.com/watch?v=ICICoq-maB0&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;&lt;br /&gt;
*The vmx file should be edited after the installation of the IPVA.&lt;br /&gt;
*The vmx file should NOT be edited with Text editor (use vSphere as shown above)&lt;br /&gt;
*To our knowledge, a converter is always necessary for the installation with vmx.&lt;br /&gt;
&lt;br /&gt;
===What Can I Do In Case Of Boot-Problem: &#039;&#039;Loading failed for image=IPVA    BIN&#039;&#039;===&lt;br /&gt;
This paragraph applies, if you experience the following start-up problem.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Symptom&#039;&#039;&#039;&lt;br /&gt;
*the IPVA doesn&#039;t start properly&lt;br /&gt;
*the console displays&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Loading failed for image=IPVA    BIN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Image:Ipva-fw-load-failed.png|center|thumb|200px|ipva-fw-load-failed.png/|ipva-fw-load-failed.png/]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
This problem is likely caused by a calculation fault within the boot-code. &lt;br /&gt;
*The solution requires a replacement of the boot disk hd-boot.vmdk. &lt;br /&gt;
**Download an IPVA package from on 11r2 sr22.&lt;br /&gt;
**Replace the 1st disk with the one from the downloaded package&lt;br /&gt;
&lt;br /&gt;
===Are Additional vCPUs useful?===&lt;br /&gt;
The Multi-Core functionality is an experimental functionality. Additional virtual CPUs(vCPUs) should not be utilized in production environments.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Licenses|Reference15r1:Licenses]]&lt;br /&gt;
* [[Howto15r1:Implement_PBX_with_zero_downtime_using_IPVA_and_VMWare_Fault_Tolerance]]&lt;br /&gt;
* [[Howto:A_rough_estimate_of_IPVA_Performance]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept15r1|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Services/NTP&amp;diff=80356</id>
		<title>Reference16r1:Services/NTP</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Services/NTP&amp;diff=80356"/>
		<updated>2026-08-14T12:03:37Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The device can synchronize its internal date/time to an NTP server using the SNTP protocol. Without synchronization to an NTP server the internal date/time is reset to Januar 1st, 1970 0:00 after each restart.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
| The IP-Address or DNS-Name of the time server&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Interval [min]:&#039;&#039;&#039;&lt;br /&gt;
|The time interval (in minutes) at which the device tries to synchronise with the time server&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Timezone&#039;&#039;&#039;&lt;br /&gt;
|Select the time zone in which the device is located.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;String&#039;&#039;&#039;&lt;br /&gt;
|If the timezone to be used is not one of the predefined timezones, it can be confugured with a string in accordance with the IEEE POSIX standard&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Current Server&#039;&#039;&#039;&lt;br /&gt;
|Displays the current used NTP Server.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Last sync&#039;&#039;&#039;&lt;br /&gt;
|Displays the data and time of the last synchronisation.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Default Time&#039;&#039;&#039;&lt;br /&gt;
|Default time in UTC on startup that shall be used if no NTP Server is available. The Format is &#039;&#039;dd.mm.yyyy-hh:mm&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timezone Configuration String ==&lt;br /&gt;
&lt;br /&gt;
Time services always provide the coordinated world time UTC (Universal Time Coordinated), which corresponds to GMT (Greenwich Mean Time), not however the correct time zone and summer time. It is therefore possible to specify the time difference between the time zone and the world time in the String field. The difference from the time zone  GMT+1  (Central European time zone) is 60 minutes. A further 60 minutes has to be added with summer time, adding up to a total difference of 120 minutes. In this case, however, you must adjust the time difference manually when switching from winter to summer time and vice versa.&lt;br /&gt;
&lt;br /&gt;
If a so-called timezone string was entered in the String field, the device can make the switch from summer to winter time automatically. The name of the time zone, the name of the summer time zone, their respective differences in time compared to the UTC and the time switch points are encoded in this field.&lt;br /&gt;
&lt;br /&gt;
There are various formats for the specification of this string. These formats are defined by the IEEE POSIX standard.&lt;br /&gt;
POSIX timezone strings have the following format (optional parts in square brackets):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;StdOffset[Dst[Offset], Date/Time, Date/Time]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Std&#039;&#039;&#039; stands for the time zone (for example, CET for Central European Time or MET for Middle European Time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Offset&#039;&#039;&#039; specifies the time difference between the time zone and UTC, for example, -1 for Central European Time. The difference is negative if the time zone is ahead of UTC. If the time difference does not comprise full hours, the number of minutes can be added, for example, -1:30.&lt;br /&gt;
The TZ string ends here if you are not using a summer time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dst&#039;&#039;&#039; stands for the summer time zone (for example, CEST for Central European Summer Time or MES for Middle European Summer Time).&lt;br /&gt;
&lt;br /&gt;
The optional, &#039;&#039;&#039;second Offset&#039;&#039;&#039; parameter gives the offset of the summer time in respect of UTC. An hour before normal time is assumed if no entry is made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date/Time&#039;&#039;&#039; define the start and end of summer time. The format for a time entry is Mm.n.d, signifying the d-th day of the n-th week of the m-th month. Day 0 is Sunday. If the fifth week is entered, the last day (with respect to d) of the month is meant. The format for a time entry is hh[:mm[:ss]], in the 24-hour format.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
The Central European time zone is specified &#039;&#039;&#039;CET-1CEST-2,M3.5.0/2,M10.5.0/3&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
CET (Central European Time) - offset -1&lt;br /&gt;
&lt;br /&gt;
CEST (Central European Summer Time) - offset -2&lt;br /&gt;
&lt;br /&gt;
Switch to Summer Time at 3(March), 5(last week of the month), 0(Sunday)/at 2:00&lt;br /&gt;
&lt;br /&gt;
Switch to Standard Time at 10(October), 5(last week of the month), 0(Sunday)/at 3:00&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Setting time and date without using an NTP]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Services/NTP&amp;diff=80355</id>
		<title>Reference16r1:Services/NTP</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Services/NTP&amp;diff=80355"/>
		<updated>2026-08-14T12:03:05Z</updated>

		<summary type="html">&lt;p&gt;Slu: Created page with &amp;quot;The device can synchronize its internal date/time to an NTP server using the SNTP protocol. Without synchronization to an NTP server the internal date/time is reset to Januar 1st, 1970 0:00 after each restart.  == Configuration ==  {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Server&amp;#039;&amp;#039;&amp;#039; |The IP-Adresse of the time server |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Interval [min]:&amp;#039;&amp;#039;&amp;#039; |The time interval (in minutes) at which the device tries to synchronise with the time server |- |valign=top nowrap=tru...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The device can synchronize its internal date/time to an NTP server using the SNTP protocol. Without synchronization to an NTP server the internal date/time is reset to Januar 1st, 1970 0:00 after each restart.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
|The IP-Adresse of the time server&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Interval [min]:&#039;&#039;&#039;&lt;br /&gt;
|The time interval (in minutes) at which the device tries to synchronise with the time server&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Timezone&#039;&#039;&#039;&lt;br /&gt;
|Select the time zone in which the device is located.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;String&#039;&#039;&#039;&lt;br /&gt;
|If the timezone to be used is not one of the predefined timezones, it can be confugured with a string in accordance with the IEEE POSIX standard&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Current Server&#039;&#039;&#039;&lt;br /&gt;
|Displays the current used NTP Server.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Last sync&#039;&#039;&#039;&lt;br /&gt;
|Displays the data and time of the last synchronisation.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Default Time&#039;&#039;&#039;&lt;br /&gt;
|Default time in UTC on startup that shall be used if no NTP Server is available. The Format is &#039;&#039;dd.mm.yyyy-hh:mm&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timezone Configuration String ==&lt;br /&gt;
&lt;br /&gt;
Time services always provide the coordinated world time UTC (Universal Time Coordinated), which corresponds to GMT (Greenwich Mean Time), not however the correct time zone and summer time. It is therefore possible to specify the time difference between the time zone and the world time in the String field. The difference from the time zone  GMT+1  (Central European time zone) is 60 minutes. A further 60 minutes has to be added with summer time, adding up to a total difference of 120 minutes. In this case, however, you must adjust the time difference manually when switching from winter to summer time and vice versa.&lt;br /&gt;
&lt;br /&gt;
If a so-called timezone string was entered in the String field, the device can make the switch from summer to winter time automatically. The name of the time zone, the name of the summer time zone, their respective differences in time compared to the UTC and the time switch points are encoded in this field.&lt;br /&gt;
&lt;br /&gt;
There are various formats for the specification of this string. These formats are defined by the IEEE POSIX standard.&lt;br /&gt;
POSIX timezone strings have the following format (optional parts in square brackets):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;StdOffset[Dst[Offset], Date/Time, Date/Time]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Std&#039;&#039;&#039; stands for the time zone (for example, CET for Central European Time or MET for Middle European Time).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Offset&#039;&#039;&#039; specifies the time difference between the time zone and UTC, for example, -1 for Central European Time. The difference is negative if the time zone is ahead of UTC. If the time difference does not comprise full hours, the number of minutes can be added, for example, -1:30.&lt;br /&gt;
The TZ string ends here if you are not using a summer time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dst&#039;&#039;&#039; stands for the summer time zone (for example, CEST for Central European Summer Time or MES for Middle European Summer Time).&lt;br /&gt;
&lt;br /&gt;
The optional, &#039;&#039;&#039;second Offset&#039;&#039;&#039; parameter gives the offset of the summer time in respect of UTC. An hour before normal time is assumed if no entry is made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Date/Time&#039;&#039;&#039; define the start and end of summer time. The format for a time entry is Mm.n.d, signifying the d-th day of the n-th week of the m-th month. Day 0 is Sunday. If the fifth week is entered, the last day (with respect to d) of the month is meant. The format for a time entry is hh[:mm[:ss]], in the 24-hour format.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
The Central European time zone is specified &#039;&#039;&#039;CET-1CEST-2,M3.5.0/2,M10.5.0/3&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
CET (Central European Time) - offset -1&lt;br /&gt;
&lt;br /&gt;
CEST (Central European Summer Time) - offset -2&lt;br /&gt;
&lt;br /&gt;
Switch to Summer Time at 3(March), 5(last week of the month), 0(Sunday)/at 2:00&lt;br /&gt;
&lt;br /&gt;
Switch to Standard Time at 10(October), 5(last week of the month), 0(Sunday)/at 3:00&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Howto:Setting time and date without using an NTP]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto17:Firmware_Upgrade_V16r1_V17&amp;diff=80349</id>
		<title>Howto17:Firmware Upgrade V16r1 V17</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto17:Firmware_Upgrade_V16r1_V17&amp;diff=80349"/>
		<updated>2026-08-14T08:33:12Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Upgrade AP Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applies To ==&lt;br /&gt;
This information applies to:&lt;br /&gt;
&lt;br /&gt;
* All 17 capable innovaphone devices&lt;br /&gt;
: For a general overview of the upgrade process and a list of supported devices with 17, see [[Howto:Firmware Upgrade]]&lt;br /&gt;
== Licenses ==&lt;br /&gt;
In case of cloud or rental model, don&#039;t worry about licenses.&lt;br /&gt;
&lt;br /&gt;
If the system is licensed on premise, you&#039;ll need to regenerate the license file for v17 in https://portal.innovaphone.com/ and load into the system before upgrade (The system needs to have the SSC up to date).&lt;br /&gt;
&lt;br /&gt;
== Migration Policy ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; font-weight: bold&amp;quot;&amp;gt;Before you begin, be sure that your whole installation is running the latest 16r1 service release. Create backups before you start and store them on an external location&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Upgrade AP Image ===&lt;br /&gt;
* First, upgrade your application platform to at least image version &amp;lt;code&amp;gt;140049&amp;lt;/code&amp;gt;. After that you can go ahead.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Sequence ===&lt;br /&gt;
In systems of multiple units, it is important to update the tree from top to bottom. In other words, update the master unit first, and then the machines at the lower levels. If you&#039;re using a DevicesApp update job that updates the entire system at once, you don&#039;t need to do anything here.&lt;br /&gt;
&lt;br /&gt;
=== TechAssist Upgrade Helper ===&lt;br /&gt;
* Before you start, make sure that all TechAssist tests (you will receive the required tests in the last update in the previous major version) labelled &amp;lt;code&amp;gt;Pre Upgrade: xy&amp;lt;/code&amp;gt; are positive, if available&lt;br /&gt;
* When you are finished, make sure that all TechAssist tests (you will receive new tests with the upgrade) are positive&lt;br /&gt;
&lt;br /&gt;
== Changes visible to the end customers ==&lt;br /&gt;
Listed here are changes that should be communicated by resellers to end users prior to a upgrade, as the change will be visible/audible in the behaviour of the application/device.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Manual steps needed after upgrade ==&lt;br /&gt;
If the installer is not used for a new installation, some new default settings are not set. Please evaluate per app whether you want to configure the new default settings manually.&lt;br /&gt;
&lt;br /&gt;
=== Connector for kuando - MacOS ===&lt;br /&gt;
With V17, the Kuando HTTP server is no longer required. From version 2.0.7 onwards, the HTTP server is already integrated into KuandoHub and works in exactly the same way as the Windows version.&lt;br /&gt;
The HTTP server must be uninstalled and KuandoHub installed; once the default setting has been defined in the Platform Priorities, no further configuration is required.&lt;br /&gt;
&lt;br /&gt;
== New Apps ==&lt;br /&gt;
New Apps will not be installed automatically by the upgrade. The installation description of new apps is usually in the concept article. Please rate per app whether you want to install/use the new app and configure it manually.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tbd&amp;lt;/code&amp;gt;&lt;br /&gt;
; &lt;br /&gt;
: &lt;br /&gt;
&lt;br /&gt;
== Removed ==&lt;br /&gt;
The following software is no longer included.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deprecated ==&lt;br /&gt;
The following software is based on legacy technology, with no further development and limited maintenance and support.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Previously deprecated and now no longer supported == &lt;br /&gt;
The following software is based on legacy technology, with no further development and no more maintenance and support.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
===Long Update-duration===&lt;br /&gt;
When you update, it can be up to 10 minutes before you have access to your app platform again.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Howto:Firmware_Upgrade]]&lt;br /&gt;
* [[Howto16r1:Firmware_Upgrade_V15r1_V16r1]]&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_IP&amp;diff=80180</id>
		<title>Reference16r1:Concept App Service IP</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_IP&amp;diff=80180"/>
		<updated>2026-07-23T13:13:52Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Create instance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept|IP]]&lt;br /&gt;
&lt;br /&gt;
The App IP is an app which offers the PBX functionality and further functionalities as App service on our innovaphone App Platform.&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone firmware and apps V16&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* innovaphone Application Platform (image version 140011 or higher)&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
The App IP offers modules known from innovaphone gateways, like the PBX, TURN server functionality etc.&lt;br /&gt;
&lt;br /&gt;
==How it works==&lt;br /&gt;
&lt;br /&gt;
=== Single instance mode ===&lt;br /&gt;
Unlike other App Services, the App IP is a single instance App Service, so you can create &#039;&#039;&#039;just&#039;&#039;&#039; a single instance and not multiple instances.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
Standard licensing mechanisms apply to the App IP as they apply to innovaphone gateways.&lt;br /&gt;
&lt;br /&gt;
In addition, every port license requires a dedicated IPAP license (similar to the IPVA license for virtual machines).&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
&lt;br /&gt;
There is no App provided by this App Service.&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
There is no PBX Manager Plugin provided by this App Service.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration is done as an innovaphone gateway is configured too.&lt;br /&gt;
&lt;br /&gt;
=== Create instance ===&lt;br /&gt;
You have to create one instance for the App IP Service.&lt;br /&gt;
&lt;br /&gt;
[[Courseware:IT Advanced - 04 Setting up the Application Platform#Adding an App Service instance|Here]] are more informations how to do this.&lt;br /&gt;
&lt;br /&gt;
We recommend the following settings:&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Name&#039;&#039;&#039; = ip&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Domain&#039;&#039;&#039; = customer domain (system name of the PBX)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password&#039;&#039;&#039; = The password &#039;&#039;&#039;must be set to &amp;quot;pwd&amp;quot;&#039;&#039;&#039; for Install and will be changed during the process. &#039;&#039;&#039;Note:&#039;&#039;&#039; if you want to login with the Adv.GUI to the PBX prior to the Install proces, this is also the admin password!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Webserver Path&#039;&#039;&#039; - Used for access to the UI. Adjustable, will be filled automatically with the value &amp;quot;$domain/ip&amp;quot;, eg. &amp;lt;code&amp;gt;domain.com/ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install Process ===&lt;br /&gt;
Install can be started under the webserver path of the App IP instance and /&#039;&#039;install.htm&#039;&#039;, e.g.: http://app.domain.com/domain.com/ip/install.htm&lt;br /&gt;
&lt;br /&gt;
⚠️ Use standard ports for installation. If necessary, install via a reverse proxy&lt;br /&gt;
&lt;br /&gt;
⚠️ Do not use the localhost (127.0.0.1) address&lt;br /&gt;
&lt;br /&gt;
=== Advanced UI ===&lt;br /&gt;
The advanced UI is reachable under the webserver path of the App IP instance and /admin.xml?xsl=admin.xsl, e.g.:&lt;br /&gt;
https://app.domain.com/domain.com/ip/admin.xml?xsl=admin.xsl&lt;br /&gt;
&lt;br /&gt;
==== Password ====&lt;br /&gt;
The password for the Advanced UI is the password of the App IP instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
If the Devices App rolls out passwords, the domain password is also used for the App IP admin login.&lt;br /&gt;
&lt;br /&gt;
=== IP configuration ===&lt;br /&gt;
As the App IP is just an App on an App Platform, there are no IP4/IP6, NTP etc. settings as on other innovaphone devices.&lt;br /&gt;
&lt;br /&gt;
==== Devices App ====&lt;br /&gt;
If your App Platform which runs the App IP is connected to a Devices App, you can access the Advanced UI with the &#039;&#039;&#039;PBX&#039;&#039;&#039; tab of your App Platform device.&lt;br /&gt;
&lt;br /&gt;
== Functional Distinction from a Gateway or an IPVA ==&lt;br /&gt;
Due to the system architecture, not all existing software functions of a gateway or an IPVA can be made available in an &amp;quot;IP App&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following features are not available:&lt;br /&gt;
* PBX users with &amp;quot;additional user rights&amp;quot; and an associated login to the advanced UI&lt;br /&gt;
* SOAP (currently)&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
The App IP offers standard tracing mechanism for App Services and in addition mechanisms known from innovaphone gateways.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can enable module related trace flags with config change commands or by setting trace flags under Maintenance -&amp;gt; Tracing in the Advanced UI of the App IP.&lt;br /&gt;
&lt;br /&gt;
 Trace files are not found under Maintenance -&amp;gt; Tracing but on the App IP service on your App Platform Manager.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
The installation process must be performed using a DNS name rather than an IP address. &amp;lt;br&amp;gt;&lt;br /&gt;
The URL must include the parameter &#039;&#039;?apdns=&amp;quot;DNS from App Platform&amp;quot;&#039;&#039; in the path, for example: http://app.domain.com/domain.com/ip/install.htm?apdns=pbx.domain.com &amp;lt;br&amp;gt;&lt;br /&gt;
Starting with version 16r1 sr1, installation using an IP address is supported. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it is generally recommended to use DNS for the installation.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference16r1:Concept_innovaphone_App_Platform_Container]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_IP&amp;diff=80179</id>
		<title>Reference16r1:Concept App Service IP</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_IP&amp;diff=80179"/>
		<updated>2026-07-23T13:12:55Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Create instance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept|IP]]&lt;br /&gt;
&lt;br /&gt;
The App IP is an app which offers the PBX functionality and further functionalities as App service on our innovaphone App Platform.&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone firmware and apps V16&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* innovaphone Application Platform (image version 140011 or higher)&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
The App IP offers modules known from innovaphone gateways, like the PBX, TURN server functionality etc.&lt;br /&gt;
&lt;br /&gt;
==How it works==&lt;br /&gt;
&lt;br /&gt;
=== Single instance mode ===&lt;br /&gt;
Unlike other App Services, the App IP is a single instance App Service, so you can create &#039;&#039;&#039;just&#039;&#039;&#039; a single instance and not multiple instances.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
Standard licensing mechanisms apply to the App IP as they apply to innovaphone gateways.&lt;br /&gt;
&lt;br /&gt;
In addition, every port license requires a dedicated IPAP license (similar to the IPVA license for virtual machines).&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
&lt;br /&gt;
There is no App provided by this App Service.&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
There is no PBX Manager Plugin provided by this App Service.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration is done as an innovaphone gateway is configured too.&lt;br /&gt;
&lt;br /&gt;
=== Create instance ===&lt;br /&gt;
You have to create one instance for the App IP Service.&lt;br /&gt;
&lt;br /&gt;
[[Courseware:IT Advanced - 04 Setting up the Application Platform#Adding an App Service instance|Here]] are more informations how to do this.&lt;br /&gt;
&lt;br /&gt;
We recommend the following settings:&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Name&#039;&#039;&#039; = ip&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Domain&#039;&#039;&#039; = customer domain (system name of the PBX)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password&#039;&#039;&#039; = The password &#039;&#039;&#039;must be set to &amp;quot;pwd&amp;quot;&#039;&#039;&#039; for Install and will be changed during the process. &#039;&#039;&#039;Note:&#039;&#039;&#039; if you want to login with the Adv.GUI to the PBX prior to the Install proces, this is also the admin password!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Webserver Path&#039;&#039;&#039; - Adustable, will be filled automatically with the value &amp;quot;$domain/ip&amp;quot;, eg. &amp;lt;code&amp;gt;domain.com/ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install Process ===&lt;br /&gt;
Install can be started under the webserver path of the App IP instance and /&#039;&#039;install.htm&#039;&#039;, e.g.: http://app.domain.com/domain.com/ip/install.htm&lt;br /&gt;
&lt;br /&gt;
⚠️ Use standard ports for installation. If necessary, install via a reverse proxy&lt;br /&gt;
&lt;br /&gt;
⚠️ Do not use the localhost (127.0.0.1) address&lt;br /&gt;
&lt;br /&gt;
=== Advanced UI ===&lt;br /&gt;
The advanced UI is reachable under the webserver path of the App IP instance and /admin.xml?xsl=admin.xsl, e.g.:&lt;br /&gt;
https://app.domain.com/domain.com/ip/admin.xml?xsl=admin.xsl&lt;br /&gt;
&lt;br /&gt;
==== Password ====&lt;br /&gt;
The password for the Advanced UI is the password of the App IP instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
If the Devices App rolls out passwords, the domain password is also used for the App IP admin login.&lt;br /&gt;
&lt;br /&gt;
=== IP configuration ===&lt;br /&gt;
As the App IP is just an App on an App Platform, there are no IP4/IP6, NTP etc. settings as on other innovaphone devices.&lt;br /&gt;
&lt;br /&gt;
==== Devices App ====&lt;br /&gt;
If your App Platform which runs the App IP is connected to a Devices App, you can access the Advanced UI with the &#039;&#039;&#039;PBX&#039;&#039;&#039; tab of your App Platform device.&lt;br /&gt;
&lt;br /&gt;
== Functional Distinction from a Gateway or an IPVA ==&lt;br /&gt;
Due to the system architecture, not all existing software functions of a gateway or an IPVA can be made available in an &amp;quot;IP App&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following features are not available:&lt;br /&gt;
* PBX users with &amp;quot;additional user rights&amp;quot; and an associated login to the advanced UI&lt;br /&gt;
* SOAP (currently)&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
The App IP offers standard tracing mechanism for App Services and in addition mechanisms known from innovaphone gateways.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can enable module related trace flags with config change commands or by setting trace flags under Maintenance -&amp;gt; Tracing in the Advanced UI of the App IP.&lt;br /&gt;
&lt;br /&gt;
 Trace files are not found under Maintenance -&amp;gt; Tracing but on the App IP service on your App Platform Manager.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
The installation process must be performed using a DNS name rather than an IP address. &amp;lt;br&amp;gt;&lt;br /&gt;
The URL must include the parameter &#039;&#039;?apdns=&amp;quot;DNS from App Platform&amp;quot;&#039;&#039; in the path, for example: http://app.domain.com/domain.com/ip/install.htm?apdns=pbx.domain.com &amp;lt;br&amp;gt;&lt;br /&gt;
Starting with version 16r1 sr1, installation using an IP address is supported. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it is generally recommended to use DNS for the installation.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference16r1:Concept_innovaphone_App_Platform_Container]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_IP&amp;diff=80157</id>
		<title>Reference16r1:Concept App Service IP</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_IP&amp;diff=80157"/>
		<updated>2026-07-21T07:12:29Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept|IP]]&lt;br /&gt;
&lt;br /&gt;
The App IP is an app which offers the PBX functionality and further functionalities as App service on our innovaphone App Platform.&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone firmware and apps V16&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* innovaphone Application Platform (image version 140011 or higher)&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
&lt;br /&gt;
The App IP offers modules known from innovaphone gateways, like the PBX, TURN server functionality etc.&lt;br /&gt;
&lt;br /&gt;
==How it works==&lt;br /&gt;
&lt;br /&gt;
=== Single instance mode ===&lt;br /&gt;
Unlike other App Services, the App IP is a single instance App Service, so you can create &#039;&#039;&#039;just&#039;&#039;&#039; a single instance and not multiple instances.&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
Standard licensing mechanisms apply to the App IP as they apply to innovaphone gateways.&lt;br /&gt;
&lt;br /&gt;
In addition, every port license requires a dedicated IPAP license (similar to the IPVA license for virtual machines).&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
&lt;br /&gt;
There is no App provided by this App Service.&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
There is no PBX Manager Plugin provided by this App Service.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
The configuration is done as an innovaphone gateway is configured too.&lt;br /&gt;
&lt;br /&gt;
=== Create instance ===&lt;br /&gt;
You have to create one instance for the App IP Service.&lt;br /&gt;
&lt;br /&gt;
[[Courseware:IT Advanced - 04 Setting up the Application Platform#Adding an App Service instance|Here]] are more informations how to do this.&lt;br /&gt;
&lt;br /&gt;
We recommend the following settings:&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Name&#039;&#039;&#039; = ip&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Domain&#039;&#039;&#039; = customer domain (system name of the PBX)&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Password&#039;&#039;&#039; = The password &#039;&#039;&#039;must be set to &amp;quot;pwd&amp;quot;&#039;&#039;&#039; for Install and will be changed during the process. &#039;&#039;&#039;Note:&#039;&#039;&#039; if you want to login with the Adv.GUI to the PBX prior to the Install proces, this is also the admin password!&lt;br /&gt;
&lt;br /&gt;
=== Install Process ===&lt;br /&gt;
Install can be started under the webserver path of the App IP instance and /&#039;&#039;install.htm&#039;&#039;, e.g.: http://app.domain.com/domain.com/ip/install.htm&lt;br /&gt;
&lt;br /&gt;
⚠️ Use standard ports for installation. If necessary, install via a reverse proxy&lt;br /&gt;
&lt;br /&gt;
⚠️ Do not use the localhost (127.0.0.1) address&lt;br /&gt;
&lt;br /&gt;
=== Advanced UI ===&lt;br /&gt;
The advanced UI is reachable under the webserver path of the App IP instance and /admin.xml?xsl=admin.xsl, e.g.:&lt;br /&gt;
https://app.domain.com/domain.com/ip/admin.xml?xsl=admin.xsl&lt;br /&gt;
&lt;br /&gt;
==== Password ====&lt;br /&gt;
The password for the Advanced UI is the password of the App IP instance.&amp;lt;br/&amp;gt;&lt;br /&gt;
If the Devices App rolls out passwords, the domain password is also used for the App IP admin login.&lt;br /&gt;
&lt;br /&gt;
=== IP configuration ===&lt;br /&gt;
As the App IP is just an App on an App Platform, there are no IP4/IP6, NTP etc. settings as on other innovaphone devices.&lt;br /&gt;
&lt;br /&gt;
==== Devices App ====&lt;br /&gt;
If your App Platform which runs the App IP is connected to a Devices App, you can access the Advanced UI with the &#039;&#039;&#039;PBX&#039;&#039;&#039; tab of your App Platform device.&lt;br /&gt;
&lt;br /&gt;
== Functional Distinction from a Gateway or an IPVA ==&lt;br /&gt;
Due to the system architecture, not all existing software functions of a gateway or an IPVA can be made available in an &amp;quot;IP App&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The following features are not available:&lt;br /&gt;
* PBX users with &amp;quot;additional user rights&amp;quot; and an associated login to the advanced UI&lt;br /&gt;
* SOAP (currently)&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
The App IP offers standard tracing mechanism for App Services and in addition mechanisms known from innovaphone gateways.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can enable module related trace flags with config change commands or by setting trace flags under Maintenance -&amp;gt; Tracing in the Advanced UI of the App IP.&lt;br /&gt;
&lt;br /&gt;
 Trace files are not found under Maintenance -&amp;gt; Tracing but on the App IP service on your App Platform Manager.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
The installation process must be performed using a DNS name rather than an IP address. &amp;lt;br&amp;gt;&lt;br /&gt;
The URL must include the parameter &#039;&#039;?apdns=&amp;quot;DNS from App Platform&amp;quot;&#039;&#039; in the path, for example: http://app.domain.com/domain.com/ip/install.htm?apdns=pbx.domain.com &amp;lt;br&amp;gt;&lt;br /&gt;
Starting with version 16r1 sr1, installation using an IP address is supported. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, it is generally recommended to use DNS for the installation.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference16r1:Concept_innovaphone_App_Platform_Container]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80140</id>
		<title>Howto16r1:Reverse Proxy with HAProxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80140"/>
		<updated>2026-07-14T12:50:21Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Configuration Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to configure HAProxy to work with the innovaphone Reverse Proxy, specifically when using WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
When HAProxy is deployed in front of an innovaphone Reverse Proxy, WebSocket connections may not function correctly by default. This can cause issues such as:&lt;br /&gt;
&lt;br /&gt;
* myApps browser sessions reloading or disconnecting periodically (e.g. every 60 seconds)&lt;br /&gt;
* WebSocket-based services failing to establish stable connections&lt;br /&gt;
* Unexpected behavior with real-time communication features&lt;br /&gt;
&lt;br /&gt;
This happens because HAProxy requires specific configuration to handle WebSocket upgrades properly. The most common issue is that the WebSocket Upgrade/Connection headers are not passed through correctly, or the HTTP keep-alive behavior interferes with the persistent WebSocket connection.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
HAProxy needs to be configured to pass through the WebSocket upgrade headers correctly. The following configuration changes are required:&lt;br /&gt;
&lt;br /&gt;
* Enable HTTP keep-alive&lt;br /&gt;
* Pass through the Upgrade and Connection headers&lt;br /&gt;
* Configure proper timeouts for WebSocket connections&lt;br /&gt;
&lt;br /&gt;
The key is to add the correct headers to the backend configuration so that HAProxy does not interfere with the WebSocket upgrade process.&lt;br /&gt;
&lt;br /&gt;
== Configuration Example ==&lt;br /&gt;
&lt;br /&gt;
The following is a working HAProxy configuration example for connecting to an innovaphone Reverse Proxy:&lt;br /&gt;
&lt;br /&gt;
 frontend https-frontend&lt;br /&gt;
    bind *:443&lt;br /&gt;
    mode http&lt;br /&gt;
    option http-keep-alive&lt;br /&gt;
    timeout client 30000&lt;br /&gt;
    http-request set-var(txn.txnhost) hdr(host)&lt;br /&gt;
    use_backend innovaphone if { var(txn.txnhost) -m sub innovaphone }&lt;br /&gt;
 &lt;br /&gt;
 backend innovaphone&lt;br /&gt;
    mode http&lt;br /&gt;
    timeout connect 30000&lt;br /&gt;
    timeout server 30000&lt;br /&gt;
    http-request set-header X-Forwarded-Proto https&lt;br /&gt;
    http-request set-header Host 192.168.26.11&lt;br /&gt;
    http-request set-header X-Forwarded-Host innovaphone.example.com&lt;br /&gt;
    http-request set-header Upgrade %[hdr(upgrade)]&lt;br /&gt;
    http-request set-header Connection %[hdr(connection),lower]&lt;br /&gt;
    server innovaphone 192.168.26.11:80 check&lt;br /&gt;
&lt;br /&gt;
=== Key Parameters Explained ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;option http-keep-alive&#039;&#039; (frontend): Ensures that the frontend connection is kept alive and can be reused for multiple requests, including WebSocket upgrades.&lt;br /&gt;
* &#039;&#039;timeout client/server 30000&#039;&#039;: Sufficiently long timeouts to prevent premature disconnection of persistent WebSocket connections.&lt;br /&gt;
* &#039;&#039;http-request set-header X-Forwarded-Proto https&#039;&#039;: Preserves the original protocol (HTTPS) so that the innovaphone Reverse Proxy can correctly identify the scheme.&lt;br /&gt;
* &#039;&#039;http-request set-header Host&#039;&#039;: Sets the correct Host header for the backend, which is important for virtual host routing on the innovaphone Reverse Proxy.&lt;br /&gt;
* &#039;&#039;http-request set-header Upgrade&#039;&#039;: Passes the &#039;&#039;Upgrade&#039;&#039; header (e.g. &amp;quot;websocket&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
* &#039;&#039;http-request set-header Connection&#039;&#039;: Passes the &#039;&#039;Connection&#039;&#039; header (e.g. &amp;quot;Upgrade&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you are experiencing issues with WebSocket connections through HAProxy:&lt;br /&gt;
&lt;br /&gt;
* Review the HAProxy configuration for proper WebSocket handling (see parameters above)&lt;br /&gt;
* Check the HAProxy logs for any connection errors&lt;br /&gt;
* Ensure that timeout values are set appropriately for long-lived connections&lt;br /&gt;
* Verify that the Upgrade and Connection headers are being passed through correctly&lt;br /&gt;
* Test the WebSocket connection without HAProxy in the path to isolate the problem&lt;br /&gt;
&lt;br /&gt;
For detailed HAProxy WebSocket configuration, please refer to the official HAProxy documentation:&lt;br /&gt;
&lt;br /&gt;
[https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy HAProxy WebSocket Blog]&lt;br /&gt;
&lt;br /&gt;
== When to Open a Support Ticket ==&lt;br /&gt;
&lt;br /&gt;
If problems persist after reviewing and adjusting the HAProxy configuration, please open a support ticket with:&lt;br /&gt;
&lt;br /&gt;
* A pcap capture from the innovaphone Reverse Proxy (reverse proxy / all IPv4 TCP/UDP traffic / all IPv4 TLS traffic / enable RPCAP)&lt;br /&gt;
* The relevant Client ID&lt;br /&gt;
* Your HAProxy configuration (if available)&lt;br /&gt;
&lt;br /&gt;
[[Category:Reverse_Proxy]]&lt;br /&gt;
[[Category:Concept_Reverse_Proxy]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80133</id>
		<title>Howto16r1:Reverse Proxy with HAProxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80133"/>
		<updated>2026-07-13T14:12:26Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Configuration Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to configure HAProxy to work with the innovaphone Reverse Proxy, specifically when using WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
When HAProxy is deployed in front of an innovaphone Reverse Proxy, WebSocket connections may not function correctly by default. This can cause issues such as:&lt;br /&gt;
&lt;br /&gt;
* myApps browser sessions reloading or disconnecting periodically (e.g. every 60 seconds)&lt;br /&gt;
* WebSocket-based services failing to establish stable connections&lt;br /&gt;
* Unexpected behavior with real-time communication features&lt;br /&gt;
&lt;br /&gt;
This happens because HAProxy requires specific configuration to handle WebSocket upgrades properly. The most common issue is that the WebSocket Upgrade/Connection headers are not passed through correctly, or the HTTP keep-alive behavior interferes with the persistent WebSocket connection.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
HAProxy needs to be configured to pass through the WebSocket upgrade headers correctly. The following configuration changes are required:&lt;br /&gt;
&lt;br /&gt;
* Enable HTTP keep-alive&lt;br /&gt;
* Pass through the Upgrade and Connection headers&lt;br /&gt;
* Configure proper timeouts for WebSocket connections&lt;br /&gt;
&lt;br /&gt;
The key is to add the correct headers to the backend configuration so that HAProxy does not interfere with the WebSocket upgrade process.&lt;br /&gt;
&lt;br /&gt;
== Configuration Example ==&lt;br /&gt;
&lt;br /&gt;
The following is a working HAProxy configuration example for connecting to an innovaphone Reverse Proxy:&lt;br /&gt;
&lt;br /&gt;
 frontend https-frontend&lt;br /&gt;
    bind *:443&lt;br /&gt;
    mode http&lt;br /&gt;
    option http-keep-alive&lt;br /&gt;
    timeout client 30000&lt;br /&gt;
    http-request set-var(txn.txnhost) hdr(host)&lt;br /&gt;
    use_backend innovaphone if { var(txn.txnhost) -m sub inovaphone }&lt;br /&gt;
 &lt;br /&gt;
 backend innovaphone&lt;br /&gt;
    mode http&lt;br /&gt;
    timeout connect 30000&lt;br /&gt;
    timeout server 30000&lt;br /&gt;
    http-request set-header X-Forwarded-Proto https&lt;br /&gt;
    http-request set-header Host 192.168.26.11&lt;br /&gt;
    http-request set-header X-Forwarded-Host inovaphone.example.com&lt;br /&gt;
    http-request set-header Upgrade %[hdr(upgrade)]&lt;br /&gt;
    http-request set-header Connection %[hdr(connection),lower]&lt;br /&gt;
    server innovaphone 192.168.26.11:80 check&lt;br /&gt;
&lt;br /&gt;
=== Key Parameters Explained ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;option http-keep-alive&#039;&#039; (frontend): Ensures that the frontend connection is kept alive and can be reused for multiple requests, including WebSocket upgrades.&lt;br /&gt;
* &#039;&#039;timeout client/server 30000&#039;&#039;: Sufficiently long timeouts to prevent premature disconnection of persistent WebSocket connections.&lt;br /&gt;
* &#039;&#039;http-request set-header X-Forwarded-Proto https&#039;&#039;: Preserves the original protocol (HTTPS) so that the innovaphone Reverse Proxy can correctly identify the scheme.&lt;br /&gt;
* &#039;&#039;http-request set-header Host&#039;&#039;: Sets the correct Host header for the backend, which is important for virtual host routing on the innovaphone Reverse Proxy.&lt;br /&gt;
* &#039;&#039;http-request set-header Upgrade&#039;&#039;: Passes the &#039;&#039;Upgrade&#039;&#039; header (e.g. &amp;quot;websocket&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
* &#039;&#039;http-request set-header Connection&#039;&#039;: Passes the &#039;&#039;Connection&#039;&#039; header (e.g. &amp;quot;Upgrade&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you are experiencing issues with WebSocket connections through HAProxy:&lt;br /&gt;
&lt;br /&gt;
* Review the HAProxy configuration for proper WebSocket handling (see parameters above)&lt;br /&gt;
* Check the HAProxy logs for any connection errors&lt;br /&gt;
* Ensure that timeout values are set appropriately for long-lived connections&lt;br /&gt;
* Verify that the Upgrade and Connection headers are being passed through correctly&lt;br /&gt;
* Test the WebSocket connection without HAProxy in the path to isolate the problem&lt;br /&gt;
&lt;br /&gt;
For detailed HAProxy WebSocket configuration, please refer to the official HAProxy documentation:&lt;br /&gt;
&lt;br /&gt;
[https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy HAProxy WebSocket Blog]&lt;br /&gt;
&lt;br /&gt;
== When to Open a Support Ticket ==&lt;br /&gt;
&lt;br /&gt;
If problems persist after reviewing and adjusting the HAProxy configuration, please open a support ticket with:&lt;br /&gt;
&lt;br /&gt;
* A pcap capture from the innovaphone Reverse Proxy (reverse proxy / all IPv4 TCP/UDP traffic / all IPv4 TLS traffic / enable RPCAP)&lt;br /&gt;
* The relevant Client ID&lt;br /&gt;
* Your HAProxy configuration (if available)&lt;br /&gt;
&lt;br /&gt;
[[Category:Reverse_Proxy]]&lt;br /&gt;
[[Category:Concept_Reverse_Proxy]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80132</id>
		<title>Howto16r1:Reverse Proxy with HAProxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80132"/>
		<updated>2026-07-13T14:12:07Z</updated>

		<summary type="html">&lt;p&gt;Slu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to configure HAProxy to work with the innovaphone Reverse Proxy, specifically when using WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
When HAProxy is deployed in front of an innovaphone Reverse Proxy, WebSocket connections may not function correctly by default. This can cause issues such as:&lt;br /&gt;
&lt;br /&gt;
* myApps browser sessions reloading or disconnecting periodically (e.g. every 60 seconds)&lt;br /&gt;
* WebSocket-based services failing to establish stable connections&lt;br /&gt;
* Unexpected behavior with real-time communication features&lt;br /&gt;
&lt;br /&gt;
This happens because HAProxy requires specific configuration to handle WebSocket upgrades properly. The most common issue is that the WebSocket Upgrade/Connection headers are not passed through correctly, or the HTTP keep-alive behavior interferes with the persistent WebSocket connection.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
HAProxy needs to be configured to pass through the WebSocket upgrade headers correctly. The following configuration changes are required:&lt;br /&gt;
&lt;br /&gt;
* Enable HTTP keep-alive&lt;br /&gt;
* Pass through the Upgrade and Connection headers&lt;br /&gt;
* Configure proper timeouts for WebSocket connections&lt;br /&gt;
&lt;br /&gt;
The key is to add the correct headers to the backend configuration so that HAProxy does not interfere with the WebSocket upgrade process.&lt;br /&gt;
&lt;br /&gt;
== Configuration Example ==&lt;br /&gt;
&lt;br /&gt;
The following is a working HAProxy configuration example for connecting to an innovaphone Reverse Proxy:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
frontend https-frontend&lt;br /&gt;
    bind *:443&lt;br /&gt;
    mode http&lt;br /&gt;
    option http-keep-alive&lt;br /&gt;
    timeout client 30000&lt;br /&gt;
    http-request set-var(txn.txnhost) hdr(host)&lt;br /&gt;
    use_backend innovaphone if { var(txn.txnhost) -m sub inovaphone }&lt;br /&gt;
&lt;br /&gt;
backend innovaphone&lt;br /&gt;
    mode http&lt;br /&gt;
    timeout connect 30000&lt;br /&gt;
    timeout server 30000&lt;br /&gt;
    http-request set-header X-Forwarded-Proto https&lt;br /&gt;
    http-request set-header Host 192.168.26.11&lt;br /&gt;
    http-request set-header X-Forwarded-Host inovaphone.example.com&lt;br /&gt;
    http-request set-header Upgrade %[hdr(upgrade)]&lt;br /&gt;
    http-request set-header Connection %[hdr(connection),lower]&lt;br /&gt;
    server innovaphone 192.168.26.11:80 check&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Key Parameters Explained ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;option http-keep-alive&#039;&#039; (frontend): Ensures that the frontend connection is kept alive and can be reused for multiple requests, including WebSocket upgrades.&lt;br /&gt;
* &#039;&#039;timeout client/server 30000&#039;&#039;: Sufficiently long timeouts to prevent premature disconnection of persistent WebSocket connections.&lt;br /&gt;
* &#039;&#039;http-request set-header X-Forwarded-Proto https&#039;&#039;: Preserves the original protocol (HTTPS) so that the innovaphone Reverse Proxy can correctly identify the scheme.&lt;br /&gt;
* &#039;&#039;http-request set-header Host&#039;&#039;: Sets the correct Host header for the backend, which is important for virtual host routing on the innovaphone Reverse Proxy.&lt;br /&gt;
* &#039;&#039;http-request set-header Upgrade&#039;&#039;: Passes the &#039;&#039;Upgrade&#039;&#039; header (e.g. &amp;quot;websocket&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
* &#039;&#039;http-request set-header Connection&#039;&#039;: Passes the &#039;&#039;Connection&#039;&#039; header (e.g. &amp;quot;Upgrade&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you are experiencing issues with WebSocket connections through HAProxy:&lt;br /&gt;
&lt;br /&gt;
* Review the HAProxy configuration for proper WebSocket handling (see parameters above)&lt;br /&gt;
* Check the HAProxy logs for any connection errors&lt;br /&gt;
* Ensure that timeout values are set appropriately for long-lived connections&lt;br /&gt;
* Verify that the Upgrade and Connection headers are being passed through correctly&lt;br /&gt;
* Test the WebSocket connection without HAProxy in the path to isolate the problem&lt;br /&gt;
&lt;br /&gt;
For detailed HAProxy WebSocket configuration, please refer to the official HAProxy documentation:&lt;br /&gt;
&lt;br /&gt;
[https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy HAProxy WebSocket Blog]&lt;br /&gt;
&lt;br /&gt;
== When to Open a Support Ticket ==&lt;br /&gt;
&lt;br /&gt;
If problems persist after reviewing and adjusting the HAProxy configuration, please open a support ticket with:&lt;br /&gt;
&lt;br /&gt;
* A pcap capture from the innovaphone Reverse Proxy (reverse proxy / all IPv4 TCP/UDP traffic / all IPv4 TLS traffic / enable RPCAP)&lt;br /&gt;
* The relevant Client ID&lt;br /&gt;
* Your HAProxy configuration (if available)&lt;br /&gt;
&lt;br /&gt;
[[Category:Reverse_Proxy]]&lt;br /&gt;
[[Category:Concept_Reverse_Proxy]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80131</id>
		<title>Howto16r1:Reverse Proxy with HAProxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80131"/>
		<updated>2026-07-13T14:09:58Z</updated>

		<summary type="html">&lt;p&gt;Slu: Fix list formatting and add HAProxy WebSocket config details - Co-Authored-By: Claude claude-opus-4-5-20251101&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to configure HAProxy to work with the innovaphone Reverse Proxy, specifically when using WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
When HAProxy is deployed in front of an innovaphone Reverse Proxy, WebSocket connections may not function correctly by default. This can cause issues such as:&lt;br /&gt;
&lt;br /&gt;
* myApps browser sessions reloading or disconnecting periodically (e.g. every 60 seconds)&lt;br /&gt;
* WebSocket-based services failing to establish stable connections&lt;br /&gt;
* Unexpected behavior with real-time communication features&lt;br /&gt;
&lt;br /&gt;
This happens because HAProxy requires specific configuration to handle WebSocket upgrades properly. The most common issue is that the WebSocket Upgrade/Connection headers are not passed through correctly, or the HTTP keep-alive behavior interferes with the persistent WebSocket connection.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
HAProxy needs to be configured to pass through the WebSocket upgrade headers correctly. The following configuration changes are required:&lt;br /&gt;
&lt;br /&gt;
* Enable HTTP keep-alive&lt;br /&gt;
* Pass through the Upgrade and Connection headers&lt;br /&gt;
* Configure proper timeouts for WebSocket connections&lt;br /&gt;
&lt;br /&gt;
The key is to add the correct headers to the backend configuration so that HAProxy does not interfere with the WebSocket upgrade process.&lt;br /&gt;
&lt;br /&gt;
== Configuration Example ==&lt;br /&gt;
&lt;br /&gt;
The following is a working HAProxy configuration example for connecting to an innovaphone Reverse Proxy:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;haproxy&amp;quot;&amp;gt;&lt;br /&gt;
frontend https-frontend&lt;br /&gt;
    bind *:443&lt;br /&gt;
    mode http&lt;br /&gt;
    option http-keep-alive&lt;br /&gt;
    timeout client 30000&lt;br /&gt;
    http-request set-var(txn.txnhost) hdr(host)&lt;br /&gt;
    use_backend innovaphone if { var(txn.txnhost) -m sub inovaphone }&lt;br /&gt;
&lt;br /&gt;
backend innovaphone&lt;br /&gt;
    mode http&lt;br /&gt;
    timeout connect 30000&lt;br /&gt;
    timeout server 30000&lt;br /&gt;
    http-request set-header X-Forwarded-Proto https&lt;br /&gt;
    http-request set-header Host 192.168.26.11&lt;br /&gt;
    http-request set-header X-Forwarded-Host inovaphone.example.com&lt;br /&gt;
    http-request set-header Upgrade %[hdr(upgrade)]&lt;br /&gt;
    http-request set-header Connection %[hdr(connection),lower]&lt;br /&gt;
    server innovaphone 192.168.26.11:80 check&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Key Parameters Explained ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;option http-keep-alive&#039;&#039; (frontend): Ensures that the frontend connection is kept alive and can be reused for multiple requests, including WebSocket upgrades.&lt;br /&gt;
* &#039;&#039;timeout client/server 30000&#039;&#039;: Sufficiently long timeouts to prevent premature disconnection of persistent WebSocket connections.&lt;br /&gt;
* &#039;&#039;http-request set-header X-Forwarded-Proto https&#039;&#039;: Preserves the original protocol (HTTPS) so that the innovaphone Reverse Proxy can correctly identify the scheme.&lt;br /&gt;
* &#039;&#039;http-request set-header Host&#039;&#039;: Sets the correct Host header for the backend, which is important for virtual host routing on the innovaphone Reverse Proxy.&lt;br /&gt;
* &#039;&#039;http-request set-header Upgrade&#039;&#039;: Passes the &#039;&#039;Upgrade&#039;&#039; header (e.g. &amp;quot;websocket&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
* &#039;&#039;http-request set-header Connection&#039;&#039;: Passes the &#039;&#039;Connection&#039;&#039; header (e.g. &amp;quot;Upgrade&amp;quot;) to the backend, which is required for the WebSocket handshake.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you are experiencing issues with WebSocket connections through HAProxy:&lt;br /&gt;
&lt;br /&gt;
* Review the HAProxy configuration for proper WebSocket handling (see parameters above)&lt;br /&gt;
* Check the HAProxy logs for any connection errors&lt;br /&gt;
* Ensure that timeout values are set appropriately for long-lived connections&lt;br /&gt;
* Verify that the Upgrade and Connection headers are being passed through correctly&lt;br /&gt;
* Test the WebSocket connection without HAProxy in the path to isolate the problem&lt;br /&gt;
&lt;br /&gt;
For detailed HAProxy WebSocket configuration, please refer to the official HAProxy documentation:&lt;br /&gt;
&lt;br /&gt;
[https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy HAProxy WebSocket Blog]&lt;br /&gt;
&lt;br /&gt;
== When to Open a Support Ticket ==&lt;br /&gt;
&lt;br /&gt;
If problems persist after reviewing and adjusting the HAProxy configuration, please open a support ticket with:&lt;br /&gt;
&lt;br /&gt;
* A pcap capture from the innovaphone Reverse Proxy (reverse proxy / all IPv4 TCP/UDP traffic / all IPv4 TLS traffic / enable RPCAP)&lt;br /&gt;
* The relevant Client ID&lt;br /&gt;
* Your HAProxy configuration (if available)&lt;br /&gt;
&lt;br /&gt;
[[Category:Reverse_Proxy]]&lt;br /&gt;
[[Category:Concept_Reverse_Proxy]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80130</id>
		<title>Howto16r1:Reverse Proxy with HAProxy</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Reverse_Proxy_with_HAProxy&amp;diff=80130"/>
		<updated>2026-07-13T14:05:54Z</updated>

		<summary type="html">&lt;p&gt;Slu: Create HAProxy WebSocket configuration guide - Co-Authored-By: Claude claude-opus-4-5-20251101&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explains how to configure HAProxy to work with the innovaphone Reverse Proxy, specifically when using WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
When HAProxy is deployed in front of an innovaphone Reverse Proxy, WebSocket connections may not function correctly by default. This can cause issues such as:&lt;br /&gt;
&lt;br /&gt;
- myApps browser sessions reloading or disconnecting periodically&lt;br /&gt;
- WebSocket-based services (like myApps) failing to establish stable connections&lt;br /&gt;
- Unexpected behavior with real-time communication features&lt;br /&gt;
&lt;br /&gt;
This happens because HAProxy requires specific configuration to handle WebSocket upgrades properly.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
HAProxy needs to be configured to pass through the WebSocket upgrade headers correctly. The following configuration changes are required:&lt;br /&gt;
&lt;br /&gt;
- Enable HTTP keep-alive&lt;br /&gt;
- Pass through the Upgrade and Connection headers&lt;br /&gt;
- Configure proper timeouts for WebSocket connections&lt;br /&gt;
&lt;br /&gt;
A working HAProxy configuration should include:&lt;br /&gt;
&lt;br /&gt;
== Configuration Example ==&lt;br /&gt;
&lt;br /&gt;
An example backend configuration for connecting to an innovaphone Reverse Proxy:&lt;br /&gt;
&lt;br /&gt;
- frontend http-in&lt;br /&gt;
- bind *:443 ssl crt /etc/ssl/private/cert.pem&lt;br /&gt;
- mode http&lt;br /&gt;
- option http-keep-alive&lt;br /&gt;
- timeout client 30000&lt;br /&gt;
- backend innovaphone&lt;br /&gt;
- mode http&lt;br /&gt;
- timeout connect 30000&lt;br /&gt;
- timeout server 30000&lt;br /&gt;
- server innovaphone &amp;lt;internal-IP&amp;gt;:80 check&lt;br /&gt;
&lt;br /&gt;
For detailed HAProxy WebSocket configuration, please refer to the official HAProxy documentation:&lt;br /&gt;
&lt;br /&gt;
[https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy HAProxy WebSocket Blog]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you are experiencing issues with WebSocket connections through HAProxy:&lt;br /&gt;
&lt;br /&gt;
- Review the HAProxy configuration for proper WebSocket handling&lt;br /&gt;
- Check the HAProxy logs for any connection errors&lt;br /&gt;
- Ensure that timeout values are set appropriately for long-lived connections&lt;br /&gt;
- Verify that the Upgrade and Connection headers are being passed through correctly&lt;br /&gt;
&lt;br /&gt;
If problems persist after reviewing the configuration, please open a support ticket with:&lt;br /&gt;
&lt;br /&gt;
- A pcap capture from the innovaphone Reverse Proxy&lt;br /&gt;
- The relevant Client ID&lt;br /&gt;
- Your HAProxy configuration (if available)&lt;br /&gt;
&lt;br /&gt;
[[Category:Reverse_Proxy]]&lt;br /&gt;
[[Category:Concept_Reverse_Proxy]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:IP6/ETH/IP6&amp;diff=80043</id>
		<title>Reference16r1:IP6/ETH/IP6</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:IP6/ETH/IP6&amp;diff=80043"/>
		<updated>2026-06-25T11:41:16Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Addresses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Address Configuration:&#039;&#039;&#039;&lt;br /&gt;
| Automatic or static IP6 address configuration&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Addresses ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;IP6 Address:&#039;&#039;&#039;&lt;br /&gt;
| The IP address used by the network adapter.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Prefix:&#039;&#039;&#039;&lt;br /&gt;
| Prefix in CIDR notation without slash&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gateway ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Default Gateway:&#039;&#039;&#039;&lt;br /&gt;
| The standard router used by the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Options==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Router Interface:&#039;&#039;&#039;&lt;br /&gt;
| Interface is router. Replies Router Solicitations with Router Advertisments, publishes routes and forwards packets.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Proxy ND:&#039;&#039;&#039;&lt;br /&gt;
| Enable replies to Neighbour Discovery requests if for queried IP6 address an active route exists&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Disabled:&#039;&#039;&#039; &lt;br /&gt;
| Disable the interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Static IP6 Routes ==&lt;br /&gt;
In the &#039;&#039;&#039;Static IP6 Routes&#039;&#039;&#039; section, additional network routes can be defined if other network areas apart from the local network are required.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Destination:&#039;&#039;&#039;&lt;br /&gt;
| The network address of the destination route.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Gateway:&#039;&#039;&#039;&lt;br /&gt;
| The gateway of the network being routed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IP6-Filter==&lt;br /&gt;
Definition of global IP6 address filters to protect the device from unauthorized access.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Enable:&#039;&#039;&#039;&lt;br /&gt;
| Consider defined filters&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;IP6-Filter-Address:&#039;&#039;&#039;&lt;br /&gt;
| The network address to be filtered.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;IP6-Filter-Port:&#039;&#039;&#039;&lt;br /&gt;
| The port to be filtered out of the defined network address.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Protocol:&#039;&#039;&#039;&lt;br /&gt;
| Protocol to which the filter is applied. UDP or TCP.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:IP6/ETH/IP6&amp;diff=80042</id>
		<title>Reference16r1:IP6/ETH/IP6</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:IP6/ETH/IP6&amp;diff=80042"/>
		<updated>2026-06-25T11:39:35Z</updated>

		<summary type="html">&lt;p&gt;Slu: Created page with &amp;quot;== Configuration == {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Address Configuration:&amp;#039;&amp;#039;&amp;#039; | Automatic or static IP6 address configuration |}  == Addresses == {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;IP6 Address:&amp;#039;&amp;#039;&amp;#039; | The IP6 address used by the network adapter. |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Prefix:&amp;#039;&amp;#039;&amp;#039; | tbd |}  == Gateway == {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Default Gateway:&amp;#039;&amp;#039;&amp;#039; | The standard router used by the device. |}  == Options== {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Router Interface:&amp;#039;&amp;#039;&amp;#039; | tbd |- |val...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Configuration ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Address Configuration:&#039;&#039;&#039;&lt;br /&gt;
| Automatic or static IP6 address configuration&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Addresses ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;IP6 Address:&#039;&#039;&#039;&lt;br /&gt;
| The IP6 address used by the network adapter.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Prefix:&#039;&#039;&#039;&lt;br /&gt;
| tbd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gateway ==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Default Gateway:&#039;&#039;&#039;&lt;br /&gt;
| The standard router used by the device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Options==&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Router Interface:&#039;&#039;&#039;&lt;br /&gt;
| tbd&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Proxy ND:&#039;&#039;&#039;&lt;br /&gt;
| Enable replies to Neighbour Discovery requests if for queried IP6 address an active route exists&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Disabled:&#039;&#039;&#039; &lt;br /&gt;
| Disable the interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Static IP6 Routes ==&lt;br /&gt;
In the &#039;&#039;&#039;Static IP6 Routes&#039;&#039;&#039; section, additional network routes can be defined, if other network areas apart from the local network are required.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Destination:&#039;&#039;&#039;&lt;br /&gt;
| The network address of the destination route.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Gateway:&#039;&#039;&#039;&lt;br /&gt;
| The standard gateway of the network being routed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IP6-Filter==&lt;br /&gt;
Definition of global IP6 address filters to protect the device from unauthorised access.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Enable:&#039;&#039;&#039;&lt;br /&gt;
| Consider defined filters&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;IP6-Filter-Address:&#039;&#039;&#039;&lt;br /&gt;
| The network address to be filtered.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;IP6-Filter-Port:&#039;&#039;&#039;&lt;br /&gt;
| The port to be filtered out of the defined network address.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Protocol:&#039;&#039;&#039;&lt;br /&gt;
| Protocol to which the filter is applied. UDP or TCP.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:IP6/General/Routing&amp;diff=80041</id>
		<title>Reference16r1:IP6/General/Routing</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:IP6/General/Routing&amp;diff=80041"/>
		<updated>2026-06-25T11:39:11Z</updated>

		<summary type="html">&lt;p&gt;Slu: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;routing&amp;#039;&amp;#039;&amp;#039; table of the current IP configuration of the device is displayed here. The table is used for fault analysis by the network administrator. The table is structured as follows:  {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Destination:&amp;#039;&amp;#039;&amp;#039; | The destination network. |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Gateway:&amp;#039;&amp;#039;&amp;#039; | The IP address of the router. |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Interface:&amp;#039;&amp;#039;&amp;#039; | Displays the interface on which the route was created. Possible interfaces are: &amp;#039;&amp;#039;ETH0, &amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;routing&#039;&#039;&#039; table of the current IP configuration of the device is displayed here. The table is used for fault analysis by the network administrator. The table is structured as follows:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Destination:&#039;&#039;&#039;&lt;br /&gt;
| The destination network.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Gateway:&#039;&#039;&#039;&lt;br /&gt;
| The IP address of the router.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Interface:&#039;&#039;&#039;&lt;br /&gt;
| Displays the interface on which the route was created. Possible interfaces are: &#039;&#039;ETH0, &#039;&#039;ETH1, &#039;&#039;PPP0-31&#039;&#039;, &#039;&#039;Local&#039;&#039; and &#039;&#039;ISDN&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Flag:&#039;&#039;&#039;&lt;br /&gt;
| Address flag.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:IP4/General/Routing&amp;diff=80040</id>
		<title>Reference16r1:IP4/General/Routing</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:IP4/General/Routing&amp;diff=80040"/>
		<updated>2026-06-25T11:36:49Z</updated>

		<summary type="html">&lt;p&gt;Slu: Created page with &amp;quot;The &amp;#039;&amp;#039;&amp;#039;routing&amp;#039;&amp;#039;&amp;#039; table of the current IP configuration of the device is displayed here. The table is used for fault analysis by the network administrator. The table is structured as follows:  {| |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Destination Network:&amp;#039;&amp;#039;&amp;#039; | The destination network address. |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Network Mask:&amp;#039;&amp;#039;&amp;#039; | The associated network mask. |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Gateway:&amp;#039;&amp;#039;&amp;#039; | The IP-Adresse of the router. |- |valign=top nowrap=true|&amp;#039;&amp;#039;&amp;#039;Interface:&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;routing&#039;&#039;&#039; table of the current IP configuration of the device is displayed here. The table is used for fault analysis by the network administrator. The table is structured as follows:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Destination Network:&#039;&#039;&#039;&lt;br /&gt;
| The destination network address.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Network Mask:&#039;&#039;&#039;&lt;br /&gt;
| The associated network mask.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Gateway:&#039;&#039;&#039;&lt;br /&gt;
| The IP-Adresse of the router.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Interface:&#039;&#039;&#039;&lt;br /&gt;
| Displays the interface on which the route was created. Possible interfaces are: &#039;&#039;ETH0, &#039;&#039;ETH1, &#039;&#039;PPP0-31&#039;&#039;, &#039;&#039;Local&#039;&#039; and &#039;&#039;ISDN&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;State:&#039;&#039;&#039;&lt;br /&gt;
| Possible states are: &#039;&#039;Up&#039;&#039; or &#039;&#039;Down&#039;&#039;.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Gateway/GK/GW&amp;diff=80035</id>
		<title>Reference16r1:Gateway/GK/GW</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Gateway/GK/GW&amp;diff=80035"/>
		<updated>2026-06-24T06:17:57Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Interface (VoIP Interfaces) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is an overview of all the gateway&#039;s configurable VoIP interfaces:&lt;br /&gt;
* &#039;&#039;&#039;Interface:&#039;&#039;&#039; The name of the interface. Clicking this name opens a popup page, on which all settings can be made. The settings are described in more detail in the following chapter &amp;quot;[[#Interface .28VoIP Interfaces.29|Administration/Gateway/VOIP/Interface (VoIP interfaces)]]&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;CGPN In, CDPN In, CGPN Out, CDPN Out:&#039;&#039;&#039; Precise details on CGPN In, CDPN In, CGPN Out and CDPN Out mappings are contained in the chapter entitled &amp;quot;[[#CGPN.2FCDPN Mappings|Administration/Gateway/Interfaces/CGPN-CDPN Mappings]]&amp;quot; further up in the text.&lt;br /&gt;
* &#039;&#039;&#039;Registration:&#039;&#039;&#039; If a terminal has successfully registered with a gateway, then this is indicated in this column through specification of the IP address &amp;lt;Name of the VoIP interface:Call number:IP address&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Interface (VoIP Interfaces) ==&lt;br /&gt;
Clicking the relevant VoIP interface (GW1-12 &amp;lt;Name of the VoIP interface&amp;gt;) in the Interface column opens a popup page, on which the VoIP interfaces can be individually configured. Like the PBX objects, this popup page also contains standard entry fields that occur, more or less, in all VoIP interfaces.&lt;br /&gt;
&lt;br /&gt;
These standard fields are:&lt;br /&gt;
* &#039;&#039;&#039;Name:&#039;&#039;&#039; The descriptive name of the VoIP interface.&lt;br /&gt;
* &#039;&#039;&#039;Disable:&#039;&#039;&#039; A checked check box disables the relevant VoIP interface.&lt;br /&gt;
* &#039;&#039;&#039;Protocol:&#039;&#039;&#039; The protocol to be used, that is, H.323 or SIP. Depending on which protocol is used, the set-up of the entry fields changes.&lt;br /&gt;
* &#039;&#039;&#039;Mode:&#039;&#039;&#039; Describes the mode of registration. Possible registration modes are:&lt;br /&gt;
# Gateway without Registration - Logs the VoIP interface (gateway) on to the configured gatekeeper without a registration.&lt;br /&gt;
# Register as Endpoint - Registers a VoIP terminal with the configured gatekeeper.&lt;br /&gt;
# Register as Gateway - Registers a VoIP gateway with the configured gatekeeper. &lt;br /&gt;
# Gatekeeper/Registrar - Is required for managing all gatekeeper registrations on a gateway. (is only visible when running in test-mode or if a gatekeeper license is available) &lt;br /&gt;
# ENUM - Is used to register an ENUM connection with the relevant interface.&lt;br /&gt;
* &#039;&#039;&#039;Gatekeeper Address (primary):&#039;&#039;&#039; The primary Gatekeeper IP address at which the terminal or gateway is to register via the relevant interface. Only necessary for modes 2 and 3. (IPv6 addresses must be enclosed in square brackets)&lt;br /&gt;
* &#039;&#039;&#039;Gatekeeper Address (secondary):&#039;&#039;&#039; The alternative gatekeeper IP address at which the terminal or gateway is to register via the relevant interface, if registration with the primary gatekeeper fails. Only necessary for modes 2 and 3. (IPv6 addresses must be enclosed in square brackets)&lt;br /&gt;
* &#039;&#039;&#039;Local Domain:&#039;&#039;&#039; Replaces the existing system/domain name (for H323 federation only).&lt;br /&gt;
* &#039;&#039;&#039;Mask:&#039;&#039;&#039; By specifying a network mask, incoming calls can be filtered. Specification of the network mask 255.255.0.0 therefore allows incoming calls on the relevant interface for terminals from the IP address range 192.168.0.0 - 192.168.255.255 .&lt;br /&gt;
* &#039;&#039;&#039;Gatekeeper Identifier:&#039;&#039;&#039; It is also sufficient to specify only the gatekeeper ID. Every gatekeeper in a network can be identified by means of its own gatekeeper ID, so that several gatekeepers can be operated in a network, with each terminal nevertheless identifying the correct gatekeeper by means of Gatekeeper Discovery (uses the multicast address 224.0.1.41).&lt;br /&gt;
* &#039;&#039;&#039;STUN SERVER:&#039;&#039;&#039; The STUN server name or IP address must be configured if this device has no public IP address while the SIP server is accessible under a public IP address. The value is given by the SIP provider or administrator (for example, stun.xten.com or 64.69.76.23). You can choose any STUN server; it does not necessarily have to correspond to the one of the SIP provider.&lt;br /&gt;
* &#039;&#039;&#039;Local Signalling Port:&#039;&#039;&#039; Signalling Port used by the Interface.&lt;br /&gt;
* &#039;&#039;&#039;SIP - Register as Gateway/Endpoint:&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Remote Domain (SIP Only):&#039;&#039;&#039; SIP Domain of the remote SIP Server to register (often equal to the SIP Proxy).&lt;br /&gt;
** &#039;&#039;&#039;Proxy (SIP Only):&#039;&#039;&#039; DNS name or IP address of the SIP proxy where SIP messages (REGISTER,INVITE,etc) are to be sent to. Proxy can be omitted if domain part of AOR can be used as remote signaling destination and it&#039;s set at Remote Domain.&lt;br /&gt;
* &#039;&#039;&#039;SIP - Gateway without Registration:&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Remote Domain (SIP Only):&#039;&#039;&#039; Check the Domain/IP Address on the SIP URI &amp;quot;FROM&amp;quot; field and removes it if match. &lt;br /&gt;
** &#039;&#039;&#039;Local Domain (SIP Only):&#039;&#039;&#039; Check the Domain/IP Address on the SIP URI &amp;quot;TO&amp;quot; field and removes it if match.&lt;br /&gt;
** &#039;&#039;&#039;Proxy (SIP Only):&#039;&#039;&#039; DNS name or IP address of the SIP proxy where SIP messages (INVITE,etc) are to be sent to, this field it&#039;s mandatory.&lt;br /&gt;
** &#039;&#039;&#039;Filter Incoming Calls (SIP Only):&#039;&#039;&#039; Accept Incoming Call on this interface only if the domain part of the &amp;quot;To:&amp;quot; field SIP URI matches the &#039;&#039;Local Domain&#039;&#039; configured. If not accepted, the call may still be accepted by another interface&lt;br /&gt;
* &#039;&#039;&#039;H323/TLS - Gateway without Registration&lt;br /&gt;
** &#039;&#039;&#039;Federation:&#039;&#039;&#039; Turns on open federation, which means the domain part of a destination name is used to look up the remote gateway in the DNS&lt;br /&gt;
** &#039;&#039;&#039;Veriyfy Cert:&#039;&#039;&#039; If set, the remote ceritficate on an incoming call is verified against the domain part of the source name&lt;br /&gt;
&lt;br /&gt;
=== Authorization section ===&lt;br /&gt;
In the &#039;&#039;&#039;Authorization&#039;&#039;&#039; section, you can store a password for the VoIP interface.&lt;br /&gt;
* &#039;&#039;&#039;Password / Retype:&#039;&#039;&#039; The security of the registration can be raised by specifying a password (Password). The password must be confirmed (Retype).&lt;br /&gt;
&lt;br /&gt;
=== Alias List section ===&lt;br /&gt;
In the &#039;&#039;&#039;Alias List&#039;&#039;&#039; section, you specify the call name (H.323) and the call number (E.164) of the relevant registration. For VoIP end points, you should define the assigned direct dialling number or MSN as the E.164 address, and the name as the H.323 name. For VoIP gateways it is sufficient to define the name.&lt;br /&gt;
* &#039;&#039;&#039;Name:&#039;&#039;&#039; The H.323 name.&lt;br /&gt;
* &#039;&#039;&#039;Number:&#039;&#039;&#039; The E.164 call number.&lt;br /&gt;
&lt;br /&gt;
=== Coder Preferences section ===&lt;br /&gt;
The standard entry fields in the &#039;&#039;&#039;Coder Preferences&#039;&#039;&#039; section were already described in chapter &amp;quot;[[Reference:Administration/Gateway/Interfaces#Interface .28ISDN.2C SIP .26 virtual interfaces.29|Administration/Gateway/Interfaces/Interface (physical and virtual interfaces)]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Media Properties ===&lt;br /&gt;
The standard entry fields in the &#039;&#039;&#039;Media Properties&#039;&#039;&#039; section were already described [[{{NAMESPACE}}:Gateway/Interfaces/Media_Properties | Media Properties]].&lt;br /&gt;
&lt;br /&gt;
=== H.323 Interop Tweaks section ===&lt;br /&gt;
In addition to the standard fields, several advanced settings are available in the &#039;&#039;&#039;H.323 Interop Tweaks&#039;&#039;&#039; section. They are normally not necessary and are merely used to solve compatibility problems with some PBXs:&lt;br /&gt;
* &#039;&#039;&#039;No Faststart:&#039;&#039;&#039; The H.245 faststart procedure is enabled as standard. Outgoing calls are made with faststart, incoming calls with faststart are answered with faststart.&amp;lt;br&amp;gt;A checked check box disables the H.245 faststart procedure. Outgoing calls are made without faststart, incoming calls with and without faststart are answered without faststart.&lt;br /&gt;
* &#039;&#039;&#039;No H.245 Tunneling:&#039;&#039;&#039; The H.245 tunneling procedure is enabled as standard. The voice data connection is negotiated in the TCP signalling connection*) already available. This can be advantageous in connection with NAT and firewalls.&lt;br /&gt;
A checked check box disables the H.245 tunneling procedure, meaning that a separate TCP connection is set up for this negotiation. This applies to the signalling connection leading out of the gatekeeper.&lt;br /&gt;
* &#039;&#039;&#039;Suppress HLC:&#039;&#039;&#039; A checked check box disables the transmission of HLC (High Layer Compatibility) information elements.&lt;br /&gt;
* &#039;&#039;&#039;Suppress FTY:&#039;&#039;&#039; A checked check box disables the transmission of FTY (Facility) information elements.&lt;br /&gt;
* &#039;&#039;&#039;Suppress Subaddress:&#039;&#039;&#039; A checked check box disables the transmission of Subaddress information elements.&lt;br /&gt;
 *) From a technical viewpoint, the H.245 protocol does not establish its own TCP connection, &lt;br /&gt;
 but shares the H.225 TCP connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SIP Interop Tweaks section ===&lt;br /&gt;
Miscellaneous interoperability options for SIP.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Proposed Registration Interval&#039;&#039;&#039;&lt;br /&gt;
|Set in seconds, default is 120 seconds&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Accept INVITE&#039;s from Anywhere&#039;&#039;&#039;&lt;br /&gt;
|If disabled, registered interfaces will reject INVITE&#039;s not coming from the SIP server with &amp;quot;305 Use Proxy&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Enforce Sending Complete&#039;&#039;&#039;&lt;br /&gt;
|Affects handling of &amp;quot;484 Address Incomplete&amp;quot; responses. If enabled and &amp;quot;484 Address Incomplete&amp;quot; is received, the call is cleared. If not enabled and &amp;quot;484 Address Incomplete&amp;quot; is received, the call is retained and re-initiated in case of new dialing digits.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Video&#039;&#039;&#039;&lt;br /&gt;
|Removes Video Capabilities from outgoing media offer.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Early Media&#039;&#039;&#039;&lt;br /&gt;
|Ignore any SDP answer received before final connect response. (Affects only outgoing SIP calls)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Inband Information on Error&#039;&#039;&#039;&lt;br /&gt;
|Controls interworking of Q.931 DISC message. If this option is set, DISC message is always interworked into BYE request.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Inband Disconnect&#039;&#039;&#039;&lt;br /&gt;
|TBD.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Remote Hold Signaling&#039;&#039;&#039;&lt;br /&gt;
|Disables interworking of &amp;quot;inactive&amp;quot; into RemoteHold (affects connected SIP calls only).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Take Refer-To URI as Remote Target URI&#039;&#039;&#039;&lt;br /&gt;
|If enabled: When REFER is received and transfer is executed by the Gateway application and a new INVITE is sent, the Request-URI of this INVITE matches the URI that has been received in Refer-To header in REFER.&amp;lt;br/&amp;gt;&lt;br /&gt;
If not enabled: The Request-URI of the outgoing INVITE is created by usual means. Userpart of the Request-URI usually contains the CDPN as provided by Gateway application.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;To Header when Sending INVITE&#039;&#039;&#039;&lt;br /&gt;
|Affects only outgoing diverted calls . &#039;&#039;&#039;Called Party&#039;&#039;&#039;: If set we write CDPN into To header of outgoing INVITE (and DGPN into History-Info header). &#039;&#039;&#039;Original Called Party&#039;&#039;&#039;: If set we write the DGPN into To header of outgoing INVITE (and CDPN into Request-URI).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;From Header when Sending INVITE&#039;&#039;&#039;&lt;br /&gt;
|Controls the local URI (From header) of outgoing calls. Applys to registered interfaces only. &#039;&#039;&#039;Fixed AOR&#039;&#039;&#039;: Fixed AOR is used as From-URI regardless of the actual calling party number. &#039;&#039;&#039;AOR with CGPN as Display&#039;&#039;&#039;: Fixed AOR is used as From-URI and calling party number is added as display string. &#039;&#039;&#039;CGPN in user part of URI&#039;&#039;&#039;: Variable From-URI with actual calling party number.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Identity Header when Sending INVITE&#039;&#039;&#039;&lt;br /&gt;
|Controls the identity header (P-Preferred-Identity, P-Asserted-Identity and Remote-Party-Id). &#039;&#039;&#039;CGPN in user part of URI&#039;&#039;&#039;: Variable From-URI with actual calling party number. &#039;&#039;&#039;Fixed AOR&#039;&#039;&#039;: Fixed AOR is used as Identity-URI regardless of the actual calling party number.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Reliability of Provisional Responses&#039;&#039;&#039;&lt;br /&gt;
|Controls the support of PRACK (RFC-3262). &#039;&#039;&#039;Supported&#039;&#039;&#039;: Supported as optional extension. &#039;&#039;&#039;Required&#039;&#039;&#039;: Required as mandatory extension. &#039;&#039;&#039;Disabled&#039;&#039;&#039;: Hide support for PRACK extension.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Microsoft Presence Format&#039;&#039;&#039;&lt;br /&gt;
|Enables special Microsoft Presence format/scheme, only used for SIP Federation with Lync 2013.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CGPN/CDPN Mappings ==&lt;br /&gt;
A detailed description may be found in the chapter entitled &amp;quot;[[Reference:Administration/Gateway/Interfaces#CGPN.2FCDPN Mappings|Administration/Gateway/Interface/CGPN-CDPN Mappings]]&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Gateway/GK/GW&amp;diff=80034</id>
		<title>Reference16r1:Gateway/GK/GW</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Gateway/GK/GW&amp;diff=80034"/>
		<updated>2026-06-24T06:16:12Z</updated>

		<summary type="html">&lt;p&gt;Slu: Created page with &amp;quot;Below is an overview of all the gateway&amp;#039;s configurable VoIP interfaces: * &amp;#039;&amp;#039;&amp;#039;Interface:&amp;#039;&amp;#039;&amp;#039; The name of the interface. Clicking this name opens a popup page, on which all settings can be made. The settings are described in more detail in the following chapter &amp;quot;Administration/Gateway/VOIP/Interface (VoIP interfaces)&amp;quot;. * &amp;#039;&amp;#039;&amp;#039;CGPN In, CDPN In, CGPN Out, CDPN Out:&amp;#039;&amp;#039;&amp;#039; Precise details on CGPN In, CDPN In, CGPN Out and CDPN Out mappings are co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is an overview of all the gateway&#039;s configurable VoIP interfaces:&lt;br /&gt;
* &#039;&#039;&#039;Interface:&#039;&#039;&#039; The name of the interface. Clicking this name opens a popup page, on which all settings can be made. The settings are described in more detail in the following chapter &amp;quot;[[#Interface_.28VoIP_Interfaces.29|Administration/Gateway/VOIP/Interface (VoIP interfaces)]]&amp;quot;.&lt;br /&gt;
* &#039;&#039;&#039;CGPN In, CDPN In, CGPN Out, CDPN Out:&#039;&#039;&#039; Precise details on CGPN In, CDPN In, CGPN Out and CDPN Out mappings are contained in the chapter entitled &amp;quot;[[#CGPN.2FCDPN_Mappings|Administration/Gateway/Interfaces/CGPN-CDPN Mappings]]&amp;quot; further up in the text.&lt;br /&gt;
* &#039;&#039;&#039;Registration:&#039;&#039;&#039; If a terminal has successfully registered with a gateway, then this is indicated in this column through specification of the IP address &amp;lt;Name of the VoIP interface:Call number:IP address&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Interface (VoIP Interfaces) ==&lt;br /&gt;
Clicking the relevant VoIP interface (GW1-12 &amp;lt;Name of the VoIP interface&amp;gt;) in the Interface column opens a popup page, on which the VoIP interfaces can be individually configured. Like the PBX objects, this popup page also contains standard entry fields that occur, more or less, in all VoIP interfaces.&lt;br /&gt;
&lt;br /&gt;
These standard fields are:&lt;br /&gt;
* &#039;&#039;&#039;Name:&#039;&#039;&#039; The descriptive name of the VoIP interface.&lt;br /&gt;
* &#039;&#039;&#039;Disable:&#039;&#039;&#039; A checked check box disables the relevant VoIP interface.&lt;br /&gt;
* &#039;&#039;&#039;Protocol:&#039;&#039;&#039; The protocol to be used, that is, H.323 or SIP. Depending on which protocol is used, the set-up of the entry fields changes.&lt;br /&gt;
* &#039;&#039;&#039;Mode:&#039;&#039;&#039; Describes the mode of registration. Possible registration modes are:&lt;br /&gt;
# Gateway without Registration - Logs the VoIP interface (gateway) on to the configured gatekeeper without a registration.&lt;br /&gt;
# Register as Endpoint - Registers a VoIP terminal with the configured gatekeeper.&lt;br /&gt;
# Register as Gateway - Registers a VoIP gateway with the configured gatekeeper. &lt;br /&gt;
# Gatekeeper/Registrar - Is required for managing all gatekeeper registrations on a gateway. (is only visible when running in test-mode or if a gatekeeper license is available) &lt;br /&gt;
# ENUM - Is used to register an ENUM connection with the relevant interface.&lt;br /&gt;
* &#039;&#039;&#039;Gatekeeper Address (primary):&#039;&#039;&#039; The primary Gatekeeper IP address at which the terminal or gateway is to register via the relevant interface. Only necessary for modes 2 and 3.&lt;br /&gt;
* &#039;&#039;&#039;Gatekeeper Address (secondary):&#039;&#039;&#039; The alternative gatekeeper IP address at which the terminal or gateway is to register via the relevant interface, if registration with the primary gatekeeper fails. Only necessary for modes 2 and 3 .&lt;br /&gt;
* &#039;&#039;&#039;Local Domain:&#039;&#039;&#039; Replaces the existing system/domain name (for H323 federation only).&lt;br /&gt;
* &#039;&#039;&#039;Mask:&#039;&#039;&#039; By specifying a network mask, incoming calls can be filtered. Specification of the network mask 255.255.0.0 therefore allows incoming calls on the relevant interface for terminals from the IP address range 192.168.0.0 - 192.168.255.255 .&lt;br /&gt;
* &#039;&#039;&#039;Gatekeeper Identifier:&#039;&#039;&#039; It is also sufficient to specify only the gatekeeper ID. Every gatekeeper in a network can be identified by means of its own gatekeeper ID, so that several gatekeepers can be operated in a network, with each terminal nevertheless identifying the correct gatekeeper by means of Gatekeeper Discovery (uses the multicast address 224.0.1.41).&lt;br /&gt;
* &#039;&#039;&#039;STUN SERVER:&#039;&#039;&#039; The STUN server name or IP address must be configured if this device has no public IP address while the SIP server is accessible under a public IP address. The value is given by the SIP provider or administrator (for example, stun.xten.com or 64.69.76.23). You can choose any STUN server; it does not necessarily have to correspond to the one of the SIP provider.&lt;br /&gt;
* &#039;&#039;&#039;Local Signalling Port:&#039;&#039;&#039; Signalling Port used by the Interface.&lt;br /&gt;
* &#039;&#039;&#039;SIP - Register as Gateway/Endpoint:&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Remote Domain (SIP Only):&#039;&#039;&#039; SIP Domain of the remote SIP Server to register (often equal to the SIP Proxy).&lt;br /&gt;
** &#039;&#039;&#039;Proxy (SIP Only):&#039;&#039;&#039; DNS name or IP address of the SIP proxy where SIP messages (REGISTER,INVITE,etc) are to be sent to. Proxy can be omitted if domain part of AOR can be used as remote signaling destination and it&#039;s set at Remote Domain.&lt;br /&gt;
* &#039;&#039;&#039;SIP - Gateway without Registration:&#039;&#039;&#039; &lt;br /&gt;
** &#039;&#039;&#039;Remote Domain (SIP Only):&#039;&#039;&#039; Check the Domain/IP Address on the SIP URI &amp;quot;FROM&amp;quot; field and removes it if match. &lt;br /&gt;
** &#039;&#039;&#039;Local Domain (SIP Only):&#039;&#039;&#039; Check the Domain/IP Address on the SIP URI &amp;quot;TO&amp;quot; field and removes it if match.&lt;br /&gt;
** &#039;&#039;&#039;Proxy (SIP Only):&#039;&#039;&#039; DNS name or IP address of the SIP proxy where SIP messages (INVITE,etc) are to be sent to, this field it&#039;s mandatory.&lt;br /&gt;
** &#039;&#039;&#039;Filter Incoming Calls (SIP Only):&#039;&#039;&#039; Accept Incoming Call on this interface only if the domain part of the &amp;quot;To:&amp;quot; field SIP URI matches the &#039;&#039;Local Domain&#039;&#039; configured. If not accepted, the call may still be accepted by another interface&lt;br /&gt;
* &#039;&#039;&#039;H323/TLS - Gateway without Registration&lt;br /&gt;
** &#039;&#039;&#039;Federation:&#039;&#039;&#039; Turns on open federation, which means the domain part of a destination name is used to look up the remote gateway in the DNS&lt;br /&gt;
** &#039;&#039;&#039;Veriyfy Cert:&#039;&#039;&#039; If set, the remote ceritficate on an incoming call is verified against the domain part of the source name&lt;br /&gt;
&lt;br /&gt;
=== Authorization section ===&lt;br /&gt;
In the &#039;&#039;&#039;Authorization&#039;&#039;&#039; section, you can store a password for the VoIP interface.&lt;br /&gt;
* &#039;&#039;&#039;Password / Retype:&#039;&#039;&#039; The security of the registration can be raised by specifying a password (Password). The password must be confirmed (Retype).&lt;br /&gt;
&lt;br /&gt;
=== Alias List section ===&lt;br /&gt;
In the &#039;&#039;&#039;Alias List&#039;&#039;&#039; section, you specify the call name (H.323) and the call number (E.164) of the relevant registration. For VoIP end points, you should define the assigned direct dialling number or MSN as the E.164 address, and the name as the H.323 name. For VoIP gateways it is sufficient to define the name.&lt;br /&gt;
* &#039;&#039;&#039;Name:&#039;&#039;&#039; The H.323 name.&lt;br /&gt;
* &#039;&#039;&#039;Number:&#039;&#039;&#039; The E.164 call number.&lt;br /&gt;
&lt;br /&gt;
=== Coder Preferences section ===&lt;br /&gt;
The standard entry fields in the &#039;&#039;&#039;Coder Preferences&#039;&#039;&#039; section were already described in chapter &amp;quot;[[Reference:Administration/Gateway/Interfaces#Interface_.28ISDN.2C_SIP_.26_virtual_interfaces.29|Administration/Gateway/Interfaces/Interface (physical and virtual interfaces)]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Media Properties ===&lt;br /&gt;
The standard entry fields in the &#039;&#039;&#039;Media Properties&#039;&#039;&#039; section were already described [[{{NAMESPACE}}:Gateway/Interfaces/Media_Properties | Media Properties]].&lt;br /&gt;
&lt;br /&gt;
=== H.323 Interop Tweaks section ===&lt;br /&gt;
In addition to the standard fields, several advanced settings are available in the &#039;&#039;&#039;H.323 Interop Tweaks&#039;&#039;&#039; section. They are normally not necessary and are merely used to solve compatibility problems with some PBXs:&lt;br /&gt;
* &#039;&#039;&#039;No Faststart:&#039;&#039;&#039; The H.245 faststart procedure is enabled as standard. Outgoing calls are made with faststart, incoming calls with faststart are answered with faststart.&amp;lt;br&amp;gt;A checked check box disables the H.245 faststart procedure. Outgoing calls are made without faststart, incoming calls with and without faststart are answered without faststart.&lt;br /&gt;
* &#039;&#039;&#039;No H.245 Tunneling:&#039;&#039;&#039; The H.245 tunneling procedure is enabled as standard. The voice data connection is negotiated in the TCP signalling connection*) already available. This can be advantageous in connection with NAT and firewalls.&lt;br /&gt;
A checked check box disables the H.245 tunneling procedure, meaning that a separate TCP connection is set up for this negotiation. This applies to the signalling connection leading out of the gatekeeper.&lt;br /&gt;
* &#039;&#039;&#039;Suppress HLC:&#039;&#039;&#039; A checked check box disables the transmission of HLC (High Layer Compatibility) information elements.&lt;br /&gt;
* &#039;&#039;&#039;Suppress FTY:&#039;&#039;&#039; A checked check box disables the transmission of FTY (Facility) information elements.&lt;br /&gt;
* &#039;&#039;&#039;Suppress Subaddress:&#039;&#039;&#039; A checked check box disables the transmission of Subaddress information elements.&lt;br /&gt;
 *) From a technical viewpoint, the H.245 protocol does not establish its own TCP connection, &lt;br /&gt;
 but shares the H.225 TCP connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SIP Interop Tweaks section ===&lt;br /&gt;
Miscellaneous interoperability options for SIP.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Proposed Registration Interval&#039;&#039;&#039;&lt;br /&gt;
|Set in seconds, default is 120 seconds&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Accept INVITE&#039;s from Anywhere&#039;&#039;&#039;&lt;br /&gt;
|If disabled, registered interfaces will reject INVITE&#039;s not coming from the SIP server with &amp;quot;305 Use Proxy&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Enforce Sending Complete&#039;&#039;&#039;&lt;br /&gt;
|Affects handling of &amp;quot;484 Address Incomplete&amp;quot; responses. If enabled and &amp;quot;484 Address Incomplete&amp;quot; is received, the call is cleared. If not enabled and &amp;quot;484 Address Incomplete&amp;quot; is received, the call is retained and re-initiated in case of new dialing digits.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Video&#039;&#039;&#039;&lt;br /&gt;
|Removes Video Capabilities from outgoing media offer.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Early Media&#039;&#039;&#039;&lt;br /&gt;
|Ignore any SDP answer received before final connect response. (Affects only outgoing SIP calls)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Inband Information on Error&#039;&#039;&#039;&lt;br /&gt;
|Controls interworking of Q.931 DISC message. If this option is set, DISC message is always interworked into BYE request.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Inband Disconnect&#039;&#039;&#039;&lt;br /&gt;
|TBD.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;No Remote Hold Signaling&#039;&#039;&#039;&lt;br /&gt;
|Disables interworking of &amp;quot;inactive&amp;quot; into RemoteHold (affects connected SIP calls only).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Take Refer-To URI as Remote Target URI&#039;&#039;&#039;&lt;br /&gt;
|If enabled: When REFER is received and transfer is executed by the Gateway application and a new INVITE is sent, the Request-URI of this INVITE matches the URI that has been received in Refer-To header in REFER.&amp;lt;br/&amp;gt;&lt;br /&gt;
If not enabled: The Request-URI of the outgoing INVITE is created by usual means. Userpart of the Request-URI usually contains the CDPN as provided by Gateway application.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;To Header when Sending INVITE&#039;&#039;&#039;&lt;br /&gt;
|Affects only outgoing diverted calls . &#039;&#039;&#039;Called Party&#039;&#039;&#039;: If set we write CDPN into To header of outgoing INVITE (and DGPN into History-Info header). &#039;&#039;&#039;Original Called Party&#039;&#039;&#039;: If set we write the DGPN into To header of outgoing INVITE (and CDPN into Request-URI).&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;From Header when Sending INVITE&#039;&#039;&#039;&lt;br /&gt;
|Controls the local URI (From header) of outgoing calls. Applys to registered interfaces only. &#039;&#039;&#039;Fixed AOR&#039;&#039;&#039;: Fixed AOR is used as From-URI regardless of the actual calling party number. &#039;&#039;&#039;AOR with CGPN as Display&#039;&#039;&#039;: Fixed AOR is used as From-URI and calling party number is added as display string. &#039;&#039;&#039;CGPN in user part of URI&#039;&#039;&#039;: Variable From-URI with actual calling party number.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Identity Header when Sending INVITE&#039;&#039;&#039;&lt;br /&gt;
|Controls the identity header (P-Preferred-Identity, P-Asserted-Identity and Remote-Party-Id). &#039;&#039;&#039;CGPN in user part of URI&#039;&#039;&#039;: Variable From-URI with actual calling party number. &#039;&#039;&#039;Fixed AOR&#039;&#039;&#039;: Fixed AOR is used as Identity-URI regardless of the actual calling party number.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Reliability of Provisional Responses&#039;&#039;&#039;&lt;br /&gt;
|Controls the support of PRACK (RFC-3262). &#039;&#039;&#039;Supported&#039;&#039;&#039;: Supported as optional extension. &#039;&#039;&#039;Required&#039;&#039;&#039;: Required as mandatory extension. &#039;&#039;&#039;Disabled&#039;&#039;&#039;: Hide support for PRACK extension.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top nowrap=true|&#039;&#039;&#039;Microsoft Presence Format&#039;&#039;&#039;&lt;br /&gt;
|Enables special Microsoft Presence format/scheme, only used for SIP Federation with Lync 2013.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CGPN/CDPN Mappings ==&lt;br /&gt;
A detailed description may be found in the chapter entitled &amp;quot;[[Reference:Administration/Gateway/Interfaces#CGPN.2FCDPN_Mappings|Administration/Gateway/Interface/CGPN-CDPN Mappings]]&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Innovaphones_public_services&amp;diff=79998</id>
		<title>Howto:Innovaphones public services</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Innovaphones_public_services&amp;diff=79998"/>
		<updated>2026-06-16T13:42:51Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Keywords: public ips, innovaphone ips, firewall --&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* All versions&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
Some services or products use a data connection to the vendor system. Innovaphone will provide his services from the following IP-networks:  &lt;br /&gt;
&lt;br /&gt;
 46.232.228.0/26&lt;br /&gt;
 213.144.10.192/29&lt;br /&gt;
 141.95.57.16/28&lt;br /&gt;
 185.145.188.12/32 # push NRW-RZ1&lt;br /&gt;
 2a06:d840::12/128 # push NRW-RZ1&lt;br /&gt;
&lt;br /&gt;
To configure your firewall accordingly, allow those entire networks as shown above. We suggest allowing traffic on the target DNS resolution eg. push.innovaphone.com.&lt;br /&gt;
&lt;br /&gt;
=== STUN ===&lt;br /&gt;
[[Reference12r2:IP4/General/STUN|STUN Service]] for all customers&lt;br /&gt;
 stun.innovaphone.com (udp/3478)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: [http://wiki.innovaphone.com/index.php?title=Course13:IT_Advanced_2_-_07_Public_access_to_PBX_resources_%28practice%29#Media_data It is not a good idea to use innovaphone&#039;s STUN server. Although this server would yield the same results, there is no guarantee of availability. Your ISP or SIP provider&#039;s STUN should do better]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TURN ===&lt;br /&gt;
[[Reference13r3:IP4/General/STUN#TURN Extern|TURN fallback service]] on port 443 for all customers&lt;br /&gt;
 turn-fallback.innovaphone.com (tcp/443)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: This TURN server shall only be used as 443 fallback server. It is not intended to be used as your [[Reference13r3:IP4/General/STUN#TURN Servers| regular TURN server]] as it is not designed as a primary TURN server. Do not use turn.innovaphone.com either.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Provisioning ===&lt;br /&gt;
[[Reference13r1:Concept Provisioning|Provisioning System]] for all devices&lt;br /&gt;
 config.innovaphone.com (tcp/http/https)&lt;br /&gt;
&lt;br /&gt;
=== Push ===&lt;br /&gt;
[[Reference13r2:Concept Push Notifications for iOS and Android|Push]] for iOS, Android, Huawei and Browser Clients&lt;br /&gt;
 push.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
=== Store ===&lt;br /&gt;
 store.innovaphone.com (tcp/http/https)&lt;br /&gt;
&lt;br /&gt;
=== Devices/Rental ===&lt;br /&gt;
 my-app.innovaphone.com (tcp/https)&lt;br /&gt;
&lt;br /&gt;
=== NTP ===&lt;br /&gt;
[[Reference13r1:Services/NTP|NTP Service]] for all customers&lt;br /&gt;
 ntp.innovaphone.com (udp/123)&lt;br /&gt;
&lt;br /&gt;
=== Remote Control Central ID service ===&lt;br /&gt;
[[Reference16r1:Concept App Remote Control#Central ID service server| Central ID service server]]&lt;br /&gt;
 remotecontrol.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
=== Connector for Whatsapp ===&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Whatsapp| App Connector for Whatsapp]]&lt;br /&gt;
 whatsapp.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
==Certificates==&lt;br /&gt;
innovaphone provides a public certificate download for used public keys.&lt;br /&gt;
&lt;br /&gt;
* https://download.innovaphone.com/certificates/innovaphone.pem (the current innovaphone public key which will used for example for our push service)&lt;br /&gt;
* https://download.innovaphone.com/certificates/ca.pem (all innovaphone Device Certification Authority public keys)&lt;br /&gt;
* https://download.innovaphone.com/certificates/ca-unverified.pem (all innovaphone Unverified Device Certification Authority public keys)&lt;br /&gt;
** The Unverified CA is used for non hardware devices, e.g. IPVAs, which are not shipped with an official innovaphone Device Certification Authority certificate, as innovaphone has no control over the serial number here.&lt;br /&gt;
&lt;br /&gt;
If needed, you can trust them manually or distribute them via [[Reference14r1:Concept App Service Devices#Certificates configuration|device&#039;s configuration]].&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Reference13r2:Concept_Push_Notifications_for_iOS_and_Android]]&lt;br /&gt;
* [[Concept Status innovaphone Services]]&lt;br /&gt;
* [[Reference13r1:Concept_Provisioning]]&lt;br /&gt;
* [[Howto:Update_innovaphone.com_Wildcard-Certificate_in_a_Device_Trustlist]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Faq|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Innovaphones_public_services&amp;diff=79996</id>
		<title>Howto:Innovaphones public services</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Innovaphones_public_services&amp;diff=79996"/>
		<updated>2026-06-16T13:31:39Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Keywords: public ips, innovaphone ips, firewall --&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* All versions&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
Some services or products use a data connection to the vendor system. Innovaphone will provide his services from the following IP-networks:  &lt;br /&gt;
&lt;br /&gt;
 46.232.228.0/26&lt;br /&gt;
 213.144.10.192/29&lt;br /&gt;
 141.95.57.16/28&lt;br /&gt;
 45.133.189.205/32 # will be removed soon, push NRW-RZ1&lt;br /&gt;
 2a0f:ff00:2001:366::21/128 # will be removed soon, push NRW-RZ1&lt;br /&gt;
 185.145.188.12/32 # upcoming, push NRW-RZ1&lt;br /&gt;
 2a06:d840::12/128 # upcoming, push NRW-RZ1&lt;br /&gt;
&lt;br /&gt;
To configure your firewall accordingly, allow those entire networks as shown above. We suggest allowing traffic on the target DNS resolution eg. push.innovaphone.com.&lt;br /&gt;
&lt;br /&gt;
=== STUN ===&lt;br /&gt;
[[Reference12r2:IP4/General/STUN|STUN Service]] for all customers&lt;br /&gt;
 stun.innovaphone.com (udp/3478)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: [http://wiki.innovaphone.com/index.php?title=Course13:IT_Advanced_2_-_07_Public_access_to_PBX_resources_%28practice%29#Media_data It is not a good idea to use innovaphone&#039;s STUN server. Although this server would yield the same results, there is no guarantee of availability. Your ISP or SIP provider&#039;s STUN should do better]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TURN ===&lt;br /&gt;
[[Reference13r3:IP4/General/STUN#TURN Extern|TURN fallback service]] on port 443 for all customers&lt;br /&gt;
 turn-fallback.innovaphone.com (tcp/443)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: This TURN server shall only be used as 443 fallback server. It is not intended to be used as your [[Reference13r3:IP4/General/STUN#TURN Servers| regular TURN server]] as it is not designed as a primary TURN server. Do not use turn.innovaphone.com either.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Provisioning ===&lt;br /&gt;
[[Reference13r1:Concept Provisioning|Provisioning System]] for all devices&lt;br /&gt;
 config.innovaphone.com (tcp/http/https)&lt;br /&gt;
&lt;br /&gt;
=== Push ===&lt;br /&gt;
[[Reference13r2:Concept Push Notifications for iOS and Android|Push]] for iOS, Android, Huawei and Browser Clients&lt;br /&gt;
 push.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
=== Store ===&lt;br /&gt;
 store.innovaphone.com (tcp/http/https)&lt;br /&gt;
&lt;br /&gt;
=== Devices/Rental ===&lt;br /&gt;
 my-app.innovaphone.com (tcp/https)&lt;br /&gt;
&lt;br /&gt;
=== NTP ===&lt;br /&gt;
[[Reference13r1:Services/NTP|NTP Service]] for all customers&lt;br /&gt;
 ntp.innovaphone.com (udp/123)&lt;br /&gt;
&lt;br /&gt;
=== Remote Control Central ID service ===&lt;br /&gt;
[[Reference16r1:Concept App Remote Control#Central ID service server| Central ID service server]]&lt;br /&gt;
 remotecontrol.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
=== Connector for Whatsapp ===&lt;br /&gt;
[[Reference16r1:Concept App Service Connector for Whatsapp| App Connector for Whatsapp]]&lt;br /&gt;
 whatsapp.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
==Certificates==&lt;br /&gt;
innovaphone provides a public certificate download for used public keys.&lt;br /&gt;
&lt;br /&gt;
* https://download.innovaphone.com/certificates/innovaphone.pem (the current innovaphone public key which will used for example for our push service)&lt;br /&gt;
* https://download.innovaphone.com/certificates/ca.pem (all innovaphone Device Certification Authority public keys)&lt;br /&gt;
* https://download.innovaphone.com/certificates/ca-unverified.pem (all innovaphone Unverified Device Certification Authority public keys)&lt;br /&gt;
** The Unverified CA is used for non hardware devices, e.g. IPVAs, which are not shipped with an official innovaphone Device Certification Authority certificate, as innovaphone has no control over the serial number here.&lt;br /&gt;
&lt;br /&gt;
If needed, you can trust them manually or distribute them via [[Reference14r1:Concept App Service Devices#Certificates configuration|device&#039;s configuration]].&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Reference13r2:Concept_Push_Notifications_for_iOS_and_Android]]&lt;br /&gt;
* [[Concept Status innovaphone Services]]&lt;br /&gt;
* [[Reference13r1:Concept_Provisioning]]&lt;br /&gt;
* [[Howto:Update_innovaphone.com_Wildcard-Certificate_in_a_Device_Trustlist]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Faq|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Innovaphones_public_services&amp;diff=79995</id>
		<title>Howto:Innovaphones public services</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Innovaphones_public_services&amp;diff=79995"/>
		<updated>2026-06-16T12:36:19Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Keywords: public ips, innovaphone ips, firewall --&amp;gt;&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* All versions&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
Some services or products use a data connection to the vendor system. Innovaphone will provide his services from the following IP-networks:  &lt;br /&gt;
&lt;br /&gt;
 46.232.228.0/26&lt;br /&gt;
 213.144.10.192/29&lt;br /&gt;
 141.95.57.16/28&lt;br /&gt;
 45.133.189.205/32 # will be removed soon, push NRW-RZ1&lt;br /&gt;
 2a0f:ff00:2001:366::21/128 # will be removed soon, push NRW-RZ1&lt;br /&gt;
 185.145.188.12/32 # upcoming, push NRW-RZ1&lt;br /&gt;
 2a06:d840::12/128 # upcoming, push NRW-RZ1&lt;br /&gt;
&lt;br /&gt;
To configure your firewall accordingly, allow those entire networks as shown above.&lt;br /&gt;
&lt;br /&gt;
=== STUN ===&lt;br /&gt;
[[Reference12r2:IP4/General/STUN|STUN Service]] for all customers&lt;br /&gt;
 stun.innovaphone.com (udp/3478)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: [http://wiki.innovaphone.com/index.php?title=Course13:IT_Advanced_2_-_07_Public_access_to_PBX_resources_%28practice%29#Media_data It is not a good idea to use innovaphone&#039;s STUN server. Although this server would yield the same results, there is no guarantee of availability. Your ISP or SIP provider&#039;s STUN should do better]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== TURN ===&lt;br /&gt;
[[Reference13r3:IP4/General/STUN#TURN_Extern |TURN fallback service ]] on port 443 for all customers&lt;br /&gt;
 turn-fallback.innovaphone.com (tcp/443)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: This TURN server shall only be used as 443 fallback server. It is not intended to be used as your [[Reference13r3:IP4/General/STUN#TURN_Servers | regular TURN server ]] as it is not designed as a primary TURN server. Do not use turn.innovaphone.com either.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Provisioning ===&lt;br /&gt;
[[Reference13r1:Concept Provisioning|Provisioning System]] for all devices&lt;br /&gt;
 config.innovaphone.com (tcp/http/https)&lt;br /&gt;
&lt;br /&gt;
=== Push ===&lt;br /&gt;
[[Reference13r2:Concept_Push_Notifications_for_iOS_and_Android|Push]] for iOS, Android, Huawei and Browser Clients&lt;br /&gt;
 push.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
=== Store ===&lt;br /&gt;
 store.innovaphone.com (tcp/http/https)&lt;br /&gt;
&lt;br /&gt;
=== Devices/Rental ===&lt;br /&gt;
 my-app.innovaphone.com (tcp/https)&lt;br /&gt;
&lt;br /&gt;
=== NTP ===&lt;br /&gt;
[[Reference13r1:Services/NTP|NTP Service]] for all customers&lt;br /&gt;
 ntp.innovaphone.com (udp/123)&lt;br /&gt;
&lt;br /&gt;
=== Remote Control Central ID service ===&lt;br /&gt;
[[Reference16r1:Concept_App_Remote_Control#Central_ID_service_server| Central ID service server]]&lt;br /&gt;
 remotecontrol.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
=== Connector for Whatsapp ===&lt;br /&gt;
[[Reference16r1:Concept_App_Service_Connector_for_Whatsapp| App Connector for Whatsapp]]&lt;br /&gt;
 whatsapp.innovaphone.com (tcp/https/wss)&lt;br /&gt;
&lt;br /&gt;
==Certificates==&lt;br /&gt;
innovaphone provides a public certificate download for used public keys.&lt;br /&gt;
&lt;br /&gt;
* https://download.innovaphone.com/certificates/innovaphone.pem (the current innovaphone public key which will used for example for our push service)&lt;br /&gt;
* https://download.innovaphone.com/certificates/ca.pem (all innovaphone Device Certification Authority public keys)&lt;br /&gt;
* https://download.innovaphone.com/certificates/ca-unverified.pem (all innovaphone Unverified Device Certification Authority public keys)&lt;br /&gt;
** The Unverified CA is used for non hardware devices, e.g. IPVAs, which are not shipped with an official innovaphone Device Certification Authority certificate, as innovaphone has no control over the serial number here.&lt;br /&gt;
&lt;br /&gt;
If needed, you can trust them manually or distribute them via [[Reference14r1:Concept_App_Service_Devices#Certificates_configuration|device&#039;s configuration]].&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Reference13r2:Concept_Push_Notifications_for_iOS_and_Android]]&lt;br /&gt;
* [[Concept Status innovaphone Services]]&lt;br /&gt;
* [[Reference13r1:Concept_Provisioning]]&lt;br /&gt;
* [[Howto:Update_innovaphone.com_Wildcard-Certificate_in_a_Device_Trustlist]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Faq|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Apps/PbxManager/App_Translations&amp;diff=79989</id>
		<title>Reference16r1:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Apps/PbxManager/App_Translations&amp;diff=79989"/>
		<updated>2026-06-15T12:24:28Z</updated>

		<summary type="html">&lt;p&gt;Slu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
Select the active translation backend.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model and interact with the endpoint &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &lt;br /&gt;
 You are a translation engine. Translate the user input into {LANG}.&lt;br /&gt;
 Strictly follow all output rules:&lt;br /&gt;
 - Return ONLY the translated content. No preamble, no explanations, no surrounding text of any kind.&lt;br /&gt;
 - If the input contains HTML: preserve all tags, attributes, and structure unchanged; translate text nodes only.&lt;br /&gt;
 - Never translate attribute values (href, src, class, id, style, data-*, etc.).&lt;br /&gt;
 - Preserve proper nouns, brand names, and technical identifiers exactly as-is.&lt;br /&gt;
 - Preserve whitespace, line breaks, and formatting exactly.&lt;br /&gt;
 - Maintain the original tone and register (formal/informal).&lt;br /&gt;
 - If the input is already in {LANG}, return it unchanged.&lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
;Temperature&lt;br /&gt;
:Define the parameter &amp;quot;temperature&amp;quot; in the LLM request. (Default 0.3)&lt;br /&gt;
&lt;br /&gt;
;Max. Tokens&lt;br /&gt;
:Define the parameter &amp;quot;max_tokens&amp;quot; in the LLM request. (Default 65536)&lt;br /&gt;
&lt;br /&gt;
;Enable Thinking&lt;br /&gt;
:Define the parameter &amp;quot;chat_template_kwargs.enable_thinking&amp;quot; in the LLM request. (Default false)&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_Translations&amp;diff=79988</id>
		<title>Reference16r1:Concept App Service Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference16r1:Concept_App_Service_Translations&amp;diff=79988"/>
		<updated>2026-06-15T12:23:47Z</updated>

		<summary type="html">&lt;p&gt;Slu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The idea of the translations app is to provide an interface for other apps to translate user content on-the-fly. So other apps can integrate the translation service via the [https://sdk.innovaphone.com/16r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm local JavaScript API] in the client and thus offer the user translated texts.&lt;br /&gt;
&lt;br /&gt;
The service serves as a proxy and integrates a corresponding backend. For cloud services (DeepL, eTranslation) you need your own account and credentials. For Custom LLM, a self-hosted OpenAI API-compatible inference server is used instead.&lt;br /&gt;
&lt;br /&gt;
== Supported translation services ==&lt;br /&gt;
You can configure multiple translation backends and switch between them.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
This interface uses the https:///www.deepl.com translation API.&lt;br /&gt;
&lt;br /&gt;
This interface is used as the default interface. you dont must provide an &#039;&#039;API-URL&#039;&#039; in the [[Reference16r1:Apps/PbxManager/App Translations|Settings]]. A custom API-URL is only for a local version with the same API interface.&lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:API Free: https://www.deepl.com/de/privacy#section_12&lt;br /&gt;
:API Pro: https://www.deepl.com/de/privacy#section_5&lt;br /&gt;
;Cost model and Pricing&lt;br /&gt;
:Pay per character (To save costs, the app service offers a cache to avoid multiple translations)&lt;br /&gt;
:https://www.deepl.com/de/pro#developer&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
&lt;br /&gt;
* The DeepL API is a synchronous HTTP flow. This means that we request a translation and get an instant response with the translation.&lt;br /&gt;
* Outgoing HTTP(S) request to the DeepL API&lt;br /&gt;
* If you not override the URL, it is used HTTPS only&lt;br /&gt;
&lt;br /&gt;
=== EU - eTranslation ===&lt;br /&gt;
This interface uses the EU service eTranslation.&lt;br /&gt;
&lt;br /&gt;
European Commission’s free and secure AI language tools: https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en&lt;br /&gt;
&lt;br /&gt;
Technical Documentation: https://language-tools.ec.europa.eu/dev-corner/etranslation/rest-v2/text&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* The EU-eTranslation uses an asynchronous HTTP flow with webhooks to deliver processed translations&lt;br /&gt;
* Translation flow&lt;br /&gt;
*# On every app startup &lt;br /&gt;
*## a dynamic user / password combination is created, which will be used for later secure incoming webhooks&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;23bcf2fd / 19ccf70b-028c-e7a8-94eb-1ad7db91d4c8&amp;lt;/code&amp;gt;&lt;br /&gt;
*## the own app url is generated from the current environment&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://23bcf2fd:19ccf70b-028c-e7a8-94eb-1ad7db91d4c8@apps.slu.de/slu.de/translations/webhook-basicauth&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Outgoing HTTPS request to the eTranslation Service. The translation job will be queued. As additional information in the job, a callback webhook URL with a username and password will be placed.&lt;br /&gt;
*# If the processing is finished, a webhook to the app is delivered via HTTPS&lt;br /&gt;
*# The job result will be processed and delivered back to the user that has requested the translation&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
* 50 concurrent translation requests&lt;br /&gt;
* 5.000 characters per translation&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
This interface connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, or LM Studio.                                                                                                                                        &lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:Depends on the operator of the server. No data is sent to third parties.&lt;br /&gt;
;Cost model&lt;br /&gt;
:Depends on the operator of the inference server.&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* Synchronous HTTP flow - a translation request is sent and the response is returned immediately&lt;br /&gt;
* Outgoing HTTPS request to the configured server&lt;br /&gt;
* The available models are queried via &amp;lt;code&amp;gt;GET /v1/models&amp;lt;/code&amp;gt; in the [[Reference17:Apps/PbxManager/App Translations|settings plugin]]&lt;br /&gt;
* Optional performance options, authentication options, and the system prompt can be configured in the [[Reference17:Apps/PbxManager/App Translations|settings plugin]]&lt;br /&gt;
* Translation requests are sent as &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt; &lt;br /&gt;
* The system prompt uses &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder for the ISO target language code&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
No license needed&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Go to the PBX manager and open the &#039;&#039;&#039;&amp;quot;AP app installer&amp;quot;&#039;&#039;&#039; plugin. On the right panel, the App Store will be shown.&lt;br /&gt;
* In the search field located on the top right corner of the store, search for &#039;&#039;&#039;&amp;quot;Translations&amp;quot;&#039;&#039;&#039; and click on it&lt;br /&gt;
* Select the proper firmware version and click on install&lt;br /&gt;
* Close and open the PBX manager to refresh the list of the available colored AP plugin&lt;br /&gt;
* Click on the &#039;&#039;&#039;&amp;quot;AP Translations&amp;quot;&#039;&#039;&#039; and click on &#039;&#039;&#039;&amp;quot; + Add an App&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
* Enter a &#039;&#039;&#039;&amp;quot;Name&amp;quot;&#039;&#039;&#039; that is used as the display name &#039;&#039;(all characters allowed)&#039;&#039; for it and the &#039;&#039;&#039;&amp;quot;SIP&amp;quot;&#039;&#039;&#039; name that is the administrative field &#039;&#039;(no space, no capital letters)&#039;&#039;. &#039;&#039;e.g : Name: Translations, SIP: translations&#039;&#039;&lt;br /&gt;
* Tick the appropriate template to distribute the App (the app is needed at every user object from any user who wants to use the translation API)&lt;br /&gt;
* Click OK to save the settings and a green check mark will be shown to inform you that the configuration is good&lt;br /&gt;
&lt;br /&gt;
== Translation - Client ==&lt;br /&gt;
There is no view/app that the user can explicitly open. The service runs in the background and has no UI and can be integrated by other apps. In order for the user to have access to the translation service, their user object must have access to the app object of the translations app.&lt;br /&gt;
&lt;br /&gt;
The client side of the app service receives requests from all other apps via the local JavaScript API and sends them to the service. The result of the request is returned to the original app via the local JavaScript API&lt;br /&gt;
&lt;br /&gt;
== Translation - App Service ==&lt;br /&gt;
The App Service performs tasks in the following areas:&lt;br /&gt;
* Language recognition&lt;br /&gt;
* Caching&lt;br /&gt;
* Translations against the backend (deepl.com)&lt;br /&gt;
&lt;br /&gt;
=== Language recognition ===&lt;br /&gt;
An offline API is offered to recognize the language used in a string. This recognition is also used for translations to avoid unnecessary translations (e.g. EN to EN translations are prevented). This payload will not be sent to any backend service, thus avoiding unnecessary costs. A few features exist which should make sure, a recognized language is only considered, if there is enough confidence:&lt;br /&gt;
* Strings shorter than 6 words are skipped, since the chance for false positives are relatively high&lt;br /&gt;
* Strings in which there are not enough word matches to be confident for any language will be skipped, also because of high chances for false positives&lt;br /&gt;
* Strings that are more than one language with a nearly similar amount of word matches will be skipped&lt;br /&gt;
&lt;br /&gt;
Supported languages: cs, de, en-gb, es, fr, it, nl, pl, pt-pt, ro, ru, sl, tr&lt;br /&gt;
&lt;br /&gt;
=== Caching ===&lt;br /&gt;
To save costs, all translations are cached in the App Services database. If a string is translated multiple times, only the first translation is carried out by the backend, and the translated version is saved in the cache. A second translation is therefore free of charge and performs better.&lt;br /&gt;
&lt;br /&gt;
=== Translations against the backend ===&lt;br /&gt;
Translation requests that cannot be handled by the local cache are forwarded to the configured translation backend. After successful translation, the translated version is kept in the cache for future requests.&lt;br /&gt;
&lt;br /&gt;
The list of supported languages depends on the supported languages of the used [https://developers.deepl.com/docs/resources/supported-languages#target-languages service provider]. It will be read from the service provider each time the Translations App Service starts.&lt;br /&gt;
&lt;br /&gt;
=== Charts Statistics ===&lt;br /&gt;
The app service will provide telemetry data to the integrated Charts app service.&lt;br /&gt;
&lt;br /&gt;
;requestTranslate&lt;br /&gt;
:Translation requests (default) to the App Service&lt;br /&gt;
;requestTranslateAll&lt;br /&gt;
:TranslationAll requests to the App Service&lt;br /&gt;
;requestWebhookBasic&lt;br /&gt;
:Webhooks from external translations backend with legacy BasicAuth to the App Service&lt;br /&gt;
;requestWebhook&lt;br /&gt;
:Webhooks from external translations backend to the App Service&lt;br /&gt;
;DetectLanguagePreventTranslation&lt;br /&gt;
:Amount of translation requests that are not processed because language detection detected same languages&lt;br /&gt;
;CacheAdd&lt;br /&gt;
:New translation payload is stored in the cache&lt;br /&gt;
;CacheHit&lt;br /&gt;
:Translation request is solved by existing cache entry&lt;br /&gt;
;DeepL&lt;br /&gt;
:External backend request&lt;br /&gt;
;eTranslation&lt;br /&gt;
:External backend request&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this App Service, you need the traceflags &#039;&#039;App&#039;&#039;, &#039;&#039;Database&#039;&#039;, &#039;&#039;HTTP-Client&#039;&#039; in your App instance.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [https://sdk.innovaphone.com/15r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm SDK Documentation - Translation API]&lt;br /&gt;
* [[{{NAMESPACE}}:Apps/PbxManager/App_Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79953</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79953"/>
		<updated>2026-06-09T08:08:52Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Custom LLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
Select the active translation backend.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model and interact with the endpoint &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &lt;br /&gt;
 You are a translation engine. Translate the user input into {LANG}.&lt;br /&gt;
 Strictly follow all output rules:&lt;br /&gt;
 - Return ONLY the translated content. No preamble, no explanations, no surrounding text of any kind.&lt;br /&gt;
 - If the input contains HTML: preserve all tags, attributes, and structure unchanged; translate text nodes only.&lt;br /&gt;
 - Never translate attribute values (href, src, class, id, style, data-*, etc.).&lt;br /&gt;
 - Preserve proper nouns, brand names, and technical identifiers exactly as-is.&lt;br /&gt;
 - Preserve whitespace, line breaks, and formatting exactly.&lt;br /&gt;
 - Maintain the original tone and register (formal/informal).&lt;br /&gt;
 - If the input is already in {LANG}, return it unchanged.&lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
;Temperature&lt;br /&gt;
:Define the parameter &amp;quot;temperature&amp;quot; in the LLM request. (Default 0.3)&lt;br /&gt;
&lt;br /&gt;
;Max. Tokens&lt;br /&gt;
:Define the parameter &amp;quot;max_tokens&amp;quot; in the LLM request. (Default 65536)&lt;br /&gt;
&lt;br /&gt;
;Enable Thinking&lt;br /&gt;
:Define the parameter &amp;quot;chat_template_kwargs.enable_thinking&amp;quot; in the LLM request. (Default false)&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79952</id>
		<title>Reference17:Concept App Service Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79952"/>
		<updated>2026-06-09T07:57:45Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Technical Concept */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The idea of the translations app is to provide an interface for other apps to translate user content on-the-fly. So other apps can integrate the translation service via the [https://sdk.innovaphone.com/16r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm local JavaScript API] in the client and thus offer the user translated texts.&lt;br /&gt;
&lt;br /&gt;
The service serves as a proxy and integrates a corresponding backend. For cloud services (DeepL, eTranslation) you need your own account and credentials. For Custom LLM, a self-hosted OpenAI API-compatible inference server is used instead.&lt;br /&gt;
&lt;br /&gt;
== Supported translation services ==&lt;br /&gt;
You can configure multiple translation backends and switch between them.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
This interface uses the https:///www.deepl.com translation API.&lt;br /&gt;
&lt;br /&gt;
This interface is used as the default interface. you dont must provide an &#039;&#039;API-URL&#039;&#039; in the [[Reference16r1:Apps/PbxManager/App Translations|Settings]]. A custom API-URL is only for a local version with the same API interface.&lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:API Free: https://www.deepl.com/de/privacy#section_12&lt;br /&gt;
:API Pro: https://www.deepl.com/de/privacy#section_5&lt;br /&gt;
;Cost model and Pricing&lt;br /&gt;
:Pay per character (To save costs, the app service offers a cache to avoid multiple translations)&lt;br /&gt;
:https://www.deepl.com/de/pro#developer&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
&lt;br /&gt;
* The DeepL API is a synchronous HTTP flow. This means that we request a translation and get an instant response with the translation.&lt;br /&gt;
* Outgoing HTTP(S) request to the DeepL API&lt;br /&gt;
* If you not override the URL, it is used HTTPS only&lt;br /&gt;
&lt;br /&gt;
=== EU - eTranslation ===&lt;br /&gt;
This interface uses the EU service eTranslation.&lt;br /&gt;
&lt;br /&gt;
European Commission’s free and secure AI language tools: https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en&lt;br /&gt;
&lt;br /&gt;
Technical Documentation: https://language-tools.ec.europa.eu/dev-corner/etranslation/rest-v2/text&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* The EU-eTranslation uses an asynchronous HTTP flow with webhooks to deliver processed translations&lt;br /&gt;
* Translation flow&lt;br /&gt;
*# On every app startup &lt;br /&gt;
*## a dynamic user / password combination is created, which will be used for later secure incoming webhooks&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;23bcf2fd / 19ccf70b-028c-e7a8-94eb-1ad7db91d4c8&amp;lt;/code&amp;gt;&lt;br /&gt;
*## the own app url is generated from the current environment&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://23bcf2fd:19ccf70b-028c-e7a8-94eb-1ad7db91d4c8@apps.slu.de/slu.de/translations/webhook-basicauth&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Outgoing HTTPS request to the eTranslation Service. The translation job will be queued. As additional information in the job, a callback webhook URL with a username and password will be placed.&lt;br /&gt;
*# If the processing is finished, a webhook to the app is delivered via HTTPS&lt;br /&gt;
*# The job result will be processed and delivered back to the user that has requested the translation&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
* 50 concurrent translation requests&lt;br /&gt;
* 5.000 characters per translation&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
This interface connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, or LM Studio.                                                                                                                                        &lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:Depends on the operator of the server. No data is sent to third parties.&lt;br /&gt;
;Cost model&lt;br /&gt;
:Depends on the operator of the inference server.&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* Synchronous HTTP flow - a translation request is sent and the response is returned immediately&lt;br /&gt;
* Outgoing HTTPS request to the configured server&lt;br /&gt;
* The available models are queried via &amp;lt;code&amp;gt;GET /v1/models&amp;lt;/code&amp;gt; in the [[Reference17:Apps/PbxManager/App Translations|settings plugin]]&lt;br /&gt;
* Optional performance options, authentication options, and the system prompt can be configured in the [[Reference17:Apps/PbxManager/App Translations|settings plugin]]&lt;br /&gt;
* Translation requests are sent as &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt; &lt;br /&gt;
* The system prompt uses &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder for the ISO target language code&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
No license needed&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Go to the PBX manager and open the &#039;&#039;&#039;&amp;quot;AP app installer&amp;quot;&#039;&#039;&#039; plugin. On the right panel, the App Store will be shown.&lt;br /&gt;
* In the search field located on the top right corner of the store, search for &#039;&#039;&#039;&amp;quot;Translations&amp;quot;&#039;&#039;&#039; and click on it&lt;br /&gt;
* Select the proper firmware version and click on install&lt;br /&gt;
* Close and open the PBX manager to refresh the list of the available colored AP plugin&lt;br /&gt;
* Click on the &#039;&#039;&#039;&amp;quot;AP Translations&amp;quot;&#039;&#039;&#039; and click on &#039;&#039;&#039;&amp;quot; + Add an App&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
* Enter a &#039;&#039;&#039;&amp;quot;Name&amp;quot;&#039;&#039;&#039; that is used as the display name &#039;&#039;(all characters allowed)&#039;&#039; for it and the &#039;&#039;&#039;&amp;quot;SIP&amp;quot;&#039;&#039;&#039; name that is the administrative field &#039;&#039;(no space, no capital letters)&#039;&#039;. &#039;&#039;e.g : Name: Translations, SIP: translations&#039;&#039;&lt;br /&gt;
* Tick the appropriate template to distribute the App (the app is needed at every user object from any user who wants to use the translation API)&lt;br /&gt;
* Click OK to save the settings and a green check mark will be shown to inform you that the configuration is good&lt;br /&gt;
&lt;br /&gt;
== Translation - Client ==&lt;br /&gt;
There is no view/app that the user can explicitly open. The service runs in the background and has no UI and can be integrated by other apps. In order for the user to have access to the translation service, their user object must have access to the app object of the translations app.&lt;br /&gt;
&lt;br /&gt;
The client side of the app service receives requests from all other apps via the local JavaScript API and sends them to the service. The result of the request is returned to the original app via the local JavaScript API&lt;br /&gt;
&lt;br /&gt;
== Translation - App Service ==&lt;br /&gt;
The App Service performs tasks in the following areas:&lt;br /&gt;
* Language recognition&lt;br /&gt;
* Caching&lt;br /&gt;
* Translations against the backend (deepl.com)&lt;br /&gt;
&lt;br /&gt;
=== Language recognition ===&lt;br /&gt;
An offline API is offered to recognize the language used in a string. This recognition is also used for translations to avoid unnecessary translations (e.g. EN to EN translations are prevented). This payload will not be sent to any backend service, thus avoiding unnecessary costs. A few features exist which should make sure, a recognized language is only considered, if there is enough confidence:&lt;br /&gt;
* Strings shorter than 6 words are skipped, since the chance for false positives are relatively high&lt;br /&gt;
* Strings in which there are not enough word matches to be confident for any language will be skipped, also because of high chances for false positives&lt;br /&gt;
* Strings that are more than one language with a nearly similar amount of word matches will be skipped&lt;br /&gt;
&lt;br /&gt;
Supported languages: cs, de, en-gb, es, fr, it, nl, pl, pt-pt, ro, ru, sl, tr&lt;br /&gt;
&lt;br /&gt;
=== Caching ===&lt;br /&gt;
To save costs, all translations are cached in the App Services database. If a string is translated multiple times, only the first translation is carried out by the backend, and the translated version is saved in the cache. A second translation is therefore free of charge and performs better.&lt;br /&gt;
&lt;br /&gt;
=== Translations against the backend ===&lt;br /&gt;
Translation requests that cannot be handled by the local cache are forwarded to the configured translation backend. After successful translation, the translated version is kept in the cache for future requests.&lt;br /&gt;
&lt;br /&gt;
The list of supported languages depends on the supported languages of the used [https://developers.deepl.com/docs/resources/supported-languages#target-languages service provider]. It will be read from the service provider each time the Translations App Service starts.&lt;br /&gt;
&lt;br /&gt;
=== Charts Statistics ===&lt;br /&gt;
The app service will provide telemetry data to the integrated Charts app service.&lt;br /&gt;
&lt;br /&gt;
;requestTranslate&lt;br /&gt;
:Translation requests (default) to the App Service&lt;br /&gt;
;requestTranslateAll&lt;br /&gt;
:TranslationAll requests to the App Service&lt;br /&gt;
;requestWebhookBasic&lt;br /&gt;
:Webhooks from external translations backend with legacy BasicAuth to the App Service&lt;br /&gt;
;requestWebhook&lt;br /&gt;
:Webhooks from external translations backend to the App Service&lt;br /&gt;
;DetectLanguagePreventTranslation&lt;br /&gt;
:Amount of translation requests that are not processed because language detection detected same languages&lt;br /&gt;
;CacheAdd&lt;br /&gt;
:New translation payload is stored in the cache&lt;br /&gt;
;CacheHit&lt;br /&gt;
:Translation request is solved by existing cache entry&lt;br /&gt;
;DeepL&lt;br /&gt;
:External backend request&lt;br /&gt;
;eTranslation&lt;br /&gt;
:External backend request&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this App Service, you need the traceflags &#039;&#039;App&#039;&#039;, &#039;&#039;Database&#039;&#039;, &#039;&#039;HTTP-Client&#039;&#039; in your App instance.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [https://sdk.innovaphone.com/15r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm SDK Documentation - Translation API]&lt;br /&gt;
* [[{{NAMESPACE}}:Apps/PbxManager/App_Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79913</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79913"/>
		<updated>2026-06-02T11:48:47Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Custom LLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
Select the active translation backend.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model and interact with the endpoint &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &lt;br /&gt;
 You are a translation engine. Translate the user input into {LANG}.&lt;br /&gt;
 Strictly follow all output rules:&lt;br /&gt;
 - Return ONLY the translated content. No preamble, no explanations, no surrounding text of any kind.&lt;br /&gt;
 - If the input contains HTML: preserve all tags, attributes, and structure unchanged; translate text nodes only.&lt;br /&gt;
 - Never translate attribute values (href, src, class, id, style, data-*, etc.).&lt;br /&gt;
 - Preserve proper nouns, brand names, and technical identifiers exactly as-is.&lt;br /&gt;
 - Preserve whitespace, line breaks, and formatting exactly.&lt;br /&gt;
 - Maintain the original tone and register (formal/informal).&lt;br /&gt;
 - If the input is already in {LANG}, return it unchanged.&lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79912</id>
		<title>Reference17:Concept App Service Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79912"/>
		<updated>2026-06-02T10:23:12Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* EU - eTranslation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The idea of the translations app is to provide an interface for other apps to translate user content on-the-fly. So other apps can integrate the translation service via the [https://sdk.innovaphone.com/16r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm local JavaScript API] in the client and thus offer the user translated texts.&lt;br /&gt;
&lt;br /&gt;
The service serves as a proxy and integrates a corresponding backend. For cloud services (DeepL, eTranslation) you need your own account and credentials. For Custom LLM, a self-hosted OpenAI API-compatible inference server is used instead.&lt;br /&gt;
&lt;br /&gt;
== Supported translation services ==&lt;br /&gt;
You can configure multiple translation backends and switch between them.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
This interface uses the https:///www.deepl.com translation API.&lt;br /&gt;
&lt;br /&gt;
This interface is used as the default interface. you dont must provide an &#039;&#039;API-URL&#039;&#039; in the [[Reference16r1:Apps/PbxManager/App Translations|Settings]]. A custom API-URL is only for a local version with the same API interface.&lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:API Free: https://www.deepl.com/de/privacy#section_12&lt;br /&gt;
:API Pro: https://www.deepl.com/de/privacy#section_5&lt;br /&gt;
;Cost model and Pricing&lt;br /&gt;
:Pay per character (To save costs, the app service offers a cache to avoid multiple translations)&lt;br /&gt;
:https://www.deepl.com/de/pro#developer&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
&lt;br /&gt;
* The DeepL API is a synchronous HTTP flow. This means that we request a translation and get an instant response with the translation.&lt;br /&gt;
* Outgoing HTTP(S) request to the DeepL API&lt;br /&gt;
* If you not override the URL, it is used HTTPS only&lt;br /&gt;
&lt;br /&gt;
=== EU - eTranslation ===&lt;br /&gt;
This interface uses the EU service eTranslation.&lt;br /&gt;
&lt;br /&gt;
European Commission’s free and secure AI language tools: https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en&lt;br /&gt;
&lt;br /&gt;
Technical Documentation: https://language-tools.ec.europa.eu/dev-corner/etranslation/rest-v2/text&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* The EU-eTranslation uses an asynchronous HTTP flow with webhooks to deliver processed translations&lt;br /&gt;
* Translation flow&lt;br /&gt;
*# On every app startup &lt;br /&gt;
*## a dynamic user / password combination is created, which will be used for later secure incoming webhooks&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;23bcf2fd / 19ccf70b-028c-e7a8-94eb-1ad7db91d4c8&amp;lt;/code&amp;gt;&lt;br /&gt;
*## the own app url is generated from the current environment&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://23bcf2fd:19ccf70b-028c-e7a8-94eb-1ad7db91d4c8@apps.slu.de/slu.de/translations/webhook-basicauth&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Outgoing HTTPS request to the eTranslation Service. The translation job will be queued. As additional information in the job, a callback webhook URL with a username and password will be placed.&lt;br /&gt;
*# If the processing is finished, a webhook to the app is delivered via HTTPS&lt;br /&gt;
*# The job result will be processed and delivered back to the user that has requested the translation&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
* 50 concurrent translation requests&lt;br /&gt;
* 5.000 characters per translation&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
This interface connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, or LM Studio.                                                                                                                                        &lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:Depends on the operator of the server. No data is sent to third parties.&lt;br /&gt;
;Cost model&lt;br /&gt;
:Depends on the operator of the inference server.&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* Synchronous HTTP flow - a translation request is sent and the response is returned immediately&lt;br /&gt;
* Outgoing HTTPS request to the configured server&lt;br /&gt;
* The available models are queried via &amp;lt;code&amp;gt;GET /v1/models&amp;lt;/code&amp;gt; in the settings plugin&lt;br /&gt;
* Translation requests are sent as &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt; with an editable system prompt&lt;br /&gt;
* The system prompt uses &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder for the ISO target language code&lt;br /&gt;
* An optional Bearer token can be configured for servers that require authentication&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
No license needed&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Go to the PBX manager and open the &#039;&#039;&#039;&amp;quot;AP app installer&amp;quot;&#039;&#039;&#039; plugin. On the right panel, the App Store will be shown.&lt;br /&gt;
* In the search field located on the top right corner of the store, search for &#039;&#039;&#039;&amp;quot;Translations&amp;quot;&#039;&#039;&#039; and click on it&lt;br /&gt;
* Select the proper firmware version and click on install&lt;br /&gt;
* Close and open the PBX manager to refresh the list of the available colored AP plugin&lt;br /&gt;
* Click on the &#039;&#039;&#039;&amp;quot;AP Translations&amp;quot;&#039;&#039;&#039; and click on &#039;&#039;&#039;&amp;quot; + Add an App&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
* Enter a &#039;&#039;&#039;&amp;quot;Name&amp;quot;&#039;&#039;&#039; that is used as the display name &#039;&#039;(all characters allowed)&#039;&#039; for it and the &#039;&#039;&#039;&amp;quot;SIP&amp;quot;&#039;&#039;&#039; name that is the administrative field &#039;&#039;(no space, no capital letters)&#039;&#039;. &#039;&#039;e.g : Name: Translations, SIP: translations&#039;&#039;&lt;br /&gt;
* Tick the appropriate template to distribute the App (the app is needed at every user object from any user who wants to use the translation API)&lt;br /&gt;
* Click OK to save the settings and a green check mark will be shown to inform you that the configuration is good&lt;br /&gt;
&lt;br /&gt;
== Translation - Client ==&lt;br /&gt;
There is no view/app that the user can explicitly open. The service runs in the background and has no UI and can be integrated by other apps. In order for the user to have access to the translation service, their user object must have access to the app object of the translations app.&lt;br /&gt;
&lt;br /&gt;
The client side of the app service receives requests from all other apps via the local JavaScript API and sends them to the service. The result of the request is returned to the original app via the local JavaScript API&lt;br /&gt;
&lt;br /&gt;
== Translation - App Service ==&lt;br /&gt;
The App Service performs tasks in the following areas:&lt;br /&gt;
* Language recognition&lt;br /&gt;
* Caching&lt;br /&gt;
* Translations against the backend (deepl.com)&lt;br /&gt;
&lt;br /&gt;
=== Language recognition ===&lt;br /&gt;
An offline API is offered to recognize the language used in a string. This recognition is also used for translations to avoid unnecessary translations (e.g. EN to EN translations are prevented). This payload will not be sent to any backend service, thus avoiding unnecessary costs. A few features exist which should make sure, a recognized language is only considered, if there is enough confidence:&lt;br /&gt;
* Strings shorter than 6 words are skipped, since the chance for false positives are relatively high&lt;br /&gt;
* Strings in which there are not enough word matches to be confident for any language will be skipped, also because of high chances for false positives&lt;br /&gt;
* Strings that are more than one language with a nearly similar amount of word matches will be skipped&lt;br /&gt;
&lt;br /&gt;
Supported languages: cs, de, en-gb, es, fr, it, nl, pl, pt-pt, ro, ru, sl, tr&lt;br /&gt;
&lt;br /&gt;
=== Caching ===&lt;br /&gt;
To save costs, all translations are cached in the App Services database. If a string is translated multiple times, only the first translation is carried out by the backend, and the translated version is saved in the cache. A second translation is therefore free of charge and performs better.&lt;br /&gt;
&lt;br /&gt;
=== Translations against the backend ===&lt;br /&gt;
Translation requests that cannot be handled by the local cache are forwarded to the configured translation backend. After successful translation, the translated version is kept in the cache for future requests.&lt;br /&gt;
&lt;br /&gt;
The list of supported languages depends on the supported languages of the used [https://developers.deepl.com/docs/resources/supported-languages#target-languages service provider]. It will be read from the service provider each time the Translations App Service starts.&lt;br /&gt;
&lt;br /&gt;
=== Charts Statistics ===&lt;br /&gt;
The app service will provide telemetry data to the integrated Charts app service.&lt;br /&gt;
&lt;br /&gt;
;requestTranslate&lt;br /&gt;
:Translation requests (default) to the App Service&lt;br /&gt;
;requestTranslateAll&lt;br /&gt;
:TranslationAll requests to the App Service&lt;br /&gt;
;requestWebhookBasic&lt;br /&gt;
:Webhooks from external translations backend with legacy BasicAuth to the App Service&lt;br /&gt;
;requestWebhook&lt;br /&gt;
:Webhooks from external translations backend to the App Service&lt;br /&gt;
;DetectLanguagePreventTranslation&lt;br /&gt;
:Amount of translation requests that are not processed because language detection detected same languages&lt;br /&gt;
;CacheAdd&lt;br /&gt;
:New translation payload is stored in the cache&lt;br /&gt;
;CacheHit&lt;br /&gt;
:Translation request is solved by existing cache entry&lt;br /&gt;
;DeepL&lt;br /&gt;
:External backend request&lt;br /&gt;
;eTranslation&lt;br /&gt;
:External backend request&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this App Service, you need the traceflags &#039;&#039;App&#039;&#039;, &#039;&#039;Database&#039;&#039;, &#039;&#039;HTTP-Client&#039;&#039; in your App instance.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [https://sdk.innovaphone.com/15r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm SDK Documentation - Translation API]&lt;br /&gt;
* [[{{NAMESPACE}}:Apps/PbxManager/App_Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79911</id>
		<title>Reference17:Concept App Service Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79911"/>
		<updated>2026-06-02T10:11:41Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The idea of the translations app is to provide an interface for other apps to translate user content on-the-fly. So other apps can integrate the translation service via the [https://sdk.innovaphone.com/16r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm local JavaScript API] in the client and thus offer the user translated texts.&lt;br /&gt;
&lt;br /&gt;
The service serves as a proxy and integrates a corresponding backend. For cloud services (DeepL, eTranslation) you need your own account and credentials. For Custom LLM, a self-hosted OpenAI API-compatible inference server is used instead.&lt;br /&gt;
&lt;br /&gt;
== Supported translation services ==&lt;br /&gt;
You can configure multiple translation backends and switch between them.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
This interface uses the https:///www.deepl.com translation API.&lt;br /&gt;
&lt;br /&gt;
This interface is used as the default interface. you dont must provide an &#039;&#039;API-URL&#039;&#039; in the [[Reference16r1:Apps/PbxManager/App Translations|Settings]]. A custom API-URL is only for a local version with the same API interface.&lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:API Free: https://www.deepl.com/de/privacy#section_12&lt;br /&gt;
:API Pro: https://www.deepl.com/de/privacy#section_5&lt;br /&gt;
;Cost model and Pricing&lt;br /&gt;
:Pay per character (To save costs, the app service offers a cache to avoid multiple translations)&lt;br /&gt;
:https://www.deepl.com/de/pro#developer&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
&lt;br /&gt;
* The DeepL API is a synchronous HTTP flow. This means that we request a translation and get an instant response with the translation.&lt;br /&gt;
* Outgoing HTTP(S) request to the DeepL API&lt;br /&gt;
* If you not override the URL, it is used HTTPS only&lt;br /&gt;
&lt;br /&gt;
=== EU - eTranslation ===&lt;br /&gt;
This interface uses the EU service eTranslation.&lt;br /&gt;
&lt;br /&gt;
European Commission’s free and secure AI language tools: https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en&lt;br /&gt;
&lt;br /&gt;
Technical Documentation: https://language-tools.ec.europa.eu/dev-corner/etranslation/rest-v2/text&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* The EU-eTranslation uses an asynchronous HTTP flow with webhooks to deliver processed translations&lt;br /&gt;
* Translation flow&lt;br /&gt;
*# On every app startup &lt;br /&gt;
*## a dynamic user / password combination is created, which will be used for later secure incoming webhooks&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;23bcf2fd / 19ccf70b-028c-e7a8-94eb-1ad7db91d4c8&amp;lt;/code&amp;gt;&lt;br /&gt;
*## the own app url is generated from the current environment&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://23bcf2fd:19ccf70b-028c-e7a8-94eb-1ad7db91d4c8@apps.slu.de/slu.de/translations/webhook-basicauth&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Outgoing HTTPS request to the eTranslation Service. The translation job will be queued. As additional information in the job, a callback webhook URL with a username and password will be placed.&lt;br /&gt;
*# If the processing is finished, a webhook to the app is delivered via HTTPS&lt;br /&gt;
*# The job result will be processed and delivered back to the user that has requested the translation&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
* 50 concurrent translation requests&lt;br /&gt;
* 5.000 characters per translation&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
No license needed&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Go to the PBX manager and open the &#039;&#039;&#039;&amp;quot;AP app installer&amp;quot;&#039;&#039;&#039; plugin. On the right panel, the App Store will be shown.&lt;br /&gt;
* In the search field located on the top right corner of the store, search for &#039;&#039;&#039;&amp;quot;Translations&amp;quot;&#039;&#039;&#039; and click on it&lt;br /&gt;
* Select the proper firmware version and click on install&lt;br /&gt;
* Close and open the PBX manager to refresh the list of the available colored AP plugin&lt;br /&gt;
* Click on the &#039;&#039;&#039;&amp;quot;AP Translations&amp;quot;&#039;&#039;&#039; and click on &#039;&#039;&#039;&amp;quot; + Add an App&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
* Enter a &#039;&#039;&#039;&amp;quot;Name&amp;quot;&#039;&#039;&#039; that is used as the display name &#039;&#039;(all characters allowed)&#039;&#039; for it and the &#039;&#039;&#039;&amp;quot;SIP&amp;quot;&#039;&#039;&#039; name that is the administrative field &#039;&#039;(no space, no capital letters)&#039;&#039;. &#039;&#039;e.g : Name: Translations, SIP: translations&#039;&#039;&lt;br /&gt;
* Tick the appropriate template to distribute the App (the app is needed at every user object from any user who wants to use the translation API)&lt;br /&gt;
* Click OK to save the settings and a green check mark will be shown to inform you that the configuration is good&lt;br /&gt;
&lt;br /&gt;
== Translation - Client ==&lt;br /&gt;
There is no view/app that the user can explicitly open. The service runs in the background and has no UI and can be integrated by other apps. In order for the user to have access to the translation service, their user object must have access to the app object of the translations app.&lt;br /&gt;
&lt;br /&gt;
The client side of the app service receives requests from all other apps via the local JavaScript API and sends them to the service. The result of the request is returned to the original app via the local JavaScript API&lt;br /&gt;
&lt;br /&gt;
== Translation - App Service ==&lt;br /&gt;
The App Service performs tasks in the following areas:&lt;br /&gt;
* Language recognition&lt;br /&gt;
* Caching&lt;br /&gt;
* Translations against the backend (deepl.com)&lt;br /&gt;
&lt;br /&gt;
=== Language recognition ===&lt;br /&gt;
An offline API is offered to recognize the language used in a string. This recognition is also used for translations to avoid unnecessary translations (e.g. EN to EN translations are prevented). This payload will not be sent to any backend service, thus avoiding unnecessary costs. A few features exist which should make sure, a recognized language is only considered, if there is enough confidence:&lt;br /&gt;
* Strings shorter than 6 words are skipped, since the chance for false positives are relatively high&lt;br /&gt;
* Strings in which there are not enough word matches to be confident for any language will be skipped, also because of high chances for false positives&lt;br /&gt;
* Strings that are more than one language with a nearly similar amount of word matches will be skipped&lt;br /&gt;
&lt;br /&gt;
Supported languages: cs, de, en-gb, es, fr, it, nl, pl, pt-pt, ro, ru, sl, tr&lt;br /&gt;
&lt;br /&gt;
=== Caching ===&lt;br /&gt;
To save costs, all translations are cached in the App Services database. If a string is translated multiple times, only the first translation is carried out by the backend, and the translated version is saved in the cache. A second translation is therefore free of charge and performs better.&lt;br /&gt;
&lt;br /&gt;
=== Translations against the backend ===&lt;br /&gt;
Translation requests that cannot be handled by the local cache are forwarded to the configured translation backend. After successful translation, the translated version is kept in the cache for future requests.&lt;br /&gt;
&lt;br /&gt;
The list of supported languages depends on the supported languages of the used [https://developers.deepl.com/docs/resources/supported-languages#target-languages service provider]. It will be read from the service provider each time the Translations App Service starts.&lt;br /&gt;
&lt;br /&gt;
=== Charts Statistics ===&lt;br /&gt;
The app service will provide telemetry data to the integrated Charts app service.&lt;br /&gt;
&lt;br /&gt;
;requestTranslate&lt;br /&gt;
:Translation requests (default) to the App Service&lt;br /&gt;
;requestTranslateAll&lt;br /&gt;
:TranslationAll requests to the App Service&lt;br /&gt;
;requestWebhookBasic&lt;br /&gt;
:Webhooks from external translations backend with legacy BasicAuth to the App Service&lt;br /&gt;
;requestWebhook&lt;br /&gt;
:Webhooks from external translations backend to the App Service&lt;br /&gt;
;DetectLanguagePreventTranslation&lt;br /&gt;
:Amount of translation requests that are not processed because language detection detected same languages&lt;br /&gt;
;CacheAdd&lt;br /&gt;
:New translation payload is stored in the cache&lt;br /&gt;
;CacheHit&lt;br /&gt;
:Translation request is solved by existing cache entry&lt;br /&gt;
;DeepL&lt;br /&gt;
:External backend request&lt;br /&gt;
;eTranslation&lt;br /&gt;
:External backend request&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this App Service, you need the traceflags &#039;&#039;App&#039;&#039;, &#039;&#039;Database&#039;&#039;, &#039;&#039;HTTP-Client&#039;&#039; in your App instance.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [https://sdk.innovaphone.com/15r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm SDK Documentation - Translation API]&lt;br /&gt;
* [[{{NAMESPACE}}:Apps/PbxManager/App_Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79910</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79910"/>
		<updated>2026-06-02T10:09:05Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* DeepL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
Select the active translation backend.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model and interact with the endpoint &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &amp;lt;code&amp;gt;You are a translation assistant. Translate the following text to {LANG}. Return only the translated text, with no explanations or additional content.&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79909</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79909"/>
		<updated>2026-06-02T09:50:50Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Custom LLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
Select the active translation backend.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwhise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model and interact with the endpoint &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &amp;lt;code&amp;gt;You are a translation assistant. Translate the following text to {LANG}. Return only the translated text, with no explanations or additional content.&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79908</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79908"/>
		<updated>2026-06-02T09:49:13Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Translations Service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
Select the active translation backend.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwhise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &amp;lt;code&amp;gt;You are a translation assistant. Translate the following text to {LANG}. Return only the translated text, with no explanations or additional content.&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Translation requests are sent as &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt; to the configured host. The model receives a system prompt instructing it to translate the input text to the target language and return only the translated result.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79907</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79907"/>
		<updated>2026-06-02T09:44:46Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Custom LLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
You have to configure the current active translations service.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwhise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Token&lt;br /&gt;
:Optional Bearer token sent as &amp;lt;code&amp;gt;Authorization: Bearer {token}&amp;lt;/code&amp;gt; with every request to the inference server, including the model list query. Leave empty if the server does not require authentication.   &lt;br /&gt;
&lt;br /&gt;
;System Prompt&lt;br /&gt;
:The system prompt sent to the model with every translation request. Use &amp;lt;code&amp;gt;{LANG}&amp;lt;/code&amp;gt; as a placeholder - it is replaced at runtime with the ISO target language code (e.g. &amp;lt;code&amp;gt;DE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EN-GB&amp;lt;/code&amp;gt;).&lt;br /&gt;
:If left empty, the following default prompt is used: &amp;lt;code&amp;gt;You are a translation assistant. Translate the following text to {LANG}. Return only the translated text, with no explanations or additional content.&amp;lt;/code&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Translation requests are sent as &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt; to the configured host. The model receives a system prompt instructing it to translate the input text to the target language and return only the translated result.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79906</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79906"/>
		<updated>2026-06-02T09:21:13Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* eTranslation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
You have to configure the current active translations service.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwhise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Custom LLM ===&lt;br /&gt;
Connects to any OpenAI API-compatible server, such as [https://ollama.com Ollama], vLLM, LM Studio, or a self-hosted model.&lt;br /&gt;
&lt;br /&gt;
;Hostname&lt;br /&gt;
:The base URL of the server. The protocol prefix &amp;lt;code&amp;gt;https://&amp;lt;/code&amp;gt; is assumed if omitted.&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;https://ollama.example.com&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ollama.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
:Once a hostname is entered, the plugin automatically queries &amp;lt;code&amp;gt;{hostname}/v1/models&amp;lt;/code&amp;gt; and populates the &#039;&#039;Model&#039;&#039; dropdown.&lt;br /&gt;
&lt;br /&gt;
;Model&lt;br /&gt;
:Dropdown populated automatically from the models available on the configured host. Select the model to be used for translation requests.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; Translation requests are sent as &amp;lt;code&amp;gt;POST /v1/chat/completions&amp;lt;/code&amp;gt; to the configured host. The model receives a system prompt instructing it to translate the input text to the target language and return only the translated result.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79905</id>
		<title>Reference17:Apps/PbxManager/App Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Apps/PbxManager/App_Translations&amp;diff=79905"/>
		<updated>2026-06-02T09:11:16Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* European eTranslation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With the translations PBX-Manager plugin, the needed app object can be created and configured. &lt;br /&gt;
In addition, the app object can be assigned to specific config templates, if any exist.&lt;br /&gt;
&lt;br /&gt;
== Add an app object == &lt;br /&gt;
&lt;br /&gt;
;Name&lt;br /&gt;
:The &#039;&#039;name&#039;&#039; displayed for the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;SIP&lt;br /&gt;
:The &#039;&#039;sip&#039;&#039; from the app object which must be unique.&lt;br /&gt;
&lt;br /&gt;
;Config Templates&lt;br /&gt;
:Enabled config templates where the App should be available.&lt;br /&gt;
:If config templates exist, they will be listed with a checkbox.&lt;br /&gt;
:The app object will be assigned to the config templates if a checkbox is checked.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Be Aware:&#039;&#039;&#039; Every user who should be able to use the translation service needs to have it assigned (by using a config template, for example).&lt;br /&gt;
&lt;br /&gt;
=== Translations Service ===&lt;br /&gt;
You have to configure the current active translations service.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
Specific https://www.deepl.com configuration&lt;br /&gt;
&lt;br /&gt;
;URL&lt;br /&gt;
:The URL API Endpoint for the translation backend. &lt;br /&gt;
: If the field is empty, which is the default, the API endpoint will be selected automatically depending on the type of the key. If key ends with &amp;quot;:fx&amp;quot; the URL &amp;lt;code&amp;gt;https://api-free.deepl.com&amp;lt;/code&amp;gt; is used, otherwhise &amp;lt;code&amp;gt;https://api.deepl.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;API-Key&lt;br /&gt;
:The secret &#039;&#039;api-key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== eTranslation ===&lt;br /&gt;
Specific https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en configuration&lt;br /&gt;
&lt;br /&gt;
;Application Name&lt;br /&gt;
:The secret &#039;&#039;Application Name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Password&lt;br /&gt;
:The secret &#039;&#039;Password&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[{{NAMESPACE}}:Concept App Service Translations]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Firmware_Upgrade_V15r1_V16r1&amp;diff=79894</id>
		<title>Howto16r1:Firmware Upgrade V15r1 V16r1</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Firmware_Upgrade_V15r1_V16r1&amp;diff=79894"/>
		<updated>2026-05-28T13:51:06Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Changes visible to the end customers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applies To ==&lt;br /&gt;
This information applies to:&lt;br /&gt;
&lt;br /&gt;
* All 16r1 capable innovaphone devices&lt;br /&gt;
: For a general overview of the upgrade process and a list of supported devices with 16r1, see [[Howto:Firmware Upgrade]]&lt;br /&gt;
== Licenses ==&lt;br /&gt;
In case of cloud or rental model, don&#039;t worry about licenses.&lt;br /&gt;
&lt;br /&gt;
If the system is licensed on premise, you&#039;ll need to regenerate the license file for v16 in https://portal.innovaphone.com/ and load into the system before upgrade (The system needs to have the SSC up to date).&lt;br /&gt;
&lt;br /&gt;
== Migration Policy ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; font-weight: bold&amp;quot;&amp;gt;Before you begin, be sure that your whole installation is running the latest 15r1 service release. Create backups before you start and store them on an external location&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AP Upgrade to Image 140037 or newer ===&lt;br /&gt;
* First, upgrade your application platform to at least image version 140037. After that you can go ahead.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Sequence ===&lt;br /&gt;
In systems of multiple units, it is important to update the tree from top to bottom. In other words, update the master unit first, and then the machines at the lower levels. If you&#039;re using a DevicesApp update job that updates the entire system at once, you don&#039;t need to do anything here.&lt;br /&gt;
&lt;br /&gt;
=== TechAssist Upgrade Helper ===&lt;br /&gt;
* Before you start, make sure that all TechAssist tests (you will receive the required tests in the last update in the previous major version) labelled &amp;lt;code&amp;gt;Pre Upgrade: xy&amp;lt;/code&amp;gt; are positive, if available&lt;br /&gt;
* When you are finished, make sure that all TechAssist tests (you will receive new tests with the upgrade) are positive&lt;br /&gt;
&lt;br /&gt;
== Changes visible to the end customers ==&lt;br /&gt;
Listed here are changes that should be communicated by resellers to end users prior to a upgrade, as the change will be visible/audible in the behaviour of the application/device.&lt;br /&gt;
&lt;br /&gt;
* 16r1 introduces the feature of [[Reference16r1:Concept_Reconnect_Calls | Reconnect Calls for Seamless Handover &amp;amp; Roaming]]. As a result, calls will not be dropped on network interruptions or PBX reboots. Instead users receive visual (MyApps or phone display) and audio (in-band tone) feedback and the call is reconnected automatically.&lt;br /&gt;
* Chat App: The option for users to choose whether to send a chat message using ENTER or SHIFT+ENTER has been removed. Messages can now only be sent using CTRL+ENTER without pressing the send button.&lt;br /&gt;
&lt;br /&gt;
== Manual steps needed after upgrade ==&lt;br /&gt;
If the installer is not used for a new installation, some new default settings are not set. Please evaluate per app whether you want to configure the new default settings manually.&lt;br /&gt;
&lt;br /&gt;
=== Connector for Microsoft 365 ===&lt;br /&gt;
If you plan to use the new &#039;&#039;&#039;Contact Search&#039;&#039;&#039; feature of the Connector for Microsoft 365, you need to perform two manual Steps:&lt;br /&gt;
# Create the &#039;&#039;&#039;microsoft365-api&#039;&#039;&#039; app object by using the Settings template&lt;br /&gt;
# Assign the &#039;&#039;&#039;microsoft365-api&#039;&#039;&#039; app object to every user who should be able to use the new Contact Search feature. (Of cause, you can use a template for that)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a more detailed guide, please refer to the how-to article: [[Howto16r1:Configure Contact Search by Connector for Microsoft365#Creating the PBX app object using the PBX Manager Plugin]]&lt;br /&gt;
&lt;br /&gt;
=== Remote Control ===&lt;br /&gt;
In order to use the Admin Configuration Panel of the Settings App – AP Remote Control, it is necessary to grant access to the &#039;&#039;&#039;admin&#039;&#039;&#039; API, available in the App tab of the Remote Control App object.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
For badge counts to work, the Working Manager app object must have &#039;&#039;&#039;Websocket&#039;&#039;&#039; and &#039;&#039;&#039;PbxSignal&#039;&#039;&#039; enabled.&lt;br /&gt;
For the Connect integration of the Working app, &#039;&#039;&#039;Websocket&#039;&#039;&#039;, &#039;&#039;&#039;Services&#039;&#039;&#039; and &#039;&#039;&#039;connect&#039;&#039;&#039;(in the Apps tab) must be enabled in the Working User app.&lt;br /&gt;
&lt;br /&gt;
=== Switchboard ===&lt;br /&gt;
For the Connect Integration (Call Notes) to work, the Switchboard App must have the &#039;&#039;&#039;Services&#039;&#039;&#039; (App-tab) and &#039;&#039;&#039;connect&#039;&#039;&#039; or &#039;&#039;&#039;messages&#039;&#039;&#039; (Apps-tab) enabled (the name depends when the PBX was installed).&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
* Projects requires &#039;&#039;&#039;App platform version 140029&#039;&#039;&#039; or higher, so updating the App Platform before Projects is recommended. &amp;lt;br /&amp;gt;The Store will prohibit the update if the App Plattform does not have the minimum required version.&lt;br /&gt;
* For some extra admin-functionalities the &#039;&#039;&#039;Projects App Object needs to have an admin mode&#039;&#039;&#039; (App-tab). &amp;lt;br /&amp;gt;Easiest way to set this new mode is to the open the Projects App via the Projects Plugin Settings App and to re-apply it (click the OK-button). The same plugin can also be used to distribute this mode via the Config Templates.&lt;br /&gt;
* The &#039;&#039;&#039;App Platform requires the correct Time and a Timezone&#039;&#039;&#039; set under AP Manager/Settings/General. &amp;lt;br /&amp;gt;This is needed for some automatic cleanup of deleted items and automatic task status updates (done around 00:00h on the due date).&lt;br /&gt;
&lt;br /&gt;
=== For legacy support only: Change TLS Profile ===&lt;br /&gt;
The &#039;&#039;Normal&#039;&#039; profile has been updated to allow only TLS 1.3 and TLS 1.2. This setting is compatible with all supported firmware versions. So you don&#039;t need to do any changes.&lt;br /&gt;
However if you need older TLS versions for compatibility with legacy devices, consider changing the TLS profile to &#039;&#039;Legacy&#039;&#039;. In that case please see [[Reference16r1:IP4/General/TLS]] for details.&lt;br /&gt;
&lt;br /&gt;
== New Apps ==&lt;br /&gt;
New Apps will not be installed automatically by the upgrade. The installation description of new apps is usually in the concept article. Please rate per app whether you want to install/use the new app and configure it manually.&lt;br /&gt;
&lt;br /&gt;
; App Charts: [[Reference16r1:Concept_App_Charts]]&lt;br /&gt;
; App Polls: [[Reference16r1:Concept App Polls]]&lt;br /&gt;
; App MQTT Broker: [[Reference16r1:Concept_App_MQTT_Broker]]&lt;br /&gt;
; App Service Conference Scaler: [[Reference16r1:Concept_App_Service_Conference_Scaler]]&lt;br /&gt;
; App Service Conference Transcriptions: [[Reference16r1:Concept_App_Service_Conference_Transcriptions]]&lt;br /&gt;
; App Service Transcriptions: [[Reference16r1:Concept_App_Service_Transcriptions]]&lt;br /&gt;
; App Service Documents: [[Reference16r1:Concept_App_Service_Documents]]&lt;br /&gt;
; App Service Connector for Whatsapp: [[Reference16r1:Concept_App_Service_Connector_for_Whatsapp]]&lt;br /&gt;
; App Service IP: [[Reference16r1:Concept App Service IP]]&lt;br /&gt;
&lt;br /&gt;
== New environment for App Platform ==&lt;br /&gt;
The new [[Reference16r1:Concept_innovaphone_App_Platform_Container|App Platform Container]] provides an Docker container. This container offers a ready-to-use environment for myApps applications and the innovaphone PBX.&lt;br /&gt;
&lt;br /&gt;
== Removed ==&lt;br /&gt;
The following software is no longer included.&lt;br /&gt;
&lt;br /&gt;
* IP110A (can still be used with 15r1 firmware on current PBX versions)&lt;br /&gt;
* IP240A (can still be used with 15r1 firmware on current PBX versions)&lt;br /&gt;
* CA on CF card feature&lt;br /&gt;
&lt;br /&gt;
== Deprecated ==&lt;br /&gt;
The following software is based on legacy technology, with no further development and limited maintenance and support.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Nothing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Previously deprecated and now no longer supported == &lt;br /&gt;
The following software is based on legacy technology, with no further development and no more maintenance and support.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Nothing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
===Long Update-duration===&lt;br /&gt;
When you update, it can be up to 10 minutes before you have access to your app platform again.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
*[[Howto:Firmware_Upgrade]]&lt;br /&gt;
* [[Howto15r1:Firmware_Upgrade_V14r2_V15r1]]&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto16r1:Firmware_Upgrade_V15r1_V16r1&amp;diff=79893</id>
		<title>Howto16r1:Firmware Upgrade V15r1 V16r1</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto16r1:Firmware_Upgrade_V15r1_V16r1&amp;diff=79893"/>
		<updated>2026-05-28T13:46:45Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Changes visible to the end customers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applies To ==&lt;br /&gt;
This information applies to:&lt;br /&gt;
&lt;br /&gt;
* All 16r1 capable innovaphone devices&lt;br /&gt;
: For a general overview of the upgrade process and a list of supported devices with 16r1, see [[Howto:Firmware Upgrade]]&lt;br /&gt;
== Licenses ==&lt;br /&gt;
In case of cloud or rental model, don&#039;t worry about licenses.&lt;br /&gt;
&lt;br /&gt;
If the system is licensed on premise, you&#039;ll need to regenerate the license file for v16 in https://portal.innovaphone.com/ and load into the system before upgrade (The system needs to have the SSC up to date).&lt;br /&gt;
&lt;br /&gt;
== Migration Policy ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; font-weight: bold&amp;quot;&amp;gt;Before you begin, be sure that your whole installation is running the latest 15r1 service release. Create backups before you start and store them on an external location&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AP Upgrade to Image 140037 or newer ===&lt;br /&gt;
* First, upgrade your application platform to at least image version 140037. After that you can go ahead.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Sequence ===&lt;br /&gt;
In systems of multiple units, it is important to update the tree from top to bottom. In other words, update the master unit first, and then the machines at the lower levels. If you&#039;re using a DevicesApp update job that updates the entire system at once, you don&#039;t need to do anything here.&lt;br /&gt;
&lt;br /&gt;
=== TechAssist Upgrade Helper ===&lt;br /&gt;
* Before you start, make sure that all TechAssist tests (you will receive the required tests in the last update in the previous major version) labelled &amp;lt;code&amp;gt;Pre Upgrade: xy&amp;lt;/code&amp;gt; are positive, if available&lt;br /&gt;
* When you are finished, make sure that all TechAssist tests (you will receive new tests with the upgrade) are positive&lt;br /&gt;
&lt;br /&gt;
== Changes visible to the end customers ==&lt;br /&gt;
Listed here are changes that should be communicated by resellers to end users prior to a upgrade, as the change will be visible/audible in the behaviour of the application/device.&lt;br /&gt;
&lt;br /&gt;
* 16r1 introduces the feature of [[Reference16r1:Concept_Reconnect_Calls | Reconnect Calls for Seamless Handover &amp;amp; Roaming]]. As a result, calls will not be dropped on network interruptions or PBX reboots. Instead users receive visual (MyApps or phone display) and audio (in-band tone) feedback and the call is reconnected automatically.&lt;br /&gt;
* Chat App: The option in ChatApp that allowed users to choose whether to send a message using ENTER or SHIFT+ENTER has been removed. Messages can now only be sent using CTRL+ENTER without pressing the send button.&lt;br /&gt;
&lt;br /&gt;
== Manual steps needed after upgrade ==&lt;br /&gt;
If the installer is not used for a new installation, some new default settings are not set. Please evaluate per app whether you want to configure the new default settings manually.&lt;br /&gt;
&lt;br /&gt;
=== Connector for Microsoft 365 ===&lt;br /&gt;
If you plan to use the new &#039;&#039;&#039;Contact Search&#039;&#039;&#039; feature of the Connector for Microsoft 365, you need to perform two manual Steps:&lt;br /&gt;
# Create the &#039;&#039;&#039;microsoft365-api&#039;&#039;&#039; app object by using the Settings template&lt;br /&gt;
# Assign the &#039;&#039;&#039;microsoft365-api&#039;&#039;&#039; app object to every user who should be able to use the new Contact Search feature. (Of cause, you can use a template for that)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For a more detailed guide, please refer to the how-to article: [[Howto16r1:Configure Contact Search by Connector for Microsoft365#Creating the PBX app object using the PBX Manager Plugin]]&lt;br /&gt;
&lt;br /&gt;
=== Remote Control ===&lt;br /&gt;
In order to use the Admin Configuration Panel of the Settings App – AP Remote Control, it is necessary to grant access to the &#039;&#039;&#039;admin&#039;&#039;&#039; API, available in the App tab of the Remote Control App object.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
For badge counts to work, the Working Manager app object must have &#039;&#039;&#039;Websocket&#039;&#039;&#039; and &#039;&#039;&#039;PbxSignal&#039;&#039;&#039; enabled.&lt;br /&gt;
For the Connect integration of the Working app, &#039;&#039;&#039;Websocket&#039;&#039;&#039;, &#039;&#039;&#039;Services&#039;&#039;&#039; and &#039;&#039;&#039;connect&#039;&#039;&#039;(in the Apps tab) must be enabled in the Working User app.&lt;br /&gt;
&lt;br /&gt;
=== Switchboard ===&lt;br /&gt;
For the Connect Integration (Call Notes) to work, the Switchboard App must have the &#039;&#039;&#039;Services&#039;&#039;&#039; (App-tab) and &#039;&#039;&#039;connect&#039;&#039;&#039; or &#039;&#039;&#039;messages&#039;&#039;&#039; (Apps-tab) enabled (the name depends when the PBX was installed).&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
* Projects requires &#039;&#039;&#039;App platform version 140029&#039;&#039;&#039; or higher, so updating the App Platform before Projects is recommended. &amp;lt;br /&amp;gt;The Store will prohibit the update if the App Plattform does not have the minimum required version.&lt;br /&gt;
* For some extra admin-functionalities the &#039;&#039;&#039;Projects App Object needs to have an admin mode&#039;&#039;&#039; (App-tab). &amp;lt;br /&amp;gt;Easiest way to set this new mode is to the open the Projects App via the Projects Plugin Settings App and to re-apply it (click the OK-button). The same plugin can also be used to distribute this mode via the Config Templates.&lt;br /&gt;
* The &#039;&#039;&#039;App Platform requires the correct Time and a Timezone&#039;&#039;&#039; set under AP Manager/Settings/General. &amp;lt;br /&amp;gt;This is needed for some automatic cleanup of deleted items and automatic task status updates (done around 00:00h on the due date).&lt;br /&gt;
&lt;br /&gt;
=== For legacy support only: Change TLS Profile ===&lt;br /&gt;
The &#039;&#039;Normal&#039;&#039; profile has been updated to allow only TLS 1.3 and TLS 1.2. This setting is compatible with all supported firmware versions. So you don&#039;t need to do any changes.&lt;br /&gt;
However if you need older TLS versions for compatibility with legacy devices, consider changing the TLS profile to &#039;&#039;Legacy&#039;&#039;. In that case please see [[Reference16r1:IP4/General/TLS]] for details.&lt;br /&gt;
&lt;br /&gt;
== New Apps ==&lt;br /&gt;
New Apps will not be installed automatically by the upgrade. The installation description of new apps is usually in the concept article. Please rate per app whether you want to install/use the new app and configure it manually.&lt;br /&gt;
&lt;br /&gt;
; App Charts: [[Reference16r1:Concept_App_Charts]]&lt;br /&gt;
; App Polls: [[Reference16r1:Concept App Polls]]&lt;br /&gt;
; App MQTT Broker: [[Reference16r1:Concept_App_MQTT_Broker]]&lt;br /&gt;
; App Service Conference Scaler: [[Reference16r1:Concept_App_Service_Conference_Scaler]]&lt;br /&gt;
; App Service Conference Transcriptions: [[Reference16r1:Concept_App_Service_Conference_Transcriptions]]&lt;br /&gt;
; App Service Transcriptions: [[Reference16r1:Concept_App_Service_Transcriptions]]&lt;br /&gt;
; App Service Documents: [[Reference16r1:Concept_App_Service_Documents]]&lt;br /&gt;
; App Service Connector for Whatsapp: [[Reference16r1:Concept_App_Service_Connector_for_Whatsapp]]&lt;br /&gt;
; App Service IP: [[Reference16r1:Concept App Service IP]]&lt;br /&gt;
&lt;br /&gt;
== New environment for App Platform ==&lt;br /&gt;
The new [[Reference16r1:Concept_innovaphone_App_Platform_Container|App Platform Container]] provides an Docker container. This container offers a ready-to-use environment for myApps applications and the innovaphone PBX.&lt;br /&gt;
&lt;br /&gt;
== Removed ==&lt;br /&gt;
The following software is no longer included.&lt;br /&gt;
&lt;br /&gt;
* IP110A (can still be used with 15r1 firmware on current PBX versions)&lt;br /&gt;
* IP240A (can still be used with 15r1 firmware on current PBX versions)&lt;br /&gt;
* CA on CF card feature&lt;br /&gt;
&lt;br /&gt;
== Deprecated ==&lt;br /&gt;
The following software is based on legacy technology, with no further development and limited maintenance and support.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Nothing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Previously deprecated and now no longer supported == &lt;br /&gt;
The following software is based on legacy technology, with no further development and no more maintenance and support.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Nothing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
===Long Update-duration===&lt;br /&gt;
When you update, it can be up to 10 minutes before you have access to your app platform again.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
*[[Howto:Firmware_Upgrade]]&lt;br /&gt;
* [[Howto15r1:Firmware_Upgrade_V14r2_V15r1]]&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79889</id>
		<title>Reference17:Concept App Service Translations</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference17:Concept_App_Service_Translations&amp;diff=79889"/>
		<updated>2026-05-27T11:20:17Z</updated>

		<summary type="html">&lt;p&gt;Slu: /* Translations against the backend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
[[Category:Concept App Service Translations]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
The idea of the translations app is to provide an interface for other apps to translate user content on-the-fly. So other apps can integrate the translation service via the [https://sdk.innovaphone.com/16r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm local JavaScript API] in the client and thus offer the user translated texts.&lt;br /&gt;
&lt;br /&gt;
The service serves as a proxy and integrates a corresponding backend. This means that you need your own account at the external translations service and can configure your credentials in the Settings App.&lt;br /&gt;
&lt;br /&gt;
== Supported translation services ==&lt;br /&gt;
You can configure multiple translation backends and switch between them.&lt;br /&gt;
&lt;br /&gt;
=== DeepL ===&lt;br /&gt;
This interface uses the https:///www.deepl.com translation API.&lt;br /&gt;
&lt;br /&gt;
This interface is used as the default interface. you dont must provide an &#039;&#039;API-URL&#039;&#039; in the [[Reference16r1:Apps/PbxManager/App Translations|Settings]]. A custom API-URL is only for a local version with the same API interface.&lt;br /&gt;
&lt;br /&gt;
;Privacy&lt;br /&gt;
:API Free: https://www.deepl.com/de/privacy#section_12&lt;br /&gt;
:API Pro: https://www.deepl.com/de/privacy#section_5&lt;br /&gt;
;Cost model and Pricing&lt;br /&gt;
:Pay per character (To save costs, the app service offers a cache to avoid multiple translations)&lt;br /&gt;
:https://www.deepl.com/de/pro#developer&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
&lt;br /&gt;
* The DeepL API is a synchronous HTTP flow. This means that we request a translation and get an instant response with the translation.&lt;br /&gt;
* Outgoing HTTP(S) request to the DeepL API&lt;br /&gt;
* If you not override the URL, it is used HTTPS only&lt;br /&gt;
&lt;br /&gt;
=== EU - eTranslation ===&lt;br /&gt;
This interface uses the EU service eTranslation.&lt;br /&gt;
&lt;br /&gt;
European Commission’s free and secure AI language tools: https://translation.ec.europa.eu/tools-and-resources/ai-translation-and-language-tools_en&lt;br /&gt;
&lt;br /&gt;
Technical Documentation: https://language-tools.ec.europa.eu/dev-corner/etranslation/rest-v2/text&lt;br /&gt;
&lt;br /&gt;
==== Technical Concept ====&lt;br /&gt;
* The EU-eTranslation uses an asynchronous HTTP flow with webhooks to deliver processed translations&lt;br /&gt;
* Translation flow&lt;br /&gt;
*# On every app startup &lt;br /&gt;
*## a dynamic user / password combination is created, which will be used for later secure incoming webhooks&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;23bcf2fd / 19ccf70b-028c-e7a8-94eb-1ad7db91d4c8&amp;lt;/code&amp;gt;&lt;br /&gt;
*## the own app url is generated from the current environment&lt;br /&gt;
*### Example: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://23bcf2fd:19ccf70b-028c-e7a8-94eb-1ad7db91d4c8@apps.slu.de/slu.de/translations/webhook-basicauth&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Outgoing HTTPS request to the eTranslation Service. The translation job will be queued. As additional information in the job, a callback webhook URL with a username and password will be placed.&lt;br /&gt;
*# If the processing is finished, a webhook to the app is delivered via HTTPS&lt;br /&gt;
*# The job result will be processed and delivered back to the user that has requested the translation&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
* 50 concurrent translation requests&lt;br /&gt;
* 5.000 characters per translation&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
No license needed&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Go to the PBX manager and open the &#039;&#039;&#039;&amp;quot;AP app installer&amp;quot;&#039;&#039;&#039; plugin. On the right panel, the App Store will be shown.&lt;br /&gt;
* In the search field located on the top right corner of the store, search for &#039;&#039;&#039;&amp;quot;Translations&amp;quot;&#039;&#039;&#039; and click on it&lt;br /&gt;
* Select the proper firmware version and click on install&lt;br /&gt;
* Close and open the PBX manager to refresh the list of the available colored AP plugin&lt;br /&gt;
* Click on the &#039;&#039;&#039;&amp;quot;AP Translations&amp;quot;&#039;&#039;&#039; and click on &#039;&#039;&#039;&amp;quot; + Add an App&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
* Enter a &#039;&#039;&#039;&amp;quot;Name&amp;quot;&#039;&#039;&#039; that is used as the display name &#039;&#039;(all characters allowed)&#039;&#039; for it and the &#039;&#039;&#039;&amp;quot;SIP&amp;quot;&#039;&#039;&#039; name that is the administrative field &#039;&#039;(no space, no capital letters)&#039;&#039;. &#039;&#039;e.g : Name: Translations, SIP: translations&#039;&#039;&lt;br /&gt;
* Tick the appropriate template to distribute the App (the app is needed at every user object from any user who wants to use the translation API)&lt;br /&gt;
* Click OK to save the settings and a green check mark will be shown to inform you that the configuration is good&lt;br /&gt;
&lt;br /&gt;
== Translation - Client ==&lt;br /&gt;
There is no view/app that the user can explicitly open. The service runs in the background and has no UI and can be integrated by other apps. In order for the user to have access to the translation service, their user object must have access to the app object of the translations app.&lt;br /&gt;
&lt;br /&gt;
The client side of the app service receives requests from all other apps via the local JavaScript API and sends them to the service. The result of the request is returned to the original app via the local JavaScript API&lt;br /&gt;
&lt;br /&gt;
== Translation - App Service ==&lt;br /&gt;
The App Service performs tasks in the following areas:&lt;br /&gt;
* Language recognition&lt;br /&gt;
* Caching&lt;br /&gt;
* Translations against the backend (deepl.com)&lt;br /&gt;
&lt;br /&gt;
=== Language recognition ===&lt;br /&gt;
An offline API is offered to recognize the language used in a string. This recognition is also used for translations to avoid unnecessary translations (e.g. EN to EN translations are prevented). This payload will not be sent to any backend service, thus avoiding unnecessary costs. A few features exist which should make sure, a recognized language is only considered, if there is enough confidence:&lt;br /&gt;
* Strings shorter than 6 words are skipped, since the chance for false positives are relatively high&lt;br /&gt;
* Strings in which there are not enough word matches to be confident for any language will be skipped, also because of high chances for false positives&lt;br /&gt;
* Strings that are more than one language with a nearly similar amount of word matches will be skipped&lt;br /&gt;
&lt;br /&gt;
Supported languages: cs, de, en-gb, es, fr, it, nl, pl, pt-pt, ro, ru, sl, tr&lt;br /&gt;
&lt;br /&gt;
=== Caching ===&lt;br /&gt;
To save costs, all translations are cached in the App Services database. If a string is translated multiple times, only the first translation is carried out by the backend, and the translated version is saved in the cache. A second translation is therefore free of charge and performs better.&lt;br /&gt;
&lt;br /&gt;
=== Translations against the backend ===&lt;br /&gt;
Translation requests that cannot be handled by the local cache are forwarded to the configured translation backend. After successful translation, the translated version is kept in the cache for future requests.&lt;br /&gt;
&lt;br /&gt;
The list of supported languages depends on the supported languages of the used [https://developers.deepl.com/docs/resources/supported-languages#target-languages service provider]. It will be read from the service provider each time the Translations App Service starts.&lt;br /&gt;
&lt;br /&gt;
=== Charts Statistics ===&lt;br /&gt;
The app service will provide telemetry data to the integrated Charts app service.&lt;br /&gt;
&lt;br /&gt;
;requestTranslate&lt;br /&gt;
:Translation requests (default) to the App Service&lt;br /&gt;
;requestTranslateAll&lt;br /&gt;
:TranslationAll requests to the App Service&lt;br /&gt;
;requestWebhookBasic&lt;br /&gt;
:Webhooks from external translations backend with legacy BasicAuth to the App Service&lt;br /&gt;
;requestWebhook&lt;br /&gt;
:Webhooks from external translations backend to the App Service&lt;br /&gt;
;DetectLanguagePreventTranslation&lt;br /&gt;
:Amount of translation requests that are not processed because language detection detected same languages&lt;br /&gt;
;CacheAdd&lt;br /&gt;
:New translation payload is stored in the cache&lt;br /&gt;
;CacheHit&lt;br /&gt;
:Translation request is solved by existing cache entry&lt;br /&gt;
;DeepL&lt;br /&gt;
:External backend request&lt;br /&gt;
;eTranslation&lt;br /&gt;
:External backend request&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
To troubleshoot this App Service, you need the traceflags &#039;&#039;App&#039;&#039;, &#039;&#039;Database&#039;&#039;, &#039;&#039;HTTP-Client&#039;&#039; in your App instance.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [https://sdk.innovaphone.com/15r1/web1/com.innovaphone.translation/com.innovaphone.translation.htm SDK Documentation - Translation API]&lt;br /&gt;
* [[{{NAMESPACE}}:Apps/PbxManager/App_Translations]]&lt;/div&gt;</summary>
		<author><name>Slu</name></author>
	</entry>
</feed>