<?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=RobinBaur</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=RobinBaur"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/RobinBaur"/>
	<updated>2026-05-05T19:57:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_myApps_platform_services&amp;diff=71748</id>
		<title>Reference13r1:Concept myApps platform services</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_myApps_platform_services&amp;diff=71748"/>
		<updated>2024-05-14T09:11:17Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: Undo revision 71747 by RobinBaur (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|myApps]]&lt;br /&gt;
myApps platform services provide various operating system specific services which can be used by other &#039;&#039;Apps&#039;&#039; running in the [[{{NAMESPACE}}:Concept myApps|myApps client]]. Those services typically are not available in the browser&#039;s JavaScript environment and hence must be implemented in native platform code. Therefore, the platform services are installed as native executable on the respective platform.&lt;br /&gt;
&lt;br /&gt;
When myApps is started in a web browser (and hence has no access to the platform services), some Apps will use [https://en.wikipedia.org/wiki/WebRTC WebRTC] services implemented by the browser instead.  For ease of reference, features available in this scenario are also described here.&lt;br /&gt;
&lt;br /&gt;
On windows, the platform services also come with their own web browser in which the myApps web App will be started then.  This browser is based on google&#039;s [https://en.wikipedia.org/wiki/Chromium_(web_browser) Chromium] open source software.&lt;br /&gt;
= Applies To =&lt;br /&gt;
&lt;br /&gt;
* [[{{NAMESPACE}}:Concept myApps|myApps]]&lt;br /&gt;
* myApps for Windows&lt;br /&gt;
* myApps for iOS&lt;br /&gt;
* myApps for Android&lt;br /&gt;
&lt;br /&gt;
* myApps Web App (WebRTC)&lt;br /&gt;
version 13r1&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
Not all features are available or required on all platforms.&lt;br /&gt;
 {|&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Feature&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Description&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot;| Availability&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| || || Windows || iOS || Android || Browser&amp;lt;ref&amp;gt;This refers to the myApps web application running in a browser with no platform services available&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| audio || manage local audio devices to record and playback audio conversations || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; (audio available but devices managed by web browser)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| video || manage local displays and cameras to capture and render video live stream || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; (video available but devices managed by web browser)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ringer || manage local ringing device || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| application sharing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp; presenter || share an application || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp; consumer  || view an application shared be the peer || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp; control|| take control of presenters application (mouse &amp;amp; keyboard) || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hot keys || capture key presses for quick invocation of phone apps (e.g. dial selected number) || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
| tel: and sip: URI handler || intercept clicks on tel: and sip: links in web sites to invoke phone apps || &amp;amp;#10004; || ? || ? || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| user activity || set presence state according to user activity ||  &amp;amp;#10004; || ? || ? || &amp;amp;#10004;&amp;lt;ref&amp;gt;limited, see [[#User_activity|User activity]] below&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| docking || myApps can be docked persistently to the right or left edge of your screens ||  &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| multi-windowing|| Apps can be launched in separate windows||  &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| notifications || display notifications with OS standard mechanism ||  &amp;amp;#10004; || &amp;amp;#10007;? || &amp;amp;#10007;? || &amp;amp;#10007;?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| phone book access || access local phone book ||  &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| office presence provider || maps PBX presence state to Microsoft office presence state ||  &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| external application start || start arbitrary external applications for calls || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| push || wake-up app from background mode on event (e.g. incoming call) || &amp;amp;#10007;  || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| app proxy|| a caching proxy that provides app persistence  || &amp;amp;#10004;  || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auto update || automatically updates myApps platform services to the same version the PBX has &amp;lt;ref&amp;gt;The then-current web app is always loaded from the PBX upon startup and hence up-to-date by definition&amp;lt;/ref&amp;gt;|| &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| three party conference || initiate 3-pty-conference using Softphone-App || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| exclude VPN || disable use of VPN connections for audio/video/appsharing || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX 13r1 and up&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== myApps for Windows ==&lt;br /&gt;
* Windows 10&lt;br /&gt;
* Windows Server 2016 and later versions&lt;br /&gt;
&lt;br /&gt;
=== 32 &amp;amp; 64 bit Windows ===&lt;br /&gt;
* 32 bit Windows: install the myAppsSetup32.msi from the App Store&lt;br /&gt;
* 64 bit Windows: install the myAppsSetup.msi from the App Store&lt;br /&gt;
** the 64 bit variant still installs into Program Files (x86), as the main myApps.exe is still a 32bit application&lt;br /&gt;
** the 64 bit variant just contains an additional 64 bit binary for the outlook search&lt;br /&gt;
&lt;br /&gt;
=== Windows N editions ===&lt;br /&gt;
&lt;br /&gt;
Windows N editions are missing the &#039;&#039;Media Feature Pack&#039;&#039; which is pre installed on other Windows versions.&lt;br /&gt;
&lt;br /&gt;
Please install the pack from [https://www.microsoft.com/en-us/software-download/mediafeaturepack Microsoft (Windows 10 pack)] before you install myApps. The installer will check if the file &amp;lt;code&amp;gt;C:\Windows\SysWOW64\mfplat.dll&amp;lt;/code&amp;gt; exist on your system.&lt;br /&gt;
&lt;br /&gt;
Make sure to install the correct pack depending on your Windows version! There are different packs for Windows 10 1703, 1803, 1809 and 32bit or 64bit etc.&lt;br /&gt;
&lt;br /&gt;
NB: Sometimes the myApps installation will not work even though the media pack is already installed. This is because the installer has no read access to check if the package is already installed. If the above-mentioned file exists and the installer asks to install the Windows Media Feature Pack nevertheless, you have to start the myApps install with administrative rights.&lt;br /&gt;
&lt;br /&gt;
== myApps for iOS ==&lt;br /&gt;
* iOS 12 or higher&lt;br /&gt;
&lt;br /&gt;
== myApps for Android ==&lt;br /&gt;
* Android 6.0 or higher. Android 6.x may need an update of the Chrome browser.&lt;br /&gt;
&lt;br /&gt;
= Licenses =&lt;br /&gt;
* No license needed for myApps platform services&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
myApps platform services is a native executable that is installed using the standard mechanisms on the respective operating system. It provides various advanced services which can be used by the myApps web client code as well as the Apps running in the myApps context. &lt;br /&gt;
&lt;br /&gt;
Also, on Windows, the platform services come with their own, dedicated browser to run myApps in.  This browser is based on [https://en.wikipedia.org/wiki/Chromium_(web_browser) Chromium].  On iOS and Android it&#039;s based on native embedded web view facilities instead.&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== RTP service for audio, video and data ===&lt;br /&gt;
The RTP service provides audio, video and data (app sharing) VoIP RTP endpoints (e.g. for softphones).  It supports STUN, TURN, ICE, SRTP, DTLS. Note however that unlike WebRTC, these endpoints do not &#039;&#039;require&#039;&#039; ICE and DTLS. In other words, they can communicate also with non-compliant (i.e. older) VoIP devices.&lt;br /&gt;
&lt;br /&gt;
Note that the available capabilities when not running the myApps platform services depend on the used browser&#039;s WebRTC implementation. See your browser documentation for details.&lt;br /&gt;
&lt;br /&gt;
Apps can request RTP channels using the [https://sdk.innovaphone.com/doc/launcher/Media.htm Media Protocol]&#039;s &#039;&#039;AllocChannel&#039;&#039; message.&lt;br /&gt;
&lt;br /&gt;
===== RTP ports=====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|  audio || 50000 -&amp;gt; 50099&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| video || 50100 -&amp;gt; 50199&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| data || 50200 -&amp;gt; 50299&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RTP service will enumerate all local interfaces and create local HOST candidates for ICE.  There is an option however to disregard VPN interfaces (more precisely such interfaces with type of &#039;&#039;IF_TYPE_PPP&#039;&#039; or &#039;&#039;IF_TYPE_TUNNEL&#039;&#039;).  This can eliminate quality issues when RTP data is transmitted through TCP based VPN tunnels.&lt;br /&gt;
&lt;br /&gt;
SRFLX and RELAY candidates are obtained using the STUN and TURN server configuration passed by the App (e.g the &#039;&#039;softphone&#039;&#039; App) as part of the &#039;&#039;AllocChannel&#039;&#039; request.&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;AllocChannel&amp;quot;,&amp;quot;channel&amp;quot;:&amp;quot;81429cba-396d-43de-8a76-ec020ba8796e&amp;quot;,&amp;quot;iceServers&amp;quot;:[{&amp;quot;urls&amp;quot;:&amp;quot;turn:myturn.domaincom:3478?transport=udp&amp;quot;,&amp;quot;username&amp;quot;:&amp;quot;turnuser&amp;quot;,&amp;quot;credential&amp;quot;:&amp;quot;pwd&amp;quot;,&amp;quot;credentialType&amp;quot;:&amp;quot;password&amp;quot;},{&amp;quot;urls&amp;quot;:&amp;quot;stun:mystun.domain.com:3478&amp;quot;}],&amp;quot;dn&amp;quot;:&amp;quot;Foo Bar&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;RemoteRtp&amp;quot;,&amp;quot;kind&amp;quot;:&amp;quot;video&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Codecs =====&lt;br /&gt;
&lt;br /&gt;
The installed myApps launchers provide codecs that can be used by softphone apps for media streams. When running in a web browser the codecs depend on the browser version and operating system. See the documentation of your browser for details.&lt;br /&gt;
&lt;br /&gt;
The following codecs are supported:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align:left;width:100px;&amp;quot;|Codec&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Windows-Launcher&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Android&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|iOS&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Firefox (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Chrome (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Edge (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Safari (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Opera (Browser)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left; background-color:lightgray&amp;quot; colspan=&amp;quot;9&amp;quot;|Audio&lt;br /&gt;
|-&lt;br /&gt;
|G711A&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|G711u&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|G722&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|G729&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|G729A&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|G729B&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|G729AB&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=Opus OPUS-NB]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=Opus OPUS-WB]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left; background-color:lightgray&amp;quot; colspan=&amp;quot;9&amp;quot;|Video&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=VP8 VP8]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=VP9 VP9]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=H264 H264]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left; background-color:lightgray&amp;quot; colspan=&amp;quot;9&amp;quot;|Application Sharing&lt;br /&gt;
|-&lt;br /&gt;
|Share&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|Watch&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔*&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔*&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;* small presentation only&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Video capture =====&lt;br /&gt;
&lt;br /&gt;
The default resolution for video capture is 352x288 if available.  Otherwise, 320x240 is used.  The frame rate is 30 fps if available, otherwise 15 fps is used. The resulting average bandwidth will be 350 kbps.&lt;br /&gt;
&lt;br /&gt;
===== Application sharing =====&lt;br /&gt;
&lt;br /&gt;
Screen content and mouse position will be transmitted by the presenter.  Mouse and keyboard control can be handed over to viewers. Bitrate is restricted to 500 kbps.&lt;br /&gt;
&lt;br /&gt;
===== Device handling =====&lt;br /&gt;
&lt;br /&gt;
The RTP service enumerates microphones, loudspeaker, cameras and ringing devices and notifies apps when devices come and go. It is up to the apps using the devices to store preferences.&lt;br /&gt;
&lt;br /&gt;
In the Windows Launcher the RTP service also enables some extended features (such as hook switch or volume control) for supported USB headsets or Bluetooth headsets connected to myApps.  &lt;br /&gt;
&lt;br /&gt;
For this to work, vendor specific development kits from Jabra, Epos (formerly Sennheiser) and Poly (formerly Plantronics) are integrated.  &lt;br /&gt;
&lt;br /&gt;
Note that it is possible to inhibit the start of the Sennheiser SDK (SenncomSDK.exe) using the &amp;lt;code&amp;gt;DISABLEHEADSETS&amp;lt;/code&amp;gt; directive of the installer (see [[#MSI_parameters |  MSI parameters ]] below).&lt;br /&gt;
The supported headset-SDKs determine which headset vendors are recommended to be used with the myApps softphone app. &lt;br /&gt;
&amp;lt;!--Keywords: myapps softphone supported headsets sdk--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Ring tones =====&lt;br /&gt;
&lt;br /&gt;
Ring tones can be played. Apps can choose the tone from a pre-defined list of ring tones.&lt;br /&gt;
&lt;br /&gt;
On Windows, custom ring tones can be uploaded as .mp3 files to the &amp;lt;code&amp;gt;ringtones&amp;lt;/code&amp;gt; sub-directory of myApps&#039; install directory (which usually is in &amp;lt;code&amp;gt;C:\Program Files (x86)\innovaphone\myApps&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===== Debugging =====&lt;br /&gt;
For extended debugging, turn on the &#039;&#039;Audio&#039;&#039;, &#039;&#039;Media&#039;&#039; and &#039;&#039;AppSharing&#039;&#039; traces in myApps.&lt;br /&gt;
&lt;br /&gt;
=== Hot keys ===&lt;br /&gt;
On Windows systems, myApps platform services can listen for hot keys and invoke certain functions. Invocation is done by sending API messages to myApps which passes it to an appropriate API provider (in the cases described here, this will be a &#039;&#039;phone&#039;&#039; or &#039;&#039;softphone&#039;&#039; or &#039;&#039;rcc&#039;&#039; App typically.  See [[Reference13r1:Concept_myApps#Client_APIs_and_default_apps | Client APIs and default apps]] for more details about this mechanism.&lt;br /&gt;
&lt;br /&gt;
The hot keys can be specified using the &#039;&#039;advanced settings&#039;&#039; user interface (see [[#UI_elements | UI elements]] below. Any of the function keys F1 to F11 (optionally combined with up to two modifier keys &#039;&#039;alt&#039;&#039;, &#039;&#039;ctrl&#039;&#039;, &#039;&#039;shift&#039;&#039; or &#039;&#039;win&#039;&#039;) can be chosen for each function.&lt;br /&gt;
; dial selected number : Initiates a call using the currently selected text as target.&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;PrepareCall&#039;&#039; message with the &#039;&#039;text&#039;&#039; argument set to the selected text and the &#039;&#039;adjust&#039;&#039; argument set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;mt&amp;quot;:&amp;quot;PrepareCall&amp;quot;,&amp;quot;text&amp;quot;:&amp;quot;13&amp;quot;,&amp;quot;adjust&amp;quot;:true}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; accept call : Accepts a currently alerting call.&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;ConnectCall&#039;&#039; message will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;ConnectCall&amp;quot;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; reject/disconnect call : Rejects a currently alerting call or disconnects an active call.&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;DisconnectCall&#039;&#039; message will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;DisconnectCall&amp;quot;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URL Handler ===&lt;br /&gt;
&lt;br /&gt;
On Windows systems, two URI-handler are installed with the myApps platform services.  Windows will call up this URI handler when a user clicks on an appropriate link, for example in a web site.&lt;br /&gt;
&lt;br /&gt;
The handler will the send an API message to myApps which passes it to an appropriate API provider (in the cases described here, this will be a &#039;&#039;phone&#039;&#039; or &#039;&#039;softphone&#039;&#039; or &#039;&#039;rcc&#039;&#039; App typically.  See [[Reference13r1:Concept_myApps#Client_APIs_and_default_apps | Client APIs and default apps]] for more details about this mechanism.&lt;br /&gt;
&lt;br /&gt;
; tel URI : call a number, e.g. &amp;lt;code&amp;gt;tel:4711&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;PrepareCall&#039;&#039; message with the &#039;&#039;num&#039;&#039; argument set to the selected text and the &#039;&#039;adjust&#039;&#039; argument set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;StartCall&amp;quot;,&amp;quot;num&amp;quot;:&amp;quot;4711&amp;quot;,&amp;quot;adjust&amp;quot;:true}}&amp;lt;/code&amp;gt;&lt;br /&gt;
; sip URI : call a SIP name, e.g. &amp;lt;code&amp;gt;sip:zkl@innovaphone.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;PrepareCall&#039;&#039; message with the &#039;&#039;sip&#039;&#039; argument set to the selected text and the &#039;&#039;adjust&#039;&#039; argument set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;StartCall&amp;quot;,&amp;quot;sip&amp;quot;:&amp;quot;zkl@innovaphone.com&amp;quot;,&amp;quot;adjust&amp;quot;:true}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== User activity ===&lt;br /&gt;
On Windows systems, the myApps platform services can monitor user keyboard/mouse activity and change the user&#039;s presence state after a certain amount of inactivity.  The timeout can be specified using the &#039;&#039;advanced settings&#039;&#039; user interface (see [[#UI_elements | UI elements]] below.&lt;br /&gt;
&lt;br /&gt;
myApps will then send a [https://sdk.innovaphone.com/doc/appwebsocket/myApps.htm#SetUserActivity&#039;&#039;SetUserActivity&#039;&#039;] message to the PBX using the &#039;&#039;myApps&#039;&#039; protocol.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;SetUserActivity&amp;quot;,&amp;quot;inactive&amp;quot;:true}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will change the &#039;&#039;status&#039;&#039; property of the &#039;&#039;im:&#039;&#039; contact for the user&#039;s own presence and hence result in a presence update from the PBX to myApps&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;UpdateOwnPresence&amp;quot;,&amp;quot;presence&amp;quot;:[{...},{&amp;quot;contact&amp;quot;:&amp;quot;im:&amp;quot;,&amp;quot;activity&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;closed&amp;quot;}]}&amp;lt;/code&amp;gt;&lt;br /&gt;
The &#039;&#039;closed&#039;&#039; status is reflected in the grey status color when displaying a contact [[Image:myapps-inactive.png]].&lt;br /&gt;
&lt;br /&gt;
On iOS and Android, the state is set to &#039;&#039;inactive&#039;&#039; as soon as the App is brought to background.&lt;br /&gt;
When myApps platform services are not available (i.e. when running the web application in a browser solely) a limited user activity monitoring is available: the state is set to active when the web page is not used for more than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
=== Notifications ===&lt;br /&gt;
&lt;br /&gt;
The myApps platform services can use the OS specific notification mechanism (e.g. &#039;&#039;desktop notifications&#039;&#039; on Windows) to display messages (e.g. &#039;&#039;incoming new chat message&#039;&#039;) to the user.&lt;br /&gt;
&lt;br /&gt;
Note that the actual rendering of the notification is under control of the OS.  Therefore, myApps must be allowed to show notifications and its appearance can be restricted by OS native settings.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
If notifications do not work, please check:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Shortcut&#039;&#039;&#039;. During myApps installation a shortcut must be created in &#039;&#039;&#039;C:\ProgramData\Microsoft\Windows\Start Menu\Programs\innovaphone\myApps&#039;&#039;&#039; for the notifications to work. Please check that this shortcut is present.&lt;br /&gt;
* &#039;&#039;&#039;Windows Settings&#039;&#039;&#039;. Check following screenshots:&lt;br /&gt;
[[Image:notifications0.jpg]]&lt;br /&gt;
[[Image:notifications1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Local phonebook access ===&lt;br /&gt;
The myApps platform services implement an &#039;&#039;API provider&#039;&#039; for the [http://sdk.innovaphone.com/web1/com.innovaphone.search/lib1_api_search.htm &#039;&#039;com.innovaphone.search&#039;&#039; API]]. They perform search capabilities on the OS&#039; local phone books which can be used by Apps like the &#039;&#039;phoneapp&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Apps would send a &#039;&#039;Search&#039;&#039; request to the API:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;dev:SwPh_zkl_5e42e884&amp;quot;,&amp;quot;provider&amp;quot;:&amp;quot;*&amp;quot;,&amp;quot;src&amp;quot;:&amp;quot;4&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;Search&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;contact&amp;quot;,&amp;quot;search&amp;quot;:&amp;quot;john doe&amp;quot;},&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.search&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
Search results are delivered as &#039;&#039;SearchInfo&#039;&#039; messages:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiResult&amp;quot;,&amp;quot;src&amp;quot;:&amp;quot;3&amp;quot;,&amp;quot;provider&amp;quot;:&amp;quot;@local-8125d22e37-519d-4056-bfe5-c52ef2ae8fabb0&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;dev:SwPh_zkl_5e42e884&amp;quot;,&amp;quot;client&amp;quot;:&amp;quot;@client-f62702dd86-be3f-47fc-b4bc-7a21627b75b2ea&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;SearchInfo&amp;quot;,&amp;quot;relevance&amp;quot;:2000,&amp;quot;adjust&amp;quot;:true,&amp;quot;type&amp;quot;:&amp;quot;contact&amp;quot;,&amp;quot;contact&amp;quot;:{&amp;quot;givenname&amp;quot;:&amp;quot;John&amp;quot;,&amp;quot;sn&amp;quot;:&amp;quot;Doe&amp;quot;,&amp;quot;company&amp;quot;:&amp;quot;ACME&amp;quot;,&amp;quot;position&amp;quot;:&amp;quot;Head of everything&amp;quot;,&amp;quot;telephonenumber&amp;quot;:[&amp;quot;11111&amp;quot;,&amp;quot;22222&amp;quot;],&amp;quot;homephone&amp;quot;:[&amp;quot;+4944444&amp;quot;,&amp;quot;33333&amp;quot;],&amp;quot;mobile&amp;quot;:[&amp;quot;+49 (123) 55555&amp;quot;]}},&amp;quot;api&amp;quot;:&amp;quot;com.innovaphone.search&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
Note that Apps never perform a reverse (number) lookup, neither is there an API defined for it.  This is done centrally within the PBX.  However, as the PBX has no access to the user&#039;s local phone books, entries therein are not searched for reverse lookup.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
On Windows, the search is performed in all of the user&#039;s Outlook contact folders.  As opposed to the search implemented in the &#039;&#039;Contacts&#039;&#039; and &#039;&#039;Users&#039;&#039; App, all items are returned which match any of the search words (i.e. searching for &#039;&#039;a b&#039;&#039; will return items matching either &#039;&#039;a&#039;&#039; or &#039;&#039;b&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
; searched properties : fistname, lastname&lt;br /&gt;
; returned properties : Following Outlook contact phone number properties are returned  (if available):&lt;br /&gt;
&lt;br /&gt;
:* OFFICE_TELEPHONE_NUMBER as &#039;&#039;telephonenumber&#039;&#039;&lt;br /&gt;
:* OFFICE2_TELEPHONE_NUMBER as &#039;&#039;telephonenumber&#039;&#039;&lt;br /&gt;
:* HOME_TELEPHONE_NUMBER as &#039;&#039;homephone&#039;&#039;&lt;br /&gt;
:* HOME2_TELEPHONE_NUMBER as &#039;&#039;homephone&#039;&#039;&lt;br /&gt;
:* MOBILE_TELEPHONE_NUMBER as &#039;&#039;mobile&#039;&#039;&lt;br /&gt;
:* BUSINESS_FAX_NUMBER as &#039;&#039;facsimiletelephonenumber&#039;&#039;&lt;br /&gt;
Note that contact information is cached in the search provider.  Updated contacts may therefore become effective after a while only.&lt;br /&gt;
Outlook search will create its own trace file &amp;lt;code&amp;gt;myAppsOutlookSearch-&amp;lt;/code&amp;gt;&#039;&#039;date-time&#039;&#039;&amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; in the standard trace directory.&lt;br /&gt;
&lt;br /&gt;
This search provider is always installed and active and cannot be disabled.  There is no need (nor possibility) to enable it in the &#039;&#039;Apps&#039;&#039; tab of the PBX&#039;s user object.  Also, no &#039;&#039;App&#039;&#039; object needs to be created for it.&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Office integration ===&lt;br /&gt;
&lt;br /&gt;
The myApps platform services has a &#039;&#039;office presence provider&#039;&#039; that can provide the user&#039;s presence state to Office applications.  See [[Reference13r1:Concept_myApps_Office_Integration|myApps Office Integration]] for details.&lt;br /&gt;
&lt;br /&gt;
This feature is installed by default.  However, it can be disabled using the &#039;&#039;OFFICEPRESENCE&#039;&#039; MSI Parameter.  Also, a check-mark is available in the setup dialog.&lt;br /&gt;
&lt;br /&gt;
=== Call an external application for calls ===&lt;br /&gt;
&lt;br /&gt;
Phone Apps (such as the phoneapp or softphone) can initiate the start of an external application when a new call appears (either incoming or outgoing).  The actual spawning of the application is done by the myApps platform service.  Also, the application properties (such as e.g. the executable&#039;s path) is configured in the myApps platform services (see [[#UI_elements|Advanced settings]] in the &#039;&#039;UI elements&#039;&#039; section below).&lt;br /&gt;
&lt;br /&gt;
A number of arguments can be passed to the application by substituting $-variables in the &#039;&#039;Parameter&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
; $n : phone number as dialed (called party number for outgoing calls) or received (calling party number for incoming calls)&lt;br /&gt;
&lt;br /&gt;
; $N : called or calling party number in &#039;&#039;national&#039;&#039; format (e.g. 07031730090)&lt;br /&gt;
&lt;br /&gt;
; $I : called or calling party number in &#039;&#039;international&#039;&#039; format (e.g. +497031730090)&lt;br /&gt;
&lt;br /&gt;
: note that both $N and $I only work if $n includes both subscriber number and area code (e.g. 07031730090). Otherwise they are equal to $n&lt;br /&gt;
&lt;br /&gt;
; $d : display name of peer (if known)&lt;br /&gt;
&lt;br /&gt;
; $c : conference id&lt;br /&gt;
&lt;br /&gt;
: this is a globally unique ID for this call and may be used to relate the call to the &#039;&#039;guid&#039;&#039; found in the CallInfo structure in the [http://wiki.innovaphone.com/index.php?title=Reference10:SOAP_API#CallInfo SOAP-API] and [http://sdk.innovaphone.com/doc/appwebsocket/RCC.htm RCC-API ].  Also, corresponding [[Reference10:Call_Detail_Record_CDR_PBX|CDRs]] can be related using the &#039;&#039;event&#039;&#039; tag&#039;s &#039;&#039;conf&#039;&#039; attribute.&lt;br /&gt;
The start of an external application can be requested using the &#039;&#039;com.innovaphone.externalapps&#039;&#039; API.&lt;br /&gt;
&lt;br /&gt;
=== Push ===&lt;br /&gt;
&lt;br /&gt;
Mobile operating systems usually inhibit network operation of apps which run in the background or are closed by the user.  This is done in order to reduce battery consumption.  Unfortunately, this also stops such apps to maintain a registration by regularly sending &#039;&#039;keep alive&#039;&#039; messages to a server (in our case to the PBX).  As a result, myApps will be disconnected from the PBX.   When the PBX determines that there is an event for the application which needs a response, it needs to wake up the app using a dedicated channel provided by the operating system.  This mechanism is know as &#039;&#039;push&#039;&#039;. When running on iOS or Android, myApps supports &#039;&#039;push&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
For &#039;&#039;push&#039;&#039; to work, a [[{{NAMESPACE}}:PBX/Objects/Push|&#039;&#039;push object&#039;&#039;]] needs to [[Course13:IT Connect - 10.1 Push Object | be configured in the PBX ]].  Also, it needs to be enabled on the mobile phone for the myApps app.&lt;br /&gt;
This mechanism is quite similar in v12 and v13, so you can refer to [[Reference12r2:Concept Push Notifications for myPBX iOS and Android]] for more details. &lt;br /&gt;
&lt;br /&gt;
Also, helpful hints can be found in [[Howto:Troubleshoot v13 Push with myApps for Android and iOS]].&lt;br /&gt;
&lt;br /&gt;
=== App Proxy ===&lt;br /&gt;
&lt;br /&gt;
myApps runs further &#039;&#039;Apps&#039;&#039; (such as e.g. the &#039;&#039;phoneapp&#039;&#039;) as a web page in an IFRAME of the browser myApps is running in.  The App&#039;s page code is loaded either from the PBX or from an &#039;&#039;application platform&#039;&#039; (AP).   This however would mean that the App&#039;s IFRAME would remain empty (a dead white screen) when the PBX or AP is not available. To make sure the App can start-up anyway, the myApps platform services feature the so-called &#039;&#039;App Proxy&#039;&#039;.  This is a caching proxy that caches all the App code so it is available even in case of network failure. When myApps runs in the context of the platform services, Apps are therefore not loaded from the App source directly, but from the local App proxy. &lt;br /&gt;
&lt;br /&gt;
The cached files are stored in the PCs local file system in the &amp;lt;code&amp;gt;C:\Users\...\AppData\Local\innovaphone\myApps\appproxy&amp;lt;/path&amp;gt;&amp;lt;/code&amp;gt;.  There is no configuration required.  However, if myApps seems to run with outdated or corrupt cached copies of the App, you can safely delete the entire directory.&lt;br /&gt;
&lt;br /&gt;
=== Auto update ===&lt;br /&gt;
&lt;br /&gt;
On Windows, the myApps platform services can auto-update themselves to a common version.  This is controlled by the [[{{NAMESPACE}}:PBX/Config/myApps#Launcher_Software_Update | &#039;&#039;Launcher Software Update&#039;&#039; ]] settings under &#039;&#039;PBX/Config/myApps&#039;&#039; in the PBX. &lt;br /&gt;
&lt;br /&gt;
When myApps is started or the user logs in or myApps needs to re-connect to the PBX, the platform services will use the [http://sdk.innovaphone.com/web1/com.innovaphone.client/lib1_api_client.htm com.innovaphone.client API] to learn the desired version (&#039;&#039;launcherUpdateBuild&#039;&#039;, which is part of the API&#039;s &#039;&#039;model&#039;&#039;). If this differs from the current version, the platform services will try to download the respective new version. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mt&amp;quot;: &amp;quot;ApiUpdate&amp;quot;,&lt;br /&gt;
    &amp;quot;apis&amp;quot;: {&lt;br /&gt;
        &amp;quot;com.innovaphone.client&amp;quot;: {&lt;br /&gt;
            &amp;quot;@client&amp;quot;: {&lt;br /&gt;
                &amp;quot;title&amp;quot;: &amp;quot;innovaphone myApps&amp;quot;,&lt;br /&gt;
                &amp;quot;model&amp;quot;: {&lt;br /&gt;
                    &amp;quot;launcher&amp;quot;: true,&lt;br /&gt;
                    &amp;quot;launcherUpdateBuild&amp;quot;: &amp;quot;134906&amp;quot;,&lt;br /&gt;
                    &amp;quot;appStoreUrl&amp;quot;: &amp;quot;http://store.innovaphone.com/release/download/&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installation of the downloaded version is done by the &#039;&#039;innovaphonemyAppsUpdateService&#039;&#039;. This service is installed and enabled during the initial install of the myApps platform services.  To disable auto-update, either leave the &#039;&#039;Launcher Software Update&#039;&#039; settings empty or set the service&#039;s start mode to &#039;&#039;disabled&#039;&#039; in the Windows &#039;&#039;services control panel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Note that the update service does not work on terminal servers. Administrators must do myApps base services updates using standard windows mechanisms.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Devices&#039;&#039; app can not update software installed on Windows PCs directly. However, when the PBX is updated using an &#039;&#039;update job&#039;&#039; in the &#039;&#039;Devices&#039;&#039; App, the &#039;&#039;Launcher Software Update&#039;&#039; settings will be updated accordingly and hence the myApps base services will ultimately also be update to the same version.&lt;br /&gt;
&lt;br /&gt;
==UI elements ==&lt;br /&gt;
There are a few user interfaces provided by the platform services:&lt;br /&gt;
===tray-icon (Windows only) ===&lt;br /&gt;
::[[Image:myapps-tray.png]]&lt;br /&gt;
:Allows to&lt;br /&gt;
:* terminate myApps&lt;br /&gt;
:* toggle the &#039;&#039;autostart&#039;&#039; state&lt;br /&gt;
:* toggle the &#039;&#039;show in task bar&#039;&#039; state&lt;br /&gt;
:* open the trace folder&lt;br /&gt;
:&lt;br /&gt;
=== PBX connect form===&lt;br /&gt;
:: [[Image:myapps-connect.png]]&lt;br /&gt;
: Allows the user to specify the connect data for the PBX (i.e. IP address or DNS name)&lt;br /&gt;
:&lt;br /&gt;
=== Advanced settings===&lt;br /&gt;
::[[Image:myapps-settings0.png]]&lt;br /&gt;
::[[Image:myapps-settings.png]] [[Image:myapps-settings2.png]] [[Image:myapps-settings3.png]]&lt;br /&gt;
&lt;br /&gt;
: Allows to modify various platform dependant settings (such as e.g. the hotkey selection on Windows)&lt;br /&gt;
&lt;br /&gt;
== Interfaces ==&lt;br /&gt;
=== Provided APIs ===&lt;br /&gt;
&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.search/lib1_api_search.htm com.innovaphone.search] : access to local phone book entries by the [[#Local_phonebook_access|Local phonebook access]] component.&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.launcher/com.innovaphone.launcher.htm com.innovaphone.launcher] : display of OS specific user notifications and receipt of related user actions&lt;br /&gt;
; com.innovaphone.notificationhandler : ???&lt;br /&gt;
; com.innovaphone.externalapps : to start external applications, see [[#Call_an_external_application_for_calls |Call an external application for calls ]] above&lt;br /&gt;
; com.innovaphone.callkit : ???&lt;br /&gt;
&lt;br /&gt;
=== Used APIs ===&lt;br /&gt;
&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm com.innovaphone.phone] : used to initiate new or manipulate existing calls by the [[#Hot_keys|Hot keys]] and [[#URL_handler|URL handler]] components.&lt;br /&gt;
&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.client/lib1_api_client.htm com.innovaphone.client] : the model is used to learn the update settings, see [[#Auto_update|Auto update]] above&lt;br /&gt;
&lt;br /&gt;
=== Protocols ===&lt;br /&gt;
&lt;br /&gt;
; [https://sdk.innovaphone.com/doc/launcher/Media.htm Media Protocol] : used by apps to allocate RTP channels, see [[#RTP_service_for_audio.2C_video_and_data|RTP service for audio, video and data]] above&lt;br /&gt;
&lt;br /&gt;
== Related App Services ==&lt;br /&gt;
&lt;br /&gt;
none&lt;br /&gt;
&lt;br /&gt;
== Known limitations ==&lt;br /&gt;
; Button on Bluetooth headsets not functional on myApps for iOS : The button of Bluetooth headsets doesn&#039;t provide to accept or disconnect calls. The button on wired earphones does.&lt;br /&gt;
&lt;br /&gt;
; Incoming call as banner on myApps for iOS : Since iOS 14 the iOS CallKit presents incoming calls as a banner leaving the original green answer button of myApps visible. Use only the blue button of the banner to accept the call or change iPhone Settings, App &amp;quot;Phone&amp;quot;, &amp;quot;Incoming Calls&amp;quot; to &amp;quot;Full Screen&amp;quot; to hide the myApps user interface again during call answering.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
myApps platform services are installed on Windows using the .msi file found in the &#039;&#039;myApps Windows&#039;&#039; package from [https://store.innovaphone.com/release/download.htm store.innovaphone.com].&lt;br /&gt;
&lt;br /&gt;
myApps can update itself automatically, see [[#Auto_update|Auto update]] above.&lt;br /&gt;
&lt;br /&gt;
=== MSI Parameters and install options ===&lt;br /&gt;
&lt;br /&gt;
The MSI installer of myApps for Windows supports the following parameters and can be edited with [https://docs.microsoft.com/en-us/windows/win32/msi/orca-exe Microsoft Orca]. You can add your parameters in the table &#039;&#039;property&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; SERVER: the PBX&#039;s dns server name&lt;br /&gt;
; OFFICEPRESENCE: &#039;&#039;&#039;false&#039;&#039;&#039; to disable presence integration in Microsoft Office&lt;br /&gt;
: this is also available as a check-mark when running the install manually&lt;br /&gt;
&lt;br /&gt;
; DISABLEHEADSETS: &#039;&#039;&#039;true&#039;&#039;&#039; to disable headsets support, see [[#Device_handling|Device handling]] above&lt;br /&gt;
&lt;br /&gt;
; EXTERNALAPPS: pre-define external applications, see [[#Call_an_external_application_for_calls|Call an external application for calls]] above&lt;br /&gt;
: e.g. &amp;lt;code&amp;gt;&amp;quot;{\&amp;quot;externalApps\&amp;quot;:[{\&amp;quot;id\&amp;quot;:1,\&amp;quot;name\&amp;quot;:\&amp;quot;Wireshark\&amp;quot;,\&amp;quot;path\&amp;quot;:\&amp;quot;C:\\Program Files\\Wireshark\\wireshark.exe\&amp;quot;,\&amp;quot;param\&amp;quot;:\&amp;quot;\&amp;quot;,\&amp;quot;autostart\&amp;quot;:true]}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; FORCERESTART: &#039;&#039;&#039;true&#039;&#039;&#039; (or any string ...) kills myApps during the installation and restarts it for the currently logged in user, if it was running&lt;br /&gt;
&lt;br /&gt;
; DISABLELOCALHOST: &#039;&#039;&#039;true&#039;&#039;&#039; to disable use of &#039;&#039;&#039;localhost&#039;&#039;&#039; string to access the local webserver. Use &#039;&#039;&#039;127.0.0.1&#039;&#039;&#039; instead&lt;br /&gt;
&lt;br /&gt;
Current settings are stored in the registry at &amp;lt;code&amp;gt;Computer\HKEY_CURRENT_USER\Software\innovaphone\myApps&amp;lt;/code&amp;gt; or at &amp;lt;code&amp;gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\innovaphone\myApps&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== iOS ==&lt;br /&gt;
&lt;br /&gt;
myApps platform services are installed on iOS by loading &#039;&#039;innovaphone myApps&#039;&#039; from the &#039;&#039;App Store&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
&lt;br /&gt;
myApps platform services are installed on Android by loading &#039;&#039;innovaphone myApps&#039;&#039; from the &#039;&#039;Play Store&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
When myApps runs under the myApps platform services, it will show various platform specific settings as part of its &#039;&#039;burger menu&#039;&#039;, so the user can set them.  See &#039;&#039;Advanced settings&#039;&#039; in [[#UI_elements|UI elements]] above.&lt;br /&gt;
&lt;br /&gt;
Some options can also be set globally for all myApps clients in the PBX&#039;s [[Reference13r1:PBX/Config/myApps#Client_Settings|PBX/Config/myApps &#039;&#039;Client Settings&#039;&#039;]]&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Option&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Description&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Where to set&lt;br /&gt;
&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot;| Availability&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| || || User menu || PBX &#039;&#039;Client Settings&#039;&#039; || Windows || iOS || Android&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Autostart || Launch myApps on login || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Appear offline after || controls after which idle time a user is considered &#039;&#039;inactive&#039;&#039;. See [[#User_activity|User activity]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Hotkeys || Hotkeys for call dial, accept, reject. See [[#Hot_keys|Hot keys]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Docking || Docking mode (left, right, none). See [[#???|??]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Desktop notifications|| Turn on/off platform notifications. See [[#Notifications|  Notifications]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007;? || &amp;amp;#10007;?&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| VPN || Disable VPN address for ICE candidate selection. See [[#RTP_ports| RTP ports]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Show in taskbar|| Show myApps in the taskbar in addition to it&#039;s tray icon.  || &amp;amp;#10004; ||&amp;amp;#10007; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Log flags || turn on/off certain trace levels. See [[#Troubleshooting|Troubleshooting]] below.  || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| External applications || define the applications available for Apps to be started. See [[#Call_an_external_application_for_calls|Call an external application for calls]] above.  || &amp;amp;#10004; ||&amp;amp;#10007; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ring in headset || send ring tone for incoming to headset instead of loudspeaker (should be in phoneapp rather???)|| &amp;amp;#10004; ||&amp;amp;#10007; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|}&lt;br /&gt;
== Start parameters for Windows ==&lt;br /&gt;
&lt;br /&gt;
On Windows, it is not possible to pass start parameters from the [https://www.chromium.org/developers Chromium documentation] to the myApps process.&lt;br /&gt;
&lt;br /&gt;
== OS Settings for Windows ==&lt;br /&gt;
Windows settings can influence the display of &#039;&#039;Desktop notifications&#039;&#039;. See [https://support.microsoft.com/en-us/help/4028678/windows-10-change-notification-settings Change notification settings in Windows 10] for details.&lt;br /&gt;
&lt;br /&gt;
== OS settings for Android ==&lt;br /&gt;
; Events : The appearance of notifications can be controlled here.&lt;br /&gt;
&lt;br /&gt;
; Call accounts : For proper incoming call signaling, the call account &#039;&#039;myApps&#039;&#039; needs to be enabled. Note that on Samsung smartphones the call account switch likely toggles back and a few tries may need to be done until it persists. Please double-check the state.&lt;br /&gt;
&lt;br /&gt;
; Background data, unlimited data usage : Grant background data use to enable &#039;&#039;myApps&#039;&#039; to connect to the PBX immediately on an incoming call.&lt;br /&gt;
&lt;br /&gt;
; Overlaying : This setting is not needed if call account &#039;&#039;myApps&#039;&#039; has been enabled. Should there be a reason for not enabling call account &#039;&#039;myApps&#039;&#039;, the permission for overlaying needs to be granted on Android 10 or higher for proper call signaling.&lt;br /&gt;
&lt;br /&gt;
Note: If no SIM card is installed some Android smartphones exhibit a problem dialing from the smartphone contacts. The contacts app shows a choice &#039;&#039;Select SIM card for this call&#039;&#039; but all possible dialers are greyed out. In this case make myApps the default phone app in Android settings &#039;&#039;Apps, Default apps, Telephony&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OS settings for iOS ==&lt;br /&gt;
; Notifications : The appearance of notifications can be controlled in iOS &#039;&#039;Settings, myApps&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
myApps platform services can write various traces for debugging.  Trace can be turned on and off selectively in the [[#Advanced settings|Advanced settings]].&lt;br /&gt;
&lt;br /&gt;
The following trace flags can be set:&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align: left; font-weight: bold&amp;quot; |  Abbreviation&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;text-align: left; font-weight: bold&amp;quot; |code&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| App||0x000000001|| logs from the App Service itself&lt;br /&gt;
|-&lt;br /&gt;
| DNS||0x000000008|| logs DNS requests and results&lt;br /&gt;
|-&lt;br /&gt;
| HTTP client||0x000000080|| http client logs&lt;br /&gt;
|-&lt;br /&gt;
| TLS||0x000000400|| TLS logs&lt;br /&gt;
|-&lt;br /&gt;
| TCP||0x000000800|| TCP logs&lt;br /&gt;
|-&lt;br /&gt;
| LDS||0x000001000|| local domain sockets&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket client||0x000004000|| logs outgoing websocket connections&lt;br /&gt;
|-&lt;br /&gt;
| App WebSocket||0x000008000|| logs app websocket connections (e.g. from PBX objects to an App Service or from the UI to the App Service)&lt;br /&gt;
|-&lt;br /&gt;
| UDP||0x000200000|| UDP logs&lt;br /&gt;
|-&lt;br /&gt;
| DTLS||0x000400000|| logs DTLS handshake and messages&lt;br /&gt;
|-&lt;br /&gt;
| Media||0x000800000|| logs media events&lt;br /&gt;
|-&lt;br /&gt;
| Media channel||0x001000000|| logs RTP/SCTP media connections&lt;br /&gt;
|-&lt;br /&gt;
| ICE||0x002000000|| logs ICE messages between peers&lt;br /&gt;
|-&lt;br /&gt;
| TURN||0x004000000|| logs TURN messages between peers&lt;br /&gt;
|-&lt;br /&gt;
| AppSharing||0x008000000|| logs AppSharing connection&lt;br /&gt;
|-&lt;br /&gt;
| Audio||0x010000000|| logs Audio connection and headset events&lt;br /&gt;
|-&lt;br /&gt;
| Video||0x020000000|| logs video connection and webcam events&lt;br /&gt;
|-&lt;br /&gt;
| Browser||0x040000000|| logs Chromium events&lt;br /&gt;
|-&lt;br /&gt;
| AppProxy||0x080000000|| logs requests which are proxied between the local webserver and the remote server&lt;br /&gt;
|-&lt;br /&gt;
| Webserver||0x200000000|| enables webserver specific logs&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;code&#039;&#039; can be or&#039;ed and used as value for the &#039;&#039;Log flags&#039;&#039; field in [[Reference13r1:PBX/Config/myApps#Client_Settings|PBX/Config/myApps/Client Settings]].&lt;br /&gt;
&lt;br /&gt;
; Windows :On Windows, traces are written to the &amp;lt;code&amp;gt;C:\Users\[UserName]\AppData\Local\innovaphone\myApps&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
:* myApps-&#039;&#039;date-time&#039;&#039;.txt : main log file for the platform services&lt;br /&gt;
&lt;br /&gt;
:* myAppsOutlookSearch-&#039;&#039;date-time&#039;&#039;.txt : log file for the Outlook phone book access&lt;br /&gt;
&lt;br /&gt;
:* myAppsHookController-&#039;&#039;date-time&#039;&#039;.txt : log file for the hot-key interceptor (see [[#Hot_keys|Hot keys]])&lt;br /&gt;
&lt;br /&gt;
; :myApps update traces are written to the &amp;lt;code&amp;gt;%windir%\temp\&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
:* myAppsInstall.txt: MSI installation file&lt;br /&gt;
:* myAppsUpdateService-&#039;&#039;date-time&#039;&#039;.txt: myApps update service traces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Android : traces can be sent by e-mail.&lt;br /&gt;
&lt;br /&gt;
: also, an Android device might also be connected to a PC via an USB cable to get the traces. The files can be found in &amp;lt;code&amp;gt;Android/data/com.innovaphone.clientandroid/files&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; iOS : traces can be sent by e-mail.&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
&lt;br /&gt;
* [[Reference13r1:Concept_myApps]]&lt;br /&gt;
* [[Reference13r1:Concept_myApps_Office_Integration]]&lt;br /&gt;
* [[Reference13r1:Concept_myAPPs_Search_in_local-Outlook_Contacts]]&lt;br /&gt;
&lt;br /&gt;
* [[Reference10:Call_Detail_Record_CDR_PBX]]&lt;br /&gt;
&lt;br /&gt;
* [[Reference12r2:Concept Push Notifications for myPBX iOS and Android]]&lt;br /&gt;
&lt;br /&gt;
* [[Howto:Troubleshoot v13 Push with myApps for Android and iOS]]&lt;br /&gt;
&lt;br /&gt;
* [[Reference13r1:PBX/Config/myApps]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_myApps_platform_services&amp;diff=71747</id>
		<title>Reference13r1:Concept myApps platform services</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_myApps_platform_services&amp;diff=71747"/>
		<updated>2024-05-14T08:36:02Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Device handling */ Epos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|myApps]]&lt;br /&gt;
myApps platform services provide various operating system specific services which can be used by other &#039;&#039;Apps&#039;&#039; running in the [[{{NAMESPACE}}:Concept myApps|myApps client]]. Those services typically are not available in the browser&#039;s JavaScript environment and hence must be implemented in native platform code. Therefore, the platform services are installed as native executable on the respective platform.&lt;br /&gt;
&lt;br /&gt;
When myApps is started in a web browser (and hence has no access to the platform services), some Apps will use [https://en.wikipedia.org/wiki/WebRTC WebRTC] services implemented by the browser instead.  For ease of reference, features available in this scenario are also described here.&lt;br /&gt;
&lt;br /&gt;
On windows, the platform services also come with their own web browser in which the myApps web App will be started then.  This browser is based on google&#039;s [https://en.wikipedia.org/wiki/Chromium_(web_browser) Chromium] open source software.&lt;br /&gt;
= Applies To =&lt;br /&gt;
&lt;br /&gt;
* [[{{NAMESPACE}}:Concept myApps|myApps]]&lt;br /&gt;
* myApps for Windows&lt;br /&gt;
* myApps for iOS&lt;br /&gt;
* myApps for Android&lt;br /&gt;
&lt;br /&gt;
* myApps Web App (WebRTC)&lt;br /&gt;
version 13r1&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
Not all features are available or required on all platforms.&lt;br /&gt;
 {|&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Feature&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Description&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot;| Availability&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| || || Windows || iOS || Android || Browser&amp;lt;ref&amp;gt;This refers to the myApps web application running in a browser with no platform services available&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| audio || manage local audio devices to record and playback audio conversations || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; (audio available but devices managed by web browser)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| video || manage local displays and cameras to capture and render video live stream || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; (video available but devices managed by web browser)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| ringer || manage local ringing device || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| application sharing&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp; presenter || share an application || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp; consumer  || view an application shared be the peer || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp; control|| take control of presenters application (mouse &amp;amp; keyboard) || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| hot keys || capture key presses for quick invocation of phone apps (e.g. dial selected number) || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
| tel: and sip: URI handler || intercept clicks on tel: and sip: links in web sites to invoke phone apps || &amp;amp;#10004; || ? || ? || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| user activity || set presence state according to user activity ||  &amp;amp;#10004; || ? || ? || &amp;amp;#10004;&amp;lt;ref&amp;gt;limited, see [[#User_activity|User activity]] below&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| docking || myApps can be docked persistently to the right or left edge of your screens ||  &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| multi-windowing|| Apps can be launched in separate windows||  &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| notifications || display notifications with OS standard mechanism ||  &amp;amp;#10004; || &amp;amp;#10007;? || &amp;amp;#10007;? || &amp;amp;#10007;?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| phone book access || access local phone book ||  &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| office presence provider || maps PBX presence state to Microsoft office presence state ||  &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| external application start || start arbitrary external applications for calls || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| push || wake-up app from background mode on event (e.g. incoming call) || &amp;amp;#10007;  || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| app proxy|| a caching proxy that provides app persistence  || &amp;amp;#10004;  || &amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| auto update || automatically updates myApps platform services to the same version the PBX has &amp;lt;ref&amp;gt;The then-current web app is always loaded from the PBX upon startup and hence up-to-date by definition&amp;lt;/ref&amp;gt;|| &amp;amp;#10004;  || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| three party conference || initiate 3-pty-conference using Softphone-App || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| exclude VPN || disable use of VPN connections for audio/video/appsharing || &amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
* innovaphone PBX 13r1 and up&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== myApps for Windows ==&lt;br /&gt;
* Windows 10&lt;br /&gt;
* Windows Server 2016 and later versions&lt;br /&gt;
&lt;br /&gt;
=== 32 &amp;amp; 64 bit Windows ===&lt;br /&gt;
* 32 bit Windows: install the myAppsSetup32.msi from the App Store&lt;br /&gt;
* 64 bit Windows: install the myAppsSetup.msi from the App Store&lt;br /&gt;
** the 64 bit variant still installs into Program Files (x86), as the main myApps.exe is still a 32bit application&lt;br /&gt;
** the 64 bit variant just contains an additional 64 bit binary for the outlook search&lt;br /&gt;
&lt;br /&gt;
=== Windows N editions ===&lt;br /&gt;
&lt;br /&gt;
Windows N editions are missing the &#039;&#039;Media Feature Pack&#039;&#039; which is pre installed on other Windows versions.&lt;br /&gt;
&lt;br /&gt;
Please install the pack from [https://www.microsoft.com/en-us/software-download/mediafeaturepack Microsoft (Windows 10 pack)] before you install myApps. The installer will check if the file &amp;lt;code&amp;gt;C:\Windows\SysWOW64\mfplat.dll&amp;lt;/code&amp;gt; exist on your system.&lt;br /&gt;
&lt;br /&gt;
Make sure to install the correct pack depending on your Windows version! There are different packs for Windows 10 1703, 1803, 1809 and 32bit or 64bit etc.&lt;br /&gt;
&lt;br /&gt;
NB: Sometimes the myApps installation will not work even though the media pack is already installed. This is because the installer has no read access to check if the package is already installed. If the above-mentioned file exists and the installer asks to install the Windows Media Feature Pack nevertheless, you have to start the myApps install with administrative rights.&lt;br /&gt;
&lt;br /&gt;
== myApps for iOS ==&lt;br /&gt;
* iOS 12 or higher&lt;br /&gt;
&lt;br /&gt;
== myApps for Android ==&lt;br /&gt;
* Android 6.0 or higher. Android 6.x may need an update of the Chrome browser.&lt;br /&gt;
&lt;br /&gt;
= Licenses =&lt;br /&gt;
* No license needed for myApps platform services&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
myApps platform services is a native executable that is installed using the standard mechanisms on the respective operating system. It provides various advanced services which can be used by the myApps web client code as well as the Apps running in the myApps context. &lt;br /&gt;
&lt;br /&gt;
Also, on Windows, the platform services come with their own, dedicated browser to run myApps in.  This browser is based on [https://en.wikipedia.org/wiki/Chromium_(web_browser) Chromium].  On iOS and Android it&#039;s based on native embedded web view facilities instead.&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== RTP service for audio, video and data ===&lt;br /&gt;
The RTP service provides audio, video and data (app sharing) VoIP RTP endpoints (e.g. for softphones).  It supports STUN, TURN, ICE, SRTP, DTLS. Note however that unlike WebRTC, these endpoints do not &#039;&#039;require&#039;&#039; ICE and DTLS. In other words, they can communicate also with non-compliant (i.e. older) VoIP devices.&lt;br /&gt;
&lt;br /&gt;
Note that the available capabilities when not running the myApps platform services depend on the used browser&#039;s WebRTC implementation. See your browser documentation for details.&lt;br /&gt;
&lt;br /&gt;
Apps can request RTP channels using the [https://sdk.innovaphone.com/doc/launcher/Media.htm Media Protocol]&#039;s &#039;&#039;AllocChannel&#039;&#039; message.&lt;br /&gt;
&lt;br /&gt;
===== RTP ports=====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|  audio || 50000 -&amp;gt; 50099&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| video || 50100 -&amp;gt; 50199&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| data || 50200 -&amp;gt; 50299&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RTP service will enumerate all local interfaces and create local HOST candidates for ICE.  There is an option however to disregard VPN interfaces (more precisely such interfaces with type of &#039;&#039;IF_TYPE_PPP&#039;&#039; or &#039;&#039;IF_TYPE_TUNNEL&#039;&#039;).  This can eliminate quality issues when RTP data is transmitted through TCP based VPN tunnels.&lt;br /&gt;
&lt;br /&gt;
SRFLX and RELAY candidates are obtained using the STUN and TURN server configuration passed by the App (e.g the &#039;&#039;softphone&#039;&#039; App) as part of the &#039;&#039;AllocChannel&#039;&#039; request.&lt;br /&gt;
&amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;AllocChannel&amp;quot;,&amp;quot;channel&amp;quot;:&amp;quot;81429cba-396d-43de-8a76-ec020ba8796e&amp;quot;,&amp;quot;iceServers&amp;quot;:[{&amp;quot;urls&amp;quot;:&amp;quot;turn:myturn.domaincom:3478?transport=udp&amp;quot;,&amp;quot;username&amp;quot;:&amp;quot;turnuser&amp;quot;,&amp;quot;credential&amp;quot;:&amp;quot;pwd&amp;quot;,&amp;quot;credentialType&amp;quot;:&amp;quot;password&amp;quot;},{&amp;quot;urls&amp;quot;:&amp;quot;stun:mystun.domain.com:3478&amp;quot;}],&amp;quot;dn&amp;quot;:&amp;quot;Foo Bar&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;RemoteRtp&amp;quot;,&amp;quot;kind&amp;quot;:&amp;quot;video&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Codecs =====&lt;br /&gt;
&lt;br /&gt;
The installed myApps launchers provide codecs that can be used by softphone apps for media streams. When running in a web browser the codecs depend on the browser version and operating system. See the documentation of your browser for details.&lt;br /&gt;
&lt;br /&gt;
The following codecs are supported:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align:left;width:100px;&amp;quot;|Codec&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Windows-Launcher&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Android&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|iOS&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Firefox (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Chrome (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Edge (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Safari (Browser)&lt;br /&gt;
!style=&amp;quot;width:100px&amp;quot;|Opera (Browser)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left; background-color:lightgray&amp;quot; colspan=&amp;quot;9&amp;quot;|Audio&lt;br /&gt;
|-&lt;br /&gt;
|G711A&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|G711u&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|G722&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|G729&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|G729A&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|G729B&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|G729AB&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=Opus OPUS-NB]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=Opus OPUS-WB]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left; background-color:lightgray&amp;quot; colspan=&amp;quot;9&amp;quot;|Video&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=VP8 VP8]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=VP9 VP9]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|[https://caniuse.com/#search=H264 H264]&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left; background-color:lightgray&amp;quot; colspan=&amp;quot;9&amp;quot;|Application Sharing&lt;br /&gt;
|-&lt;br /&gt;
|Share&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|-&lt;br /&gt;
|Watch&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔*&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔*&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|style=&amp;quot;color:red;text-align:center;font-weight:bold;&amp;quot;|X&lt;br /&gt;
|style=&amp;quot;color:green;text-align:center&amp;quot;|✔&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;* small presentation only&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Video capture =====&lt;br /&gt;
&lt;br /&gt;
The default resolution for video capture is 352x288 if available.  Otherwise, 320x240 is used.  The frame rate is 30 fps if available, otherwise 15 fps is used. The resulting average bandwidth will be 350 kbps.&lt;br /&gt;
&lt;br /&gt;
===== Application sharing =====&lt;br /&gt;
&lt;br /&gt;
Screen content and mouse position will be transmitted by the presenter.  Mouse and keyboard control can be handed over to viewers. Bitrate is restricted to 500 kbps.&lt;br /&gt;
&lt;br /&gt;
===== Device handling =====&lt;br /&gt;
&lt;br /&gt;
The RTP service enumerates microphones, loudspeaker, cameras and ringing devices and notifies apps when devices come and go. It is up to the apps using the devices to store preferences.&lt;br /&gt;
&lt;br /&gt;
In the Windows Launcher the RTP service also enables some extended features (such as hook switch or volume control) for supported USB headsets or Bluetooth headsets connected to myApps.  &lt;br /&gt;
&lt;br /&gt;
For this to work, vendor specific development kits from Jabra, Epos (formerly Sennheiser) and Poly (formerly Plantronics) are integrated. Starting with 13r3 sr10, the Epos SDK needs to be installed separately using the Epos Connect software. If the Epos-Connect software is not installed, the headsets will not be able to control calls, but audio will still be played when calls are connected.&lt;br /&gt;
&lt;br /&gt;
Note that it is possible to inhibit the start of the Sennheiser SDK (SenncomSDK.exe) using the &amp;lt;code&amp;gt;DISABLEHEADSETS&amp;lt;/code&amp;gt; directive of the installer (see [[#MSI_parameters |  MSI parameters ]] below).&lt;br /&gt;
The supported headset-SDKs determine which headset vendors are recommended to be used with the myApps softphone app. &lt;br /&gt;
&amp;lt;!--Keywords: myapps softphone supported headsets sdk--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Ring tones =====&lt;br /&gt;
&lt;br /&gt;
Ring tones can be played. Apps can choose the tone from a pre-defined list of ring tones.&lt;br /&gt;
&lt;br /&gt;
On Windows, custom ring tones can be uploaded as .mp3 files to the &amp;lt;code&amp;gt;ringtones&amp;lt;/code&amp;gt; sub-directory of myApps&#039; install directory (which usually is in &amp;lt;code&amp;gt;C:\Program Files (x86)\innovaphone\myApps&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===== Debugging =====&lt;br /&gt;
For extended debugging, turn on the &#039;&#039;Audio&#039;&#039;, &#039;&#039;Media&#039;&#039; and &#039;&#039;AppSharing&#039;&#039; traces in myApps.&lt;br /&gt;
&lt;br /&gt;
=== Hot keys ===&lt;br /&gt;
On Windows systems, myApps platform services can listen for hot keys and invoke certain functions. Invocation is done by sending API messages to myApps which passes it to an appropriate API provider (in the cases described here, this will be a &#039;&#039;phone&#039;&#039; or &#039;&#039;softphone&#039;&#039; or &#039;&#039;rcc&#039;&#039; App typically.  See [[Reference13r1:Concept_myApps#Client_APIs_and_default_apps | Client APIs and default apps]] for more details about this mechanism.&lt;br /&gt;
&lt;br /&gt;
The hot keys can be specified using the &#039;&#039;advanced settings&#039;&#039; user interface (see [[#UI_elements | UI elements]] below. Any of the function keys F1 to F11 (optionally combined with up to two modifier keys &#039;&#039;alt&#039;&#039;, &#039;&#039;ctrl&#039;&#039;, &#039;&#039;shift&#039;&#039; or &#039;&#039;win&#039;&#039;) can be chosen for each function.&lt;br /&gt;
; dial selected number : Initiates a call using the currently selected text as target.&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;PrepareCall&#039;&#039; message with the &#039;&#039;text&#039;&#039; argument set to the selected text and the &#039;&#039;adjust&#039;&#039; argument set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;mt&amp;quot;:&amp;quot;PrepareCall&amp;quot;,&amp;quot;text&amp;quot;:&amp;quot;13&amp;quot;,&amp;quot;adjust&amp;quot;:true}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; accept call : Accepts a currently alerting call.&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;ConnectCall&#039;&#039; message will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;ConnectCall&amp;quot;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; reject/disconnect call : Rejects a currently alerting call or disconnects an active call.&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;DisconnectCall&#039;&#039; message will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;DisconnectCall&amp;quot;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URL Handler ===&lt;br /&gt;
&lt;br /&gt;
On Windows systems, two URI-handler are installed with the myApps platform services.  Windows will call up this URI handler when a user clicks on an appropriate link, for example in a web site.&lt;br /&gt;
&lt;br /&gt;
The handler will the send an API message to myApps which passes it to an appropriate API provider (in the cases described here, this will be a &#039;&#039;phone&#039;&#039; or &#039;&#039;softphone&#039;&#039; or &#039;&#039;rcc&#039;&#039; App typically.  See [[Reference13r1:Concept_myApps#Client_APIs_and_default_apps | Client APIs and default apps]] for more details about this mechanism.&lt;br /&gt;
&lt;br /&gt;
; tel URI : call a number, e.g. &amp;lt;code&amp;gt;tel:4711&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;PrepareCall&#039;&#039; message with the &#039;&#039;num&#039;&#039; argument set to the selected text and the &#039;&#039;adjust&#039;&#039; argument set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;StartCall&amp;quot;,&amp;quot;num&amp;quot;:&amp;quot;4711&amp;quot;,&amp;quot;adjust&amp;quot;:true}}&amp;lt;/code&amp;gt;&lt;br /&gt;
; sip URI : call a SIP name, e.g. &amp;lt;code&amp;gt;sip:zkl@innovaphone.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: A &#039;&#039;PrepareCall&#039;&#039; message with the &#039;&#039;sip&#039;&#039; argument set to the selected text and the &#039;&#039;adjust&#039;&#039; argument set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; will be sent to the [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm &#039;&#039;com.innovaphone.phone&#039;&#039; API].&lt;br /&gt;
:: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.phone&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;@local-ae2fc2ab74-3f1e-4ab9-b215-d42f213520317&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;StartCall&amp;quot;,&amp;quot;sip&amp;quot;:&amp;quot;zkl@innovaphone.com&amp;quot;,&amp;quot;adjust&amp;quot;:true}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== User activity ===&lt;br /&gt;
On Windows systems, the myApps platform services can monitor user keyboard/mouse activity and change the user&#039;s presence state after a certain amount of inactivity.  The timeout can be specified using the &#039;&#039;advanced settings&#039;&#039; user interface (see [[#UI_elements | UI elements]] below.&lt;br /&gt;
&lt;br /&gt;
myApps will then send a [https://sdk.innovaphone.com/doc/appwebsocket/myApps.htm#SetUserActivity&#039;&#039;SetUserActivity&#039;&#039;] message to the PBX using the &#039;&#039;myApps&#039;&#039; protocol.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;SetUserActivity&amp;quot;,&amp;quot;inactive&amp;quot;:true}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will change the &#039;&#039;status&#039;&#039; property of the &#039;&#039;im:&#039;&#039; contact for the user&#039;s own presence and hence result in a presence update from the PBX to myApps&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;UpdateOwnPresence&amp;quot;,&amp;quot;presence&amp;quot;:[{...},{&amp;quot;contact&amp;quot;:&amp;quot;im:&amp;quot;,&amp;quot;activity&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;closed&amp;quot;}]}&amp;lt;/code&amp;gt;&lt;br /&gt;
The &#039;&#039;closed&#039;&#039; status is reflected in the grey status color when displaying a contact [[Image:myapps-inactive.png]].&lt;br /&gt;
&lt;br /&gt;
On iOS and Android, the state is set to &#039;&#039;inactive&#039;&#039; as soon as the App is brought to background.&lt;br /&gt;
When myApps platform services are not available (i.e. when running the web application in a browser solely) a limited user activity monitoring is available: the state is set to active when the web page is not used for more than 5 minutes.&lt;br /&gt;
&lt;br /&gt;
=== Notifications ===&lt;br /&gt;
&lt;br /&gt;
The myApps platform services can use the OS specific notification mechanism (e.g. &#039;&#039;desktop notifications&#039;&#039; on Windows) to display messages (e.g. &#039;&#039;incoming new chat message&#039;&#039;) to the user.&lt;br /&gt;
&lt;br /&gt;
Note that the actual rendering of the notification is under control of the OS.  Therefore, myApps must be allowed to show notifications and its appearance can be restricted by OS native settings.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
&lt;br /&gt;
If notifications do not work, please check:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Shortcut&#039;&#039;&#039;. During myApps installation a shortcut must be created in &#039;&#039;&#039;C:\ProgramData\Microsoft\Windows\Start Menu\Programs\innovaphone\myApps&#039;&#039;&#039; for the notifications to work. Please check that this shortcut is present.&lt;br /&gt;
* &#039;&#039;&#039;Windows Settings&#039;&#039;&#039;. Check following screenshots:&lt;br /&gt;
[[Image:notifications0.jpg]]&lt;br /&gt;
[[Image:notifications1.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Local phonebook access ===&lt;br /&gt;
The myApps platform services implement an &#039;&#039;API provider&#039;&#039; for the [http://sdk.innovaphone.com/web1/com.innovaphone.search/lib1_api_search.htm &#039;&#039;com.innovaphone.search&#039;&#039; API]]. They perform search capabilities on the OS&#039; local phone books which can be used by Apps like the &#039;&#039;phoneapp&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Apps would send a &#039;&#039;Search&#039;&#039; request to the API:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiRequest&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;dev:SwPh_zkl_5e42e884&amp;quot;,&amp;quot;provider&amp;quot;:&amp;quot;*&amp;quot;,&amp;quot;src&amp;quot;:&amp;quot;4&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;Search&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;contact&amp;quot;,&amp;quot;search&amp;quot;:&amp;quot;john doe&amp;quot;},&amp;quot;apiId&amp;quot;:&amp;quot;com.innovaphone.search&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
Search results are delivered as &#039;&#039;SearchInfo&#039;&#039; messages:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;{&amp;quot;mt&amp;quot;:&amp;quot;ApiResult&amp;quot;,&amp;quot;src&amp;quot;:&amp;quot;3&amp;quot;,&amp;quot;provider&amp;quot;:&amp;quot;@local-8125d22e37-519d-4056-bfe5-c52ef2ae8fabb0&amp;quot;,&amp;quot;consumer&amp;quot;:&amp;quot;dev:SwPh_zkl_5e42e884&amp;quot;,&amp;quot;client&amp;quot;:&amp;quot;@client-f62702dd86-be3f-47fc-b4bc-7a21627b75b2ea&amp;quot;,&amp;quot;msg&amp;quot;:{&amp;quot;mt&amp;quot;:&amp;quot;SearchInfo&amp;quot;,&amp;quot;relevance&amp;quot;:2000,&amp;quot;adjust&amp;quot;:true,&amp;quot;type&amp;quot;:&amp;quot;contact&amp;quot;,&amp;quot;contact&amp;quot;:{&amp;quot;givenname&amp;quot;:&amp;quot;John&amp;quot;,&amp;quot;sn&amp;quot;:&amp;quot;Doe&amp;quot;,&amp;quot;company&amp;quot;:&amp;quot;ACME&amp;quot;,&amp;quot;position&amp;quot;:&amp;quot;Head of everything&amp;quot;,&amp;quot;telephonenumber&amp;quot;:[&amp;quot;11111&amp;quot;,&amp;quot;22222&amp;quot;],&amp;quot;homephone&amp;quot;:[&amp;quot;+4944444&amp;quot;,&amp;quot;33333&amp;quot;],&amp;quot;mobile&amp;quot;:[&amp;quot;+49 (123) 55555&amp;quot;]}},&amp;quot;api&amp;quot;:&amp;quot;com.innovaphone.search&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
Note that Apps never perform a reverse (number) lookup, neither is there an API defined for it.  This is done centrally within the PBX.  However, as the PBX has no access to the user&#039;s local phone books, entries therein are not searched for reverse lookup.&lt;br /&gt;
&lt;br /&gt;
==== Windows ====&lt;br /&gt;
On Windows, the search is performed in all of the user&#039;s Outlook contact folders.  As opposed to the search implemented in the &#039;&#039;Contacts&#039;&#039; and &#039;&#039;Users&#039;&#039; App, all items are returned which match any of the search words (i.e. searching for &#039;&#039;a b&#039;&#039; will return items matching either &#039;&#039;a&#039;&#039; or &#039;&#039;b&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
; searched properties : fistname, lastname&lt;br /&gt;
; returned properties : Following Outlook contact phone number properties are returned  (if available):&lt;br /&gt;
&lt;br /&gt;
:* OFFICE_TELEPHONE_NUMBER as &#039;&#039;telephonenumber&#039;&#039;&lt;br /&gt;
:* OFFICE2_TELEPHONE_NUMBER as &#039;&#039;telephonenumber&#039;&#039;&lt;br /&gt;
:* HOME_TELEPHONE_NUMBER as &#039;&#039;homephone&#039;&#039;&lt;br /&gt;
:* HOME2_TELEPHONE_NUMBER as &#039;&#039;homephone&#039;&#039;&lt;br /&gt;
:* MOBILE_TELEPHONE_NUMBER as &#039;&#039;mobile&#039;&#039;&lt;br /&gt;
:* BUSINESS_FAX_NUMBER as &#039;&#039;facsimiletelephonenumber&#039;&#039;&lt;br /&gt;
Note that contact information is cached in the search provider.  Updated contacts may therefore become effective after a while only.&lt;br /&gt;
Outlook search will create its own trace file &amp;lt;code&amp;gt;myAppsOutlookSearch-&amp;lt;/code&amp;gt;&#039;&#039;date-time&#039;&#039;&amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; in the standard trace directory.&lt;br /&gt;
&lt;br /&gt;
This search provider is always installed and active and cannot be disabled.  There is no need (nor possibility) to enable it in the &#039;&#039;Apps&#039;&#039; tab of the PBX&#039;s user object.  Also, no &#039;&#039;App&#039;&#039; object needs to be created for it.&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Office integration ===&lt;br /&gt;
&lt;br /&gt;
The myApps platform services has a &#039;&#039;office presence provider&#039;&#039; that can provide the user&#039;s presence state to Office applications.  See [[Reference13r1:Concept_myApps_Office_Integration|myApps Office Integration]] for details.&lt;br /&gt;
&lt;br /&gt;
This feature is installed by default.  However, it can be disabled using the &#039;&#039;OFFICEPRESENCE&#039;&#039; MSI Parameter.  Also, a check-mark is available in the setup dialog.&lt;br /&gt;
&lt;br /&gt;
=== Call an external application for calls ===&lt;br /&gt;
&lt;br /&gt;
Phone Apps (such as the phoneapp or softphone) can initiate the start of an external application when a new call appears (either incoming or outgoing).  The actual spawning of the application is done by the myApps platform service.  Also, the application properties (such as e.g. the executable&#039;s path) is configured in the myApps platform services (see [[#UI_elements|Advanced settings]] in the &#039;&#039;UI elements&#039;&#039; section below).&lt;br /&gt;
&lt;br /&gt;
A number of arguments can be passed to the application by substituting $-variables in the &#039;&#039;Parameter&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
; $n : phone number as dialed (called party number for outgoing calls) or received (calling party number for incoming calls)&lt;br /&gt;
&lt;br /&gt;
; $N : called or calling party number in &#039;&#039;national&#039;&#039; format (e.g. 07031730090)&lt;br /&gt;
&lt;br /&gt;
; $I : called or calling party number in &#039;&#039;international&#039;&#039; format (e.g. +497031730090)&lt;br /&gt;
&lt;br /&gt;
: note that both $N and $I only work if $n includes both subscriber number and area code (e.g. 07031730090). Otherwise they are equal to $n&lt;br /&gt;
&lt;br /&gt;
; $d : display name of peer (if known)&lt;br /&gt;
&lt;br /&gt;
; $c : conference id&lt;br /&gt;
&lt;br /&gt;
: this is a globally unique ID for this call and may be used to relate the call to the &#039;&#039;guid&#039;&#039; found in the CallInfo structure in the [http://wiki.innovaphone.com/index.php?title=Reference10:SOAP_API#CallInfo SOAP-API] and [http://sdk.innovaphone.com/doc/appwebsocket/RCC.htm RCC-API ].  Also, corresponding [[Reference10:Call_Detail_Record_CDR_PBX|CDRs]] can be related using the &#039;&#039;event&#039;&#039; tag&#039;s &#039;&#039;conf&#039;&#039; attribute.&lt;br /&gt;
The start of an external application can be requested using the &#039;&#039;com.innovaphone.externalapps&#039;&#039; API.&lt;br /&gt;
&lt;br /&gt;
=== Push ===&lt;br /&gt;
&lt;br /&gt;
Mobile operating systems usually inhibit network operation of apps which run in the background or are closed by the user.  This is done in order to reduce battery consumption.  Unfortunately, this also stops such apps to maintain a registration by regularly sending &#039;&#039;keep alive&#039;&#039; messages to a server (in our case to the PBX).  As a result, myApps will be disconnected from the PBX.   When the PBX determines that there is an event for the application which needs a response, it needs to wake up the app using a dedicated channel provided by the operating system.  This mechanism is know as &#039;&#039;push&#039;&#039;. When running on iOS or Android, myApps supports &#039;&#039;push&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
For &#039;&#039;push&#039;&#039; to work, a [[{{NAMESPACE}}:PBX/Objects/Push|&#039;&#039;push object&#039;&#039;]] needs to [[Course13:IT Connect - 10.1 Push Object | be configured in the PBX ]].  Also, it needs to be enabled on the mobile phone for the myApps app.&lt;br /&gt;
This mechanism is quite similar in v12 and v13, so you can refer to [[Reference12r2:Concept Push Notifications for myPBX iOS and Android]] for more details. &lt;br /&gt;
&lt;br /&gt;
Also, helpful hints can be found in [[Howto:Troubleshoot v13 Push with myApps for Android and iOS]].&lt;br /&gt;
&lt;br /&gt;
=== App Proxy ===&lt;br /&gt;
&lt;br /&gt;
myApps runs further &#039;&#039;Apps&#039;&#039; (such as e.g. the &#039;&#039;phoneapp&#039;&#039;) as a web page in an IFRAME of the browser myApps is running in.  The App&#039;s page code is loaded either from the PBX or from an &#039;&#039;application platform&#039;&#039; (AP).   This however would mean that the App&#039;s IFRAME would remain empty (a dead white screen) when the PBX or AP is not available. To make sure the App can start-up anyway, the myApps platform services feature the so-called &#039;&#039;App Proxy&#039;&#039;.  This is a caching proxy that caches all the App code so it is available even in case of network failure. When myApps runs in the context of the platform services, Apps are therefore not loaded from the App source directly, but from the local App proxy. &lt;br /&gt;
&lt;br /&gt;
The cached files are stored in the PCs local file system in the &amp;lt;code&amp;gt;C:\Users\...\AppData\Local\innovaphone\myApps\appproxy&amp;lt;/path&amp;gt;&amp;lt;/code&amp;gt;.  There is no configuration required.  However, if myApps seems to run with outdated or corrupt cached copies of the App, you can safely delete the entire directory.&lt;br /&gt;
&lt;br /&gt;
=== Auto update ===&lt;br /&gt;
&lt;br /&gt;
On Windows, the myApps platform services can auto-update themselves to a common version.  This is controlled by the [[{{NAMESPACE}}:PBX/Config/myApps#Launcher_Software_Update | &#039;&#039;Launcher Software Update&#039;&#039; ]] settings under &#039;&#039;PBX/Config/myApps&#039;&#039; in the PBX. &lt;br /&gt;
&lt;br /&gt;
When myApps is started or the user logs in or myApps needs to re-connect to the PBX, the platform services will use the [http://sdk.innovaphone.com/web1/com.innovaphone.client/lib1_api_client.htm com.innovaphone.client API] to learn the desired version (&#039;&#039;launcherUpdateBuild&#039;&#039;, which is part of the API&#039;s &#039;&#039;model&#039;&#039;). If this differs from the current version, the platform services will try to download the respective new version. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;mt&amp;quot;: &amp;quot;ApiUpdate&amp;quot;,&lt;br /&gt;
    &amp;quot;apis&amp;quot;: {&lt;br /&gt;
        &amp;quot;com.innovaphone.client&amp;quot;: {&lt;br /&gt;
            &amp;quot;@client&amp;quot;: {&lt;br /&gt;
                &amp;quot;title&amp;quot;: &amp;quot;innovaphone myApps&amp;quot;,&lt;br /&gt;
                &amp;quot;model&amp;quot;: {&lt;br /&gt;
                    &amp;quot;launcher&amp;quot;: true,&lt;br /&gt;
                    &amp;quot;launcherUpdateBuild&amp;quot;: &amp;quot;134906&amp;quot;,&lt;br /&gt;
                    &amp;quot;appStoreUrl&amp;quot;: &amp;quot;http://store.innovaphone.com/release/download/&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installation of the downloaded version is done by the &#039;&#039;innovaphonemyAppsUpdateService&#039;&#039;. This service is installed and enabled during the initial install of the myApps platform services.  To disable auto-update, either leave the &#039;&#039;Launcher Software Update&#039;&#039; settings empty or set the service&#039;s start mode to &#039;&#039;disabled&#039;&#039; in the Windows &#039;&#039;services control panel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Note that the update service does not work on terminal servers. Administrators must do myApps base services updates using standard windows mechanisms.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;Devices&#039;&#039; app can not update software installed on Windows PCs directly. However, when the PBX is updated using an &#039;&#039;update job&#039;&#039; in the &#039;&#039;Devices&#039;&#039; App, the &#039;&#039;Launcher Software Update&#039;&#039; settings will be updated accordingly and hence the myApps base services will ultimately also be update to the same version.&lt;br /&gt;
&lt;br /&gt;
==UI elements ==&lt;br /&gt;
There are a few user interfaces provided by the platform services:&lt;br /&gt;
===tray-icon (Windows only) ===&lt;br /&gt;
::[[Image:myapps-tray.png]]&lt;br /&gt;
:Allows to&lt;br /&gt;
:* terminate myApps&lt;br /&gt;
:* toggle the &#039;&#039;autostart&#039;&#039; state&lt;br /&gt;
:* toggle the &#039;&#039;show in task bar&#039;&#039; state&lt;br /&gt;
:* open the trace folder&lt;br /&gt;
:&lt;br /&gt;
=== PBX connect form===&lt;br /&gt;
:: [[Image:myapps-connect.png]]&lt;br /&gt;
: Allows the user to specify the connect data for the PBX (i.e. IP address or DNS name)&lt;br /&gt;
:&lt;br /&gt;
=== Advanced settings===&lt;br /&gt;
::[[Image:myapps-settings0.png]]&lt;br /&gt;
::[[Image:myapps-settings.png]] [[Image:myapps-settings2.png]] [[Image:myapps-settings3.png]]&lt;br /&gt;
&lt;br /&gt;
: Allows to modify various platform dependant settings (such as e.g. the hotkey selection on Windows)&lt;br /&gt;
&lt;br /&gt;
== Interfaces ==&lt;br /&gt;
=== Provided APIs ===&lt;br /&gt;
&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.search/lib1_api_search.htm com.innovaphone.search] : access to local phone book entries by the [[#Local_phonebook_access|Local phonebook access]] component.&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.launcher/com.innovaphone.launcher.htm com.innovaphone.launcher] : display of OS specific user notifications and receipt of related user actions&lt;br /&gt;
; com.innovaphone.notificationhandler : ???&lt;br /&gt;
; com.innovaphone.externalapps : to start external applications, see [[#Call_an_external_application_for_calls |Call an external application for calls ]] above&lt;br /&gt;
; com.innovaphone.callkit : ???&lt;br /&gt;
&lt;br /&gt;
=== Used APIs ===&lt;br /&gt;
&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.phone/com.innovaphone.phone.htm com.innovaphone.phone] : used to initiate new or manipulate existing calls by the [[#Hot_keys|Hot keys]] and [[#URL_handler|URL handler]] components.&lt;br /&gt;
&lt;br /&gt;
; [http://sdk.innovaphone.com/web1/com.innovaphone.client/lib1_api_client.htm com.innovaphone.client] : the model is used to learn the update settings, see [[#Auto_update|Auto update]] above&lt;br /&gt;
&lt;br /&gt;
=== Protocols ===&lt;br /&gt;
&lt;br /&gt;
; [https://sdk.innovaphone.com/doc/launcher/Media.htm Media Protocol] : used by apps to allocate RTP channels, see [[#RTP_service_for_audio.2C_video_and_data|RTP service for audio, video and data]] above&lt;br /&gt;
&lt;br /&gt;
== Related App Services ==&lt;br /&gt;
&lt;br /&gt;
none&lt;br /&gt;
&lt;br /&gt;
== Known limitations ==&lt;br /&gt;
; Button on Bluetooth headsets not functional on myApps for iOS : The button of Bluetooth headsets doesn&#039;t provide to accept or disconnect calls. The button on wired earphones does.&lt;br /&gt;
&lt;br /&gt;
; Incoming call as banner on myApps for iOS : Since iOS 14 the iOS CallKit presents incoming calls as a banner leaving the original green answer button of myApps visible. Use only the blue button of the banner to accept the call or change iPhone Settings, App &amp;quot;Phone&amp;quot;, &amp;quot;Incoming Calls&amp;quot; to &amp;quot;Full Screen&amp;quot; to hide the myApps user interface again during call answering.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
myApps platform services are installed on Windows using the .msi file found in the &#039;&#039;myApps Windows&#039;&#039; package from [https://store.innovaphone.com/release/download.htm store.innovaphone.com].&lt;br /&gt;
&lt;br /&gt;
myApps can update itself automatically, see [[#Auto_update|Auto update]] above.&lt;br /&gt;
&lt;br /&gt;
=== MSI Parameters and install options ===&lt;br /&gt;
&lt;br /&gt;
The MSI installer of myApps for Windows supports the following parameters and can be edited with [https://docs.microsoft.com/en-us/windows/win32/msi/orca-exe Microsoft Orca]. You can add your parameters in the table &#039;&#039;property&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; SERVER: the PBX&#039;s dns server name&lt;br /&gt;
; OFFICEPRESENCE: &#039;&#039;&#039;false&#039;&#039;&#039; to disable presence integration in Microsoft Office&lt;br /&gt;
: this is also available as a check-mark when running the install manually&lt;br /&gt;
&lt;br /&gt;
; DISABLEHEADSETS: &#039;&#039;&#039;true&#039;&#039;&#039; to disable headsets support, see [[#Device_handling|Device handling]] above&lt;br /&gt;
&lt;br /&gt;
; EXTERNALAPPS: pre-define external applications, see [[#Call_an_external_application_for_calls|Call an external application for calls]] above&lt;br /&gt;
: e.g. &amp;lt;code&amp;gt;&amp;quot;{\&amp;quot;externalApps\&amp;quot;:[{\&amp;quot;id\&amp;quot;:1,\&amp;quot;name\&amp;quot;:\&amp;quot;Wireshark\&amp;quot;,\&amp;quot;path\&amp;quot;:\&amp;quot;C:\\Program Files\\Wireshark\\wireshark.exe\&amp;quot;,\&amp;quot;param\&amp;quot;:\&amp;quot;\&amp;quot;,\&amp;quot;autostart\&amp;quot;:true]}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; FORCERESTART: &#039;&#039;&#039;true&#039;&#039;&#039; (or any string ...) kills myApps during the installation and restarts it for the currently logged in user, if it was running&lt;br /&gt;
&lt;br /&gt;
; DISABLELOCALHOST: &#039;&#039;&#039;true&#039;&#039;&#039; to disable use of &#039;&#039;&#039;localhost&#039;&#039;&#039; string to access the local webserver. Use &#039;&#039;&#039;127.0.0.1&#039;&#039;&#039; instead&lt;br /&gt;
&lt;br /&gt;
Current settings are stored in the registry at &amp;lt;code&amp;gt;Computer\HKEY_CURRENT_USER\Software\innovaphone\myApps&amp;lt;/code&amp;gt; or at &amp;lt;code&amp;gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\innovaphone\myApps&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== iOS ==&lt;br /&gt;
&lt;br /&gt;
myApps platform services are installed on iOS by loading &#039;&#039;innovaphone myApps&#039;&#039; from the &#039;&#039;App Store&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
&lt;br /&gt;
myApps platform services are installed on Android by loading &#039;&#039;innovaphone myApps&#039;&#039; from the &#039;&#039;Play Store&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
When myApps runs under the myApps platform services, it will show various platform specific settings as part of its &#039;&#039;burger menu&#039;&#039;, so the user can set them.  See &#039;&#039;Advanced settings&#039;&#039; in [[#UI_elements|UI elements]] above.&lt;br /&gt;
&lt;br /&gt;
Some options can also be set globally for all myApps clients in the PBX&#039;s [[Reference13r1:PBX/Config/myApps#Client_Settings|PBX/Config/myApps &#039;&#039;Client Settings&#039;&#039;]]&lt;br /&gt;
{|&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Option&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Description&lt;br /&gt;
&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | Where to set&lt;br /&gt;
&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;text-align: left; font-weight: bold&amp;quot;| Availability&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| || || User menu || PBX &#039;&#039;Client Settings&#039;&#039; || Windows || iOS || Android&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Autostart || Launch myApps on login || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Appear offline after || controls after which idle time a user is considered &#039;&#039;inactive&#039;&#039;. See [[#User_activity|User activity]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Hotkeys || Hotkeys for call dial, accept, reject. See [[#Hot_keys|Hot keys]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Docking || Docking mode (left, right, none). See [[#???|??]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Desktop notifications|| Turn on/off platform notifications. See [[#Notifications|  Notifications]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007;? || &amp;amp;#10007;?&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| VPN || Disable VPN address for ICE candidate selection. See [[#RTP_ports| RTP ports]] above || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Show in taskbar|| Show myApps in the taskbar in addition to it&#039;s tray icon.  || &amp;amp;#10004; ||&amp;amp;#10007; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Log flags || turn on/off certain trace levels. See [[#Troubleshooting|Troubleshooting]] below.  || &amp;amp;#10004; ||&amp;amp;#10004; ||&amp;amp;#10004; || &amp;amp;#10004; || &amp;amp;#10004;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| External applications || define the applications available for Apps to be started. See [[#Call_an_external_application_for_calls|Call an external application for calls]] above.  || &amp;amp;#10004; ||&amp;amp;#10007; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Ring in headset || send ring tone for incoming to headset instead of loudspeaker (should be in phoneapp rather???)|| &amp;amp;#10004; ||&amp;amp;#10007; ||&amp;amp;#10004; || &amp;amp;#10007; || &amp;amp;#10007;&lt;br /&gt;
|}&lt;br /&gt;
== Start parameters for Windows ==&lt;br /&gt;
&lt;br /&gt;
On Windows, it is not possible to pass start parameters from the [https://www.chromium.org/developers Chromium documentation] to the myApps process.&lt;br /&gt;
&lt;br /&gt;
== OS Settings for Windows ==&lt;br /&gt;
Windows settings can influence the display of &#039;&#039;Desktop notifications&#039;&#039;. See [https://support.microsoft.com/en-us/help/4028678/windows-10-change-notification-settings Change notification settings in Windows 10] for details.&lt;br /&gt;
&lt;br /&gt;
== OS settings for Android ==&lt;br /&gt;
; Events : The appearance of notifications can be controlled here.&lt;br /&gt;
&lt;br /&gt;
; Call accounts : For proper incoming call signaling, the call account &#039;&#039;myApps&#039;&#039; needs to be enabled. Note that on Samsung smartphones the call account switch likely toggles back and a few tries may need to be done until it persists. Please double-check the state.&lt;br /&gt;
&lt;br /&gt;
; Background data, unlimited data usage : Grant background data use to enable &#039;&#039;myApps&#039;&#039; to connect to the PBX immediately on an incoming call.&lt;br /&gt;
&lt;br /&gt;
; Overlaying : This setting is not needed if call account &#039;&#039;myApps&#039;&#039; has been enabled. Should there be a reason for not enabling call account &#039;&#039;myApps&#039;&#039;, the permission for overlaying needs to be granted on Android 10 or higher for proper call signaling.&lt;br /&gt;
&lt;br /&gt;
Note: If no SIM card is installed some Android smartphones exhibit a problem dialing from the smartphone contacts. The contacts app shows a choice &#039;&#039;Select SIM card for this call&#039;&#039; but all possible dialers are greyed out. In this case make myApps the default phone app in Android settings &#039;&#039;Apps, Default apps, Telephony&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== OS settings for iOS ==&lt;br /&gt;
; Notifications : The appearance of notifications can be controlled in iOS &#039;&#039;Settings, myApps&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&lt;br /&gt;
myApps platform services can write various traces for debugging.  Trace can be turned on and off selectively in the [[#Advanced settings|Advanced settings]].&lt;br /&gt;
&lt;br /&gt;
The following trace flags can be set:&lt;br /&gt;
{|&lt;br /&gt;
!style=&amp;quot;text-align: left; font-weight: bold&amp;quot; |  Abbreviation&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;text-align: left; font-weight: bold&amp;quot; |code&lt;br /&gt;
&lt;br /&gt;
!style=&amp;quot;text-align: left; font-weight: bold&amp;quot; | description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| App||0x000000001|| logs from the App Service itself&lt;br /&gt;
|-&lt;br /&gt;
| DNS||0x000000008|| logs DNS requests and results&lt;br /&gt;
|-&lt;br /&gt;
| HTTP client||0x000000080|| http client logs&lt;br /&gt;
|-&lt;br /&gt;
| TLS||0x000000400|| TLS logs&lt;br /&gt;
|-&lt;br /&gt;
| TCP||0x000000800|| TCP logs&lt;br /&gt;
|-&lt;br /&gt;
| LDS||0x000001000|| local domain sockets&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket client||0x000004000|| logs outgoing websocket connections&lt;br /&gt;
|-&lt;br /&gt;
| App WebSocket||0x000008000|| logs app websocket connections (e.g. from PBX objects to an App Service or from the UI to the App Service)&lt;br /&gt;
|-&lt;br /&gt;
| UDP||0x000200000|| UDP logs&lt;br /&gt;
|-&lt;br /&gt;
| DTLS||0x000400000|| logs DTLS handshake and messages&lt;br /&gt;
|-&lt;br /&gt;
| Media||0x000800000|| logs media events&lt;br /&gt;
|-&lt;br /&gt;
| Media channel||0x001000000|| logs RTP/SCTP media connections&lt;br /&gt;
|-&lt;br /&gt;
| ICE||0x002000000|| logs ICE messages between peers&lt;br /&gt;
|-&lt;br /&gt;
| TURN||0x004000000|| logs TURN messages between peers&lt;br /&gt;
|-&lt;br /&gt;
| AppSharing||0x008000000|| logs AppSharing connection&lt;br /&gt;
|-&lt;br /&gt;
| Audio||0x010000000|| logs Audio connection and headset events&lt;br /&gt;
|-&lt;br /&gt;
| Video||0x020000000|| logs video connection and webcam events&lt;br /&gt;
|-&lt;br /&gt;
| Browser||0x040000000|| logs Chromium events&lt;br /&gt;
|-&lt;br /&gt;
| AppProxy||0x080000000|| logs requests which are proxied between the local webserver and the remote server&lt;br /&gt;
|-&lt;br /&gt;
| Webserver||0x200000000|| enables webserver specific logs&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;code&#039;&#039; can be or&#039;ed and used as value for the &#039;&#039;Log flags&#039;&#039; field in [[Reference13r1:PBX/Config/myApps#Client_Settings|PBX/Config/myApps/Client Settings]].&lt;br /&gt;
&lt;br /&gt;
; Windows :On Windows, traces are written to the &amp;lt;code&amp;gt;C:\Users\[UserName]\AppData\Local\innovaphone\myApps&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
:* myApps-&#039;&#039;date-time&#039;&#039;.txt : main log file for the platform services&lt;br /&gt;
&lt;br /&gt;
:* myAppsOutlookSearch-&#039;&#039;date-time&#039;&#039;.txt : log file for the Outlook phone book access&lt;br /&gt;
&lt;br /&gt;
:* myAppsHookController-&#039;&#039;date-time&#039;&#039;.txt : log file for the hot-key interceptor (see [[#Hot_keys|Hot keys]])&lt;br /&gt;
&lt;br /&gt;
; :myApps update traces are written to the &amp;lt;code&amp;gt;%windir%\temp\&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
:* myAppsInstall.txt: MSI installation file&lt;br /&gt;
:* myAppsUpdateService-&#039;&#039;date-time&#039;&#039;.txt: myApps update service traces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Android : traces can be sent by e-mail.&lt;br /&gt;
&lt;br /&gt;
: also, an Android device might also be connected to a PC via an USB cable to get the traces. The files can be found in &amp;lt;code&amp;gt;Android/data/com.innovaphone.clientandroid/files&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; iOS : traces can be sent by e-mail.&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
&lt;br /&gt;
* [[Reference13r1:Concept_myApps]]&lt;br /&gt;
* [[Reference13r1:Concept_myApps_Office_Integration]]&lt;br /&gt;
* [[Reference13r1:Concept_myAPPs_Search_in_local-Outlook_Contacts]]&lt;br /&gt;
&lt;br /&gt;
* [[Reference10:Call_Detail_Record_CDR_PBX]]&lt;br /&gt;
&lt;br /&gt;
* [[Reference12r2:Concept Push Notifications for myPBX iOS and Android]]&lt;br /&gt;
&lt;br /&gt;
* [[Howto:Troubleshoot v13 Push with myApps for Android and iOS]]&lt;br /&gt;
&lt;br /&gt;
* [[Reference13r1:PBX/Config/myApps]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:How_to_Reset_IPXXX&amp;diff=66599</id>
		<title>Howto:How to Reset IPXXX</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:How_to_Reset_IPXXX&amp;diff=66599"/>
		<updated>2023-03-22T15:03:40Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Different Reset Options of IPXXX&lt;br /&gt;
&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* All innovaphone products with the latest boot code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: factory default, led behaviour, tftp mode, clear config, gwload--&amp;gt;&lt;br /&gt;
==More Information==&lt;br /&gt;
Different options resetting innovaphone devices.&lt;br /&gt;
&lt;br /&gt;
* bringing to Factory default&lt;br /&gt;
* bringing to TFTP mode for GWLoad&lt;br /&gt;
* clearing config&lt;br /&gt;
* explaining the LED behavior&lt;br /&gt;
&lt;br /&gt;
Additional Information for the following table, TFTP-Mode or TFTP-Mode + FACTORY RESET for the phones IP110, IP150, IP200, IP202, IP230, IP240&lt;br /&gt;
 &lt;br /&gt;
Seperating the phone from the power, press the Key/Button, keep on pressing the Key/Button, plug in the PSU or ethernet cable (in case of PoE), watch the status of the device (table: visual display), release the Key/Button after time shown in the table. If you want to reanimate this devices now with GWLoad, do not powercycle the device again. If the factory reset was successful the device is now in the defined TFTP-Mode and ready for GWLoad. If you just wanted to factory reset the device you can do a powercycle for sure.&lt;br /&gt;
&lt;br /&gt;
If the factory reset was not successful please contact rma@innovaphone.com&lt;br /&gt;
&lt;br /&gt;
or look at [[Howto:Get Access to Gateways if the Assistant don&#039;t boot the device.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!Device (visual display)&lt;br /&gt;
!Reset Button/Key&lt;br /&gt;
!Button pressed&lt;br /&gt;
!Clear Config &lt;br /&gt;
Firmware&lt;br /&gt;
Boot code update&lt;br /&gt;
!Pressing Button to TFTP without deleting config in seconds ca.&lt;br /&gt;
!Pressing Button to factory reset in seconds ca.&lt;br /&gt;
!GWLoad- / TFTP-Mode&lt;br /&gt;
!Firmware starting&lt;br /&gt;
!Firmware ready&lt;br /&gt;
!Firmware Error&lt;br /&gt;
|----&lt;br /&gt;
|IP21&lt;br /&gt;
(all LED&#039;s)&lt;br /&gt;
|Button&lt;br /&gt;
|ready: &amp;lt;5s blink, &amp;gt;5s constant flash&lt;br /&gt;
&lt;br /&gt;
line1 + line2 + door + aux constant flash / link + act off&lt;br /&gt;
&lt;br /&gt;
with plugged in ethernet cable 100M + link: &amp;lt;3s off, &amp;gt;3s normal operating state&lt;br /&gt;
|...&lt;br /&gt;
&lt;br /&gt;
ready fast blink, line1 + line2 + door + aux off link + 100M normal operating&lt;br /&gt;
&lt;br /&gt;
|3&lt;br /&gt;
|25&lt;br /&gt;
|all LED’s are constant flashing&lt;br /&gt;
&lt;br /&gt;
link is blinking&lt;br /&gt;
|ready + line1/2 + door + aux + 100M (if link)&lt;br /&gt;
&lt;br /&gt;
permanent for ca. 5s&lt;br /&gt;
&lt;br /&gt;
link blinking&lt;br /&gt;
|ready + 100M (if link)&lt;br /&gt;
&lt;br /&gt;
link blinking&lt;br /&gt;
|&lt;br /&gt;
|----&lt;br /&gt;
|IP400&lt;br /&gt;
(all LED’s)&lt;br /&gt;
|Button&lt;br /&gt;
|PPP+Tel.1+Tel.2: &amp;lt;5s blink, [5;8] constant flash, &amp;gt;8 ready + link + act constant flash&lt;br /&gt;
&lt;br /&gt;
without ethernet cable plugged in: &amp;lt;8s off, 8s one blink, &amp;gt;8s off&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|25&lt;br /&gt;
|ready + link + act flashing constant&lt;br /&gt;
|&amp;lt;8 ready + PPP + tel1 + tel2 constant flash,&lt;br /&gt;
&lt;br /&gt;
[3;10] link + act. uncoordinated flashing&lt;br /&gt;
&lt;br /&gt;
&amp;gt;10s ready + link (if link) constant act. blinking&lt;br /&gt;
|ready + 100M (if link)&lt;br /&gt;
&lt;br /&gt;
link blinking&lt;br /&gt;
|&lt;br /&gt;
|----&lt;br /&gt;
|IP3000&lt;br /&gt;
(all LED’s)&lt;br /&gt;
|Button&lt;br /&gt;
|&amp;lt;6s PRI1+PRI2+S/T+ready blink, [6;10] PRI1 + PRI2 + S/T + ready constant flash,&lt;br /&gt;
&lt;br /&gt;
act + speed + link off&lt;br /&gt;
&lt;br /&gt;
&amp;gt;10s PRI1 + PRI2 + S/T constant flash, ready + act + speed + link off&lt;br /&gt;
&lt;br /&gt;
with ethernet cable plugged in: act + speed + link normal working state&lt;br /&gt;
|fast blink (green)&lt;br /&gt;
|3&lt;br /&gt;
|25&lt;br /&gt;
|all LED’s flashing permanent&lt;br /&gt;
&lt;br /&gt;
ready off&lt;br /&gt;
&lt;br /&gt;
link blinking&lt;br /&gt;
|&amp;gt;2 link + speed constant flashing, act blinking&lt;br /&gt;
&lt;br /&gt;
&amp;lt;5s PRI1 + PRI2 + S/T constant flash&lt;br /&gt;
&lt;br /&gt;
&amp;gt;5s ready constant flash, (if link) link + speed constant flashing, act blinking&lt;br /&gt;
|ready constant flash, (if link) link + speed constant flashing, act blinking&lt;br /&gt;
|blinking (green)&lt;br /&gt;
|----&lt;br /&gt;
|IP800/IP6000/IPx010&lt;br /&gt;
(red/green/orange ready LED )&lt;br /&gt;
|Button&lt;br /&gt;
|&amp;lt;6 slow gn blink&lt;br /&gt;
&lt;br /&gt;
[6;10] constant red&lt;br /&gt;
&lt;br /&gt;
[10;13] fast gn blink&lt;br /&gt;
&lt;br /&gt;
&amp;lt;13 constant orange&lt;br /&gt;
|fast blink (green)&lt;br /&gt;
|3&lt;br /&gt;
|15 (IP800)&lt;br /&gt;
&lt;br /&gt;
15-20 (IP6000/IPx010)&lt;br /&gt;
|constant orange&lt;br /&gt;
|red&lt;br /&gt;
|green&lt;br /&gt;
|blinking (red)&lt;br /&gt;
|----&lt;br /&gt;
|IP1200&lt;br /&gt;
|Button&lt;br /&gt;
|&amp;lt;2s alarm red constant flash, ready off&lt;br /&gt;
&lt;br /&gt;
[2;7] alarm off, ready slow blink green&lt;br /&gt;
&lt;br /&gt;
[7;13] alarm off, ready fast blink green&lt;br /&gt;
&lt;br /&gt;
&amp;gt;13s alarm off, ready 2 Hz blink green&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|10&lt;br /&gt;
|slow flash ca. 2 Hz&lt;br /&gt;
|&amp;lt;2s alarm red constant flash&lt;br /&gt;
&lt;br /&gt;
ready green constant flash&lt;br /&gt;
&lt;br /&gt;
power orange constant flash&lt;br /&gt;
&lt;br /&gt;
[2;4] alarm off, ready off, power orange&lt;br /&gt;
&lt;br /&gt;
&amp;gt;4s alarm off, ready constant green flash, power constant green flash&lt;br /&gt;
|ready constant green flash and power constant orange flash&lt;br /&gt;
|alarm (red)&lt;br /&gt;
|----&lt;br /&gt;
|IP1202/IP1203&lt;br /&gt;
|Button&lt;br /&gt;
|&amp;lt;3s LED off&lt;br /&gt;
&lt;br /&gt;
[3;10] LED blink fast blue 1 sec&lt;br /&gt;
&lt;br /&gt;
&amp;gt;10s LED blink fast blue 1 sec,&lt;br /&gt;
than blink slow blue until factory reset completed,&lt;br /&gt;
than constant yellow/amber&lt;br /&gt;
|fast blink in blue&lt;br /&gt;
|3&lt;br /&gt;
|10&lt;br /&gt;
|constant yellow/amber&lt;br /&gt;
|LED red until firmware lstarted&lt;br /&gt;
&lt;br /&gt;
LED blink fast red until ethernet link up&lt;br /&gt;
&lt;br /&gt;
LED blink fast blue until Air Sync established&lt;br /&gt;
&lt;br /&gt;
LED constant blue if Air Sync OK&lt;br /&gt;
&lt;br /&gt;
|LED constant blue&lt;br /&gt;
|LED constant red&lt;br /&gt;
|----&lt;br /&gt;
|IP200/IP202&lt;br /&gt;
(red handset)&lt;br /&gt;
|alt key&lt;br /&gt;
|slow blink&lt;br /&gt;
|slow blink&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|constant flash&lt;br /&gt;
|slow blink&lt;br /&gt;
|off&lt;br /&gt;
|constant flash&lt;br /&gt;
|----&lt;br /&gt;
|IP200A/IP210&lt;br /&gt;
(red handset)&lt;br /&gt;
|alt key&lt;br /&gt;
|slow blink&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|15&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|on&lt;br /&gt;
|off&lt;br /&gt;
|blinking &lt;br /&gt;
|----&lt;br /&gt;
|IP110&lt;br /&gt;
(LED’s in F1 key)&lt;br /&gt;
|save key&lt;br /&gt;
|slow blink&lt;br /&gt;
|F1 off&lt;br /&gt;
|3&lt;br /&gt;
|10 - 15&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|constant F1 flash&lt;br /&gt;
|off&lt;br /&gt;
|blinking &lt;br /&gt;
|----&lt;br /&gt;
|IP101&lt;br /&gt;
(MWI LED)&lt;br /&gt;
|backspace key&lt;br /&gt;
|press key when power cycle, hold ca 10 sec till led flashing. Power cycle again when slow blink&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|----&lt;br /&gt;
|IP102&lt;br /&gt;
(MWI LED)&lt;br /&gt;
|backspace key&lt;br /&gt;
|press key when power cycle, hold ca 10 sec till led flashing. Power cycle again when slow blink&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|----&lt;br /&gt;
|IP111&lt;br /&gt;
(MWI LED)&lt;br /&gt;
|home key&lt;br /&gt;
|press key when power cycle, hold ca 10 sec till led flashing. Power cycle again when slow blink&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|----&lt;br /&gt;
|IP112&lt;br /&gt;
(MWI LED)&lt;br /&gt;
|home key&lt;br /&gt;
|press key when power cycle, hold ca 10 sec till led flashing. Power cycle again when slow blink&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|----&lt;br /&gt;
|IP230&lt;br /&gt;
(menu key)&lt;br /&gt;
|menu key&lt;br /&gt;
|slow blink&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|10&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|on&lt;br /&gt;
|off&lt;br /&gt;
|blinking &lt;br /&gt;
|----&lt;br /&gt;
|IP240&lt;br /&gt;
(menu key)&lt;br /&gt;
|menu key&lt;br /&gt;
|slow blink&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|10&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|on&lt;br /&gt;
|off&lt;br /&gt;
|blinking &lt;br /&gt;
|----&lt;br /&gt;
|IP241&lt;br /&gt;
(menu key)&lt;br /&gt;
|alt key&lt;br /&gt;
|slow blink&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|10&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|on&lt;br /&gt;
|off&lt;br /&gt;
|blinking&lt;br /&gt;
|----&lt;br /&gt;
|IP222&lt;br /&gt;
(MWI LED)&lt;br /&gt;
|ESC key or Home key&lt;br /&gt;
|slow blink&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|15&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|on&lt;br /&gt;
|off&lt;br /&gt;
|blinking&lt;br /&gt;
|----&lt;br /&gt;
|IP232&lt;br /&gt;
(MWI LED)&lt;br /&gt;
|ESC key or Home key&lt;br /&gt;
|slow blink&lt;br /&gt;
|fast blink&lt;br /&gt;
|3&lt;br /&gt;
|15&lt;br /&gt;
|slow flash&lt;br /&gt;
ca. 2 Hz&lt;br /&gt;
|on&lt;br /&gt;
|off&lt;br /&gt;
|blinking &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Howto:How to use gwload]]&lt;br /&gt;
* [[Howto:How_to_Reset_IPXXX_(V10...)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Concept_App_Service_Queues&amp;diff=62421</id>
		<title>Reference13r2:Concept App Service Queues</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Concept_App_Service_Queues&amp;diff=62421"/>
		<updated>2022-06-16T09:55:55Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Busy Lamp Field */ Delete user&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
The Queues App Service can be installed on an innovaphone App Platform and will provide services for several Apps that can be used to manage calls and waiting queues with myApps. For example the Switchboard App.&lt;br /&gt;
&lt;br /&gt;
== Applies To ==&lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r2final&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* innovaphone PBX&lt;br /&gt;
* innovaphone Application Platform&lt;br /&gt;
* Firmware V13r2xx&lt;br /&gt;
* UsersAdminApp&lt;br /&gt;
* ProfileApp&lt;br /&gt;
* CalllistApp&lt;br /&gt;
* Calllist-API&lt;br /&gt;
* RCC-API&lt;br /&gt;
* configured Waiting Queues in the PBX&lt;br /&gt;
* configured group(s) in the PBX assigned as &amp;quot;Static&amp;quot; and &amp;quot;Active&amp;quot; to the Waiting Queue&lt;br /&gt;
* License “App(innovaphone-switchboard)13” (order no. 02-00050-007) per application-user&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
=== innovaphone-switchboard ===&lt;br /&gt;
[[Image: Switchboard-App.png|50px]]&lt;br /&gt;
&lt;br /&gt;
The Switchboard App is an attendant workstation integrated into the myApps user interface. At a switchboard workstation, an employee of a company or a telephone network operator can process incoming calls and connection requests from external or internal callers. An employee can accept connections, request information, put calls on hold, transfer them to the desired destination, or reject the connection. The calls displayed are the ones from the monitorized phone device and they are managed using the RCC-API. The Switchboard App needs a license per Switchboard user, called the Switchboard App.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
;URL: &amp;lt;pre&amp;gt;http://&amp;lt;ap.domain.tld&amp;gt;/&amp;lt;domain.tld&amp;gt;/&amp;lt;instance-name&amp;gt;/innovaphone-switchboard&amp;lt;/pre&amp;gt;&lt;br /&gt;
;Websocket&lt;br /&gt;
;TableUsers: to be able to replicate the users for the BLF&lt;br /&gt;
;Admin: to be able to edit the User object to monitor or un-monitor a waiting queue&lt;br /&gt;
;Pbx-API: to edit the presence information&lt;br /&gt;
;RCC-API: to use the RCC API to manage the calls&lt;br /&gt;
;Impersonation: to get the Phone App favorites&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-switchboard-admin ===&lt;br /&gt;
[[Image: Innovaphone-switchboard-admin.png|50px]]&lt;br /&gt;
&lt;br /&gt;
With the Switchboard Admin App an administrator can manage the user(s) rights and can assign waiting queues to users. &lt;br /&gt;
&lt;br /&gt;
The rights that can be set are:&lt;br /&gt;
* Edit waiting queues&lt;br /&gt;
* Edit presence&lt;br /&gt;
* Edit call diversions (and in a future version also mobility)&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
;URL: &amp;lt;pre&amp;gt;http://&amp;lt;ap.domain.tld&amp;gt;/&amp;lt;domain.tld&amp;gt;/&amp;lt;instance-name&amp;gt;/innovaphone-switchboard-admin&amp;lt;/pre&amp;gt;&lt;br /&gt;
;Websocket&lt;br /&gt;
;TableUsers: to be able to replicate the users from the PBX&lt;br /&gt;
;Admin: to be able to assign the waiting queue groups to the user&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
=== Queues ===&lt;br /&gt;
&lt;br /&gt;
With the Queues plugin the Switchboard App and Switchboard Admin App Objects can be created, edited and deleted on the PBX.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
# Download the Queues App via App Store.&lt;br /&gt;
# Install the Queues App on the App Platform.&lt;br /&gt;
# Create an instance in the Queues App on the App Platform.&lt;br /&gt;
# Make sure the Instance is running.&lt;br /&gt;
# Create a new Switchboard App Object with the PBX Manager Plugin.&lt;br /&gt;
#* Optional: Create a new SwitchboardAdmin App Object with the PBX Manager Plugin for administration purposes.&lt;br /&gt;
# Check that there are enough licenses and assign them to the users.&lt;br /&gt;
# Assign the Switchboard app to authorized users (who will be allowed to open the app) using a config template or directly on the user object.&lt;br /&gt;
#* Optional: Assign the SwitchboardAdmin app to authorized users who will be allowed to assign WQs &amp;amp; respective rights to switchboard app users).&lt;br /&gt;
# Configure waiting queues via the PBX manager if needed or use the Switchboard Admin App to assign existing waiting queues and manage the users rights. (existing waiting queues should have a primary group assigned, the Switchboard App will assign this primary group to the User)&lt;br /&gt;
#* Optional: configure a Park-key for the User with an audio reminder of x seconds to receive an audio and visual reminder of your parked call after the configured amount of seconds in the Switchboard App&lt;br /&gt;
#* Optional: configure a Recall time-out under PBX Generall to receive recalls from unanswered (blind)transfered calls.&lt;br /&gt;
# Open the Switchboard App and select a (soft)phone device on the hamburger menu.&lt;br /&gt;
&#039;&#039;&#039;To prevent the (Soft)Phone App from popping up in front of the Switchboard App with an incoming call, deselect in myApps your default (Soft)Phone App and deselect &amp;quot;Bring AppSharing/Video always to front&amp;quot; in your (Soft)Phone App.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Switchboard App - User interface==&lt;br /&gt;
[[Image: Switchboard UI.PNG|thumb|upright=1.0|right|Switchboard App UI]]&lt;br /&gt;
The user interface is divided in 3 panels:&lt;br /&gt;
* Left panel : Busy Lamp Field and users search&lt;br /&gt;
* Central panel: Calls&lt;br /&gt;
* Right panel: Waiting queues and calls history&lt;br /&gt;
&lt;br /&gt;
There is also a hamburger menu, where some configuration settings can be edited.&lt;br /&gt;
&lt;br /&gt;
=== Left panel ===&lt;br /&gt;
==== Busy Lamp Field ====&lt;br /&gt;
The &#039;&#039;&#039;BLF&#039;&#039;&#039; is displayed on the left panel. There all the users replicated from the PBX are displayed and it can be undocked and displayed on another window.&lt;br /&gt;
Information displayed by user:&lt;br /&gt;
* Profile picture&lt;br /&gt;
* Presence&lt;br /&gt;
* Common name&lt;br /&gt;
* Phone number&lt;br /&gt;
&lt;br /&gt;
Actions allowed:&lt;br /&gt;
* Select a user to Transfer a call by clicking on it &lt;br /&gt;
* Start a call by using the phone button&lt;br /&gt;
* Start a chat&lt;br /&gt;
* Send an email&lt;br /&gt;
* Send a &amp;quot;Call me back&amp;quot; notification by email&lt;br /&gt;
* Display contact information&lt;br /&gt;
* Add a user to a BLF group&lt;br /&gt;
* Delete a user from a BLF group by long press left mouse. When a user already was deleted in the PBX, the BLF entry can only be removed in the Switchboard Admin App.&lt;br /&gt;
&lt;br /&gt;
==== Users search ====&lt;br /&gt;
[[Image: Switchboard User Search.PNG|thumb|upright=1.0|right|User search]]&lt;br /&gt;
The &#039;&#039;&#039;users search&#039;&#039;&#039; (Search-API) can be done with the input field. This input field can also be used to directly dial using the phone button.&lt;br /&gt;
Information displayed by user:&lt;br /&gt;
* Profile picture&lt;br /&gt;
* Presence&lt;br /&gt;
* Common name&lt;br /&gt;
&lt;br /&gt;
Actions allowed:&lt;br /&gt;
* Select a user to Transfer a call by clicking on it &lt;br /&gt;
* Start a chat&lt;br /&gt;
* Start a call&lt;br /&gt;
* Send an email&lt;br /&gt;
&lt;br /&gt;
[[Image: Switchboard User Details.PNG|thumb|upright=1.0|right|User search]]&lt;br /&gt;
The user &#039;&#039;&#039;details&#039;&#039;&#039; can also be expanded by clicking on the arrow icon.&lt;br /&gt;
Data displayed (read only) for the user:&lt;br /&gt;
* Profile picture&lt;br /&gt;
* Common name&lt;br /&gt;
* SIP&lt;br /&gt;
* Phone number&lt;br /&gt;
* Email&lt;br /&gt;
* PBX&lt;br /&gt;
* Node&lt;br /&gt;
&lt;br /&gt;
Data displayed that can also be edited for the user (if the user has the appropriate rights):&lt;br /&gt;
* Presence note&lt;br /&gt;
* Presence&lt;br /&gt;
* Call diversions&lt;br /&gt;
* Mobility&lt;br /&gt;
&lt;br /&gt;
Actions allowed:&lt;br /&gt;
* Start a chat&lt;br /&gt;
* Start a call (by SIP and phone number)&lt;br /&gt;
* Send an email&lt;br /&gt;
* Send a &amp;quot;Call me back&amp;quot; notification by email&lt;br /&gt;
* Add the user to a BLF group&lt;br /&gt;
&lt;br /&gt;
=== Center panel ===&lt;br /&gt;
On the center panel the calls are displayed.&lt;br /&gt;
&lt;br /&gt;
==== Calls ====&lt;br /&gt;
The calls are divided in 5 sections: in the waiting queue, incoming, outgoing, parked and transferred.&lt;br /&gt;
&lt;br /&gt;
Depending on the call state, different &#039;&#039;&#039;actions&#039;&#039;&#039; are allowed to manage the calls:&lt;br /&gt;
* Connect/Disconnect a call&lt;br /&gt;
* Mute/Unmute a call&lt;br /&gt;
* Hold/Release a call&lt;br /&gt;
* Park/Unpark a call&lt;br /&gt;
* Transfer a call to a user or connect 2 calls&lt;br /&gt;
* Pick up a transferred call or a call from the waiting queue&lt;br /&gt;
&lt;br /&gt;
=== Right panel ===&lt;br /&gt;
On the right panel the waiting queues and the calls history are displayed.&lt;br /&gt;
&lt;br /&gt;
==== Waiting Queues ====&lt;br /&gt;
On the right panel the &#039;&#039;&#039;waiting queues&#039;&#039;&#039; are displayed. They can be added by clicking on &amp;quot;Add waiting queue&amp;quot; (only displayed if the user has the appropriate right), which will automatically add the user to the given group. The calls will be displayed on the calls section and from there they can be picked up or transferred to an user.&lt;br /&gt;
&lt;br /&gt;
==== Calls history ====&lt;br /&gt;
On this panel also the &#039;&#039;&#039;calls history&#039;&#039;&#039; is displayed, which is received from the Call List-API.&lt;br /&gt;
&lt;br /&gt;
Information displayed on entry:&lt;br /&gt;
* Call flow&lt;br /&gt;
* Call information (source/destination, date and duration)&lt;br /&gt;
&lt;br /&gt;
Actions allowed:&lt;br /&gt;
* Start a call&lt;br /&gt;
* Start a chat&lt;br /&gt;
* Send an email&lt;br /&gt;
* Send a &amp;quot;Call me back&amp;quot; notification by email&lt;br /&gt;
* Display contact information&lt;br /&gt;
* Add the user to a BLF group&lt;br /&gt;
&lt;br /&gt;
=== Hamburger menu ===&lt;br /&gt;
On the hamburger menu the &#039;&#039;&#039;shortcuts&#039;&#039;&#039; can be edited and the size of the users items from the BLF can be customized.&lt;br /&gt;
==== Edit shortcuts ====&lt;br /&gt;
To edit a shortcut, the shortcut must be selected and then the desired key pressed. Afterwards it has to be clicked again to finish the editing. To remove a shorcut, select the shortcut and press the &amp;quot;Del&amp;quot; key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
==== Size of the user items (BLF) ====&lt;br /&gt;
There are 2 different size:&lt;br /&gt;
* Icons only: only the profile picture, presence and common name will be displayed.&lt;br /&gt;
* Detailed large: the phone number and the call button are displayed too.&lt;br /&gt;
&lt;br /&gt;
==== Select monitored device ====&lt;br /&gt;
If a device is selected, all the calls from/to that device will be monitored by the app.&lt;br /&gt;
&lt;br /&gt;
==Additional information==&lt;br /&gt;
===Licensing===&lt;br /&gt;
* When using the OperatorV13 license in a pre V13r2 release, and you want to use the Switchboard App instead in a &amp;gt; V13r2, you need to download a new license file from my.innovaphone &lt;br /&gt;
* Upgrade from Operator, the Operator13 license will result in 3 times App(innovaphone-switchboard)13 in addition.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
* When closing the Switchboard App, the user will be logout of all the waiting queues groups. When opening the app again, the user will be automatically logged-in on this groups again.&lt;br /&gt;
* Shortcuts may not be triggered on the Switchboard App if the app is not on focus. For this just click on the UI of the app.&lt;br /&gt;
* If a softphone is being monitorized, the Softphone App must be opened on background. Otherwise the RCC-API will not sent calls information to the Switchboard App.&lt;br /&gt;
* If no (soft)phone device has been selected on the hamburger menu of the Switboard App, the calls may be displayed duplicated because that means that the app is monitoring all the devices. To avoid this please select your default (Soft)Phone App on the phone devices section.&lt;br /&gt;
* As Switchboard App &amp;quot;Operator&amp;quot; you will work mainly with the Switchboard App. To have video from internal callers, you need to have a (Soft)Phone App open in the background. Deselect your Default Phone device in the myApps otherwise this App will get focus during the incoming call and on connect after answering a call. Best Practice to undock the Video from your (Soft)Phone App in the background and deselect the option &amp;quot;Bring AppSharing/Video always to front&amp;quot; as this would bring your (Soft)Phone App to the front as well. &lt;br /&gt;
* If LDAP contacts are not displayed on the search results, please check if the rights for the LDAP object have been given to the Switchboard App.&lt;br /&gt;
&lt;br /&gt;
==Trouble shooting==&lt;br /&gt;
* If any issue can be reproduced, open the console output of your browser or right-click and inspect in the native client version of the Switchboard App. Clear the console output and reproduce the issue and copy past the output as a textfile and send this attached in your support ticket.&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* SDK Integration (if the content is available)&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Apps/PbxManager/Voicemail&amp;diff=61130</id>
		<title>Reference13r1:Apps/PbxManager/Voicemail</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Apps/PbxManager/Voicemail&amp;diff=61130"/>
		<updated>2022-02-24T14:03:43Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Add Voicemail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configure Voicemail Objects&lt;br /&gt;
&lt;br /&gt;
=Features from Version 13r1sr10=&lt;br /&gt;
==Settings==&lt;br /&gt;
&lt;br /&gt;
Password and Username can be set for all voicemail objects&lt;br /&gt;
&lt;br /&gt;
==Add Voicemail==&lt;br /&gt;
&lt;br /&gt;
*Name of the voicemail object&lt;br /&gt;
*sip of the voicemail object&lt;br /&gt;
*number of the voicemail object&lt;br /&gt;
*choose of a PBX&lt;br /&gt;
*choose of a Node&lt;br /&gt;
*checkmark for email notification (The SMTP account from PBX Manager -&amp;gt; E-Mail is used)&lt;br /&gt;
*checkmark for custom mode&lt;br /&gt;
&lt;br /&gt;
==Voicemail Objects==&lt;br /&gt;
Here are the configured voicemail objects.&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
==Upgrade to sr10==&lt;br /&gt;
If an upgrade is made of an earlier version there is an [[Reference9:Services/HTTP/Client | HTTP/Client]] entry on the PBX which authorizes the PBX against the Voicemail App to have access to the voicemail files.&lt;br /&gt;
After setting a new password for the voicemail objects in the PBX Manager the Services/HTTP/Client entry is obsolete. The HTTP username &amp;amp; password are written in the voicemail objects. They can be read by using the admin interface of the PBX (e.g. Devices) on the Voicemail tab of a voicemail object. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT CHANGE THE PASSWORD OF THE VOICEMAIL OBJECT IN THE ADMIN INTERFACE ON THE PBX! VOICEMAIL WILL NOT WORK ANYMORE DUE TO NO AUTHORISATION AGAINST VOICEMAIL APP ON THE APP PLATFORM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Install of sr10==&lt;br /&gt;
If the Voicemail is installed with the install script, the voicemail object HTTP-password is the same as the Voicemail-App password.&lt;br /&gt;
&lt;br /&gt;
==Custom Mode==&lt;br /&gt;
For Custom Mode the password for the WinSCP (as explained in the [[Howto:V13_Access_Voicemail_Files#Use_your_own_voicemail_files_with_the_voicemail-App_in_custom_mode | HOWTO article]]) can be seen in the settings in the PBX Manager (Voicemail). With these credentials start a WinSCP and copy all VM files (scripts and announcements e.g. a full httpfiles.zip (unpacked)) in the custom folder (path: domain/voicemail&amp;lt;language&amp;gt;/custom). There have to be uploaded the scripts and all announcement files.&lt;br /&gt;
&lt;br /&gt;
=Related Articles=&lt;br /&gt;
* [[Howto:V13 Access Voicemail Files|Howto:V13 Access Voicemail Files]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Pcap&amp;diff=59458</id>
		<title>Howto:Pcap</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Pcap&amp;diff=59458"/>
		<updated>2021-06-29T12:57:26Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Versions */ Where to paste the DLL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With remote PCAP, network traffic can be captured directly from another network device, instead of capturing the network traffic from the own device.&lt;br /&gt;
&lt;br /&gt;
==Remote PCAP==&lt;br /&gt;
===Requirements===&lt;br /&gt;
&lt;br /&gt;
* You should have installed the latest wireshark Stable release 1.12.X - [http://www.wireshark.org/download.html Wireshark Download]&lt;br /&gt;
: You may also use newer builds, but make sure they are supported by our plugin DLL. See [[#Versions | Versions ]] below for a list of supported versions&lt;br /&gt;
* To view the standard debug output or ISDN LAPD/Q.931 packets, you have to install the &#039;&#039;innovaphone plugin&#039;&#039;  (&amp;lt;code&amp;gt;innovaphone_win32.dll&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;innovaphone_win64.dll&amp;lt;/code&amp;gt;, depending on your installed wireshark version, 32 bit or 64 bit). To convert text log output (from the &#039;&#039;Maintenance/Tracing&#039;&#039; page) you can use &#039;&#039;log2pcap.exe&#039;&#039;.&lt;br /&gt;
: To download both items, open the [http://download.innovaphone.com/ice/download/p/6.00/apps/ V6 application page], select the &#039;&#039;&#039;6000055&#039;&#039;&#039; folder and download the &#039;&#039;&#039;tools.zip&#039;&#039;&#039;.&lt;br /&gt;
: Again, if you use newer builds, make sure you download the DLLs from the appropriate &#039;&#039;apps&#039;&#039; package (see [[#Versions | Versions ]] below)&lt;br /&gt;
: To &#039;&#039;&#039;install&#039;&#039;&#039; a DLL version &#039;&#039;&#039;1059&#039;&#039;&#039; or previous, just copy it to your wireshark plugin directory and pay attention on your currently used version (e.g.: c:\programme\wireshark\plugins\1.12.0\).  Note that you need to re-install the DLL each time you update wireshark&lt;br /&gt;
: To &#039;&#039;&#039;install&#039;&#039;&#039; a DLL version &#039;&#039;&#039;1060&#039;&#039;&#039; or later, just copy it to your wireshark plugin &#039;&#039;&#039;epan&#039;&#039;&#039; directory and pay attention on your currently used version (e.g.: c:\programme\wireshark\plugins\2.6\epan\).  Note that you need to re-install the DLL each time you update wireshark&lt;br /&gt;
* Open the [http://wiki.innovaphone.com/index.php?title=Image:Pcap_example_isdn.zip example pcap file with lapd and q.931 packets] to check your current installation. It should look like this, if you have the innovaphone_winXX.dll correctly installed:&lt;br /&gt;
&lt;br /&gt;
[[Image:Pcap_sample_isdn.jpg|center|thumb|200px|PCAP ISDN example]]&lt;br /&gt;
&lt;br /&gt;
==== Using Wireshark &#039;&#039;Legacy&#039;&#039; ====&lt;br /&gt;
Starting with version 2, wireshark has a new user interface.  Unfortunately, we found this to be sluggish and buggy.  For that reason, we strongly recommend to use wireshark&#039;s &#039;&#039;legacy&#039;&#039; version.  It is available as an option (&#039;&#039;Wireshark 1, The classic user interface&#039;&#039;) in the installer&#039;s item selection.  You also may want to associate the trace file extensions (.pcap, .pcapng etc.) with &#039;&#039;Wireshark Legacy&#039;&#039; instead of the standard version (also available in the setup dialogue).&lt;br /&gt;
&lt;br /&gt;
===Setting up the rpcap server===&lt;br /&gt;
&lt;br /&gt;
* The rpcap server can be any innovaphone device. &lt;br /&gt;
* The remote pcap server is disabled per default. To enable it, just go to Diagnostics-&amp;gt;Tracing and check the &amp;quot;Enable&amp;quot; flag in the &amp;quot;Remote PCAP&amp;quot; group. If you are experiencing problems, also enable the trace flag with &amp;quot;config add PCAP /trace&amp;quot;.&lt;br /&gt;
* To capture all ip traffic (udp and tcp), enable the &amp;quot;IP (all tcp/udp traffic)&amp;quot; flag in the group &amp;quot;IP&amp;quot;. Otherwise just enable all the trace flags on the modules you want to capture.&lt;br /&gt;
&lt;br /&gt;
===Capturing with wireshark===&lt;br /&gt;
&lt;br /&gt;
===1.x.x - 1.7.x===&lt;br /&gt;
Open your wireshark and the capture options dialogue. Choose &amp;quot;remote&amp;quot; from the dropdown list and &lt;br /&gt;
Type &amp;quot;&amp;lt;IP-ADDRESS&amp;gt;/TRACE&amp;quot; into the host field.&lt;br /&gt;
&lt;br /&gt;
It should look like this: (Screenshot from older Wireshark, v.1.2.2)&lt;br /&gt;
[[Image:Wireshark_1.2.2_trace_settings.PNG|center|thumb|200px|Wireshark capture options]]&lt;br /&gt;
&lt;br /&gt;
Then just click on &amp;quot;Start&amp;quot; to start capturing.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;gt;= 1.8.x ===&lt;br /&gt;
&lt;br /&gt;
Open your wireshark and „Capture Options“-&amp;gt;“Manage Interfaces“-&amp;gt;“Remote Interfaces“. Add the IP address of your device.&amp;lt;br&amp;gt;&lt;br /&gt;
The remote interface will be listed in your interface now and you can select it for capturing data.&lt;br /&gt;
&lt;br /&gt;
[[Image:Wireshark_1.8.6_settings.png|center|thumb|200px|Wireshark capture options]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;gt;= 2.0.0 ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Wireshark_2.0.0_settings.jpg|center|thumb|200px|Wireshark capture options]]&lt;br /&gt;
&lt;br /&gt;
=== &amp;gt;= 3.0.0 ===&lt;br /&gt;
&lt;br /&gt;
With the latest innovaphone Firmware (e.g. 13r1 SR11), Wireshark is supported again if you use the latest wireshark DLL.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you&#039;re running older firmware versions:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The innovaphone.dll is not supported currently with this Wireshark-version. Please do not upgrade to Wireshark 3.0 or up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RCAP does not currently work with innovaphone devices in newer Wireshark versions. If you only want to pull general remote PCAPs with it, you can also try the Wireshark Pipe feature. For this you have to create a new pipe interface in Wireshark in the following format.&lt;br /&gt;
&amp;lt;code type=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rpcap://[ip-address]/trace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
During our tests we experienced some problems with it. Alternatively, you can add the pipe interface via the command line. First change to the Wireshark directory and replace [ip-address] with the innovaphone IP address.&lt;br /&gt;
&amp;lt;code type=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
C:\Program Files\Wireshark&amp;gt;wireshark -ni rpcap://[ip-address]/trace&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Supported protocols===&lt;br /&gt;
&lt;br /&gt;
* ISDN: LAPD L2/L3 with dissector innovaphone.dll (enable Diagnostics-&amp;gt;Tracing TELX/PRIX/PPP)&lt;br /&gt;
* AC DSP: dsp with dissector Ac49xPacketRecording.dll (enable Diagnostics-&amp;gt;Tracing-&amp;gt;VOIP DSP)&lt;br /&gt;
* PPPoE: flag &amp;quot;/pcap&amp;quot; on module(s) PPPOE0/PPPOE1 enables pcap tracing&lt;br /&gt;
&lt;br /&gt;
* All TCP/UDP protocols which are supported by native wireshark dissectors or other dissectors which can be found searching the internet.&lt;br /&gt;
e.g.:&lt;br /&gt;
SIP&lt;br /&gt;
H.323&lt;br /&gt;
H.245&lt;br /&gt;
&lt;br /&gt;
Enable the corresponding flags under Diagnostics-&amp;gt;Tracing, if you only want to see specific UDP/TCP protocols. To see all, enable the &amp;quot;All TCP/UDP Traffic&amp;quot; flag under Diagnostics-&amp;gt;Tracing.&lt;br /&gt;
&lt;br /&gt;
==PCAP Log==&lt;br /&gt;
&lt;br /&gt;
Another possibility to get a pcap log file is to open http://IP/log.pcap&lt;br /&gt;
This file has a limited size just as the normal log file.&lt;br /&gt;
&lt;br /&gt;
==log2pcap==&lt;br /&gt;
&lt;br /&gt;
You need the tool log2pcap from the tools package, if you have a log.txt file, which contains pcap packets and you want to view them in wireshark. You can find the tool in the apps tool package (see above).&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
# log2pcap.exe input1 input2 ... inputX&lt;br /&gt;
# drag&amp;amp;drop one or more files on the log2pcap.exe&lt;br /&gt;
# use an asterisk like &amp;quot;log2pcap c:\*.txt&amp;quot; to convert all txt files into pcap files. Things like c:\test*.txt are not supported.&lt;br /&gt;
&lt;br /&gt;
* The resulting file name is always inputx.pcap (e.g. log.txt is converted into log.txt.pcap).&lt;br /&gt;
&lt;br /&gt;
Note: if you have a trace of a little endian box (e.g. IP3000, IP21) with V6 SR1 or SR2, you have to use the &amp;quot;-srlefix&amp;quot; switch (available since 08-1007):&lt;br /&gt;
&lt;br /&gt;
log2pcap.exe input1 -srlefix&lt;br /&gt;
&lt;br /&gt;
==General Informations==&lt;br /&gt;
&lt;br /&gt;
===Reading PCAP Traces===&lt;br /&gt;
&lt;br /&gt;
====Non-IP Pcap packets==== &lt;br /&gt;
It will nevertheless show source and destination IP addresses.   127.0.0.1 stand in for the traced device.  So if for example a Q.931 SETUP messages is sent from 127.0.0.0 to 127.0.0.1, then it is an incoming setup.&lt;br /&gt;
&lt;br /&gt;
====MAC: 00:90:33:00:00:00====&lt;br /&gt;
Sometimes people wonder why a pcap &#039;&#039;00:90:33:00:00:00&#039;&#039; appears as source or destination mac address.&lt;br /&gt;
The direction of the packets can be analyzed based on the Mac address.&lt;br /&gt;
: We use the devices MAC adress as source only if a packet &#039;&#039;&#039;is sent&#039;&#039;&#039;&lt;br /&gt;
: We use the devices MAC adress as destination only if a packet &#039;&#039;&#039;is received&#039;&#039;&#039;&lt;br /&gt;
The other field will be filled with &#039;&#039;00:90:33:00:00:00&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Disabling PCAP traces===&lt;br /&gt;
&lt;br /&gt;
You can disable the whole pcap tracing. Just configure a /disable-pcap to the CMD0 module. This can be useful if you do not want to see pcap traces in your log file.&lt;br /&gt;
&lt;br /&gt;
===Used ports===&lt;br /&gt;
&lt;br /&gt;
* The debug traces are encapsulated in UDP packets with port 4.&lt;br /&gt;
* The isdn traces are encapsulated in UDP packets with port 4.&lt;br /&gt;
* The ac dsp traces are encapsulated in UDP packets with port 50001.&lt;br /&gt;
* Wireshark uses port 2002 to connect to the running rpcap-server&lt;br /&gt;
* rpcap packets are transfered over a dynamically assigned port between server and client&lt;br /&gt;
&lt;br /&gt;
===Additional Remote PCAP trace===&lt;br /&gt;
&lt;br /&gt;
You can trace the remote pcap protocol with adding the trace flag by &amp;quot;config add PCAP /trace&amp;quot; if you are experiencing connection issues.&lt;br /&gt;
&lt;br /&gt;
===Timestamps===&lt;br /&gt;
&lt;br /&gt;
Since V7 Hotfix 26 and V8 Hotfix 13, the ntp timestamp is used instead of the uptime in rpcap packages. In converted log files with log2pcap, uptime is still used.&lt;br /&gt;
&lt;br /&gt;
===Decode TURN Traffic as RTP===&lt;br /&gt;
RTP Traffic encapsulated in TURN and encoded as STUN per default. You can change this behaviour as global setting in your Wireshark.&amp;lt;br /&amp;gt;&lt;br /&gt;
To activate RTP heuristic for TURN traffic go to &amp;quot;&#039;&#039;Analyze::Enabled Protocols&#039;&#039;&amp;quot; and enable the &amp;quot;&#039;&#039;rtp_stun&#039;&#039;&amp;quot; dissector.&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
* Wireshark 1.6.8: DLL Version 1043 - V6 6000043 Application Packet&lt;br /&gt;
* Wireshark 1.11.1: DLL Version 1049&lt;br /&gt;
* Wireshark 1.12.2: DLL Version 1055 - V6 6000054 Application Packet&lt;br /&gt;
* Wireshark 2.0.x: DLL Version 1057 - V6 6000055 Application Packet&lt;br /&gt;
* Wireshark 2.2.x: DLL Version 1058 - V6 6000056 Application Packet&lt;br /&gt;
* Wireshark 2.4.x: DLL Version 1059 - V6 6000059 Application Packet&lt;br /&gt;
* Wireshark 2.6.1: DLL Version 1060 - V6 6000061 Application Packet&lt;br /&gt;
* Wireshark 3.2.x: DLL Version 1061 - V6 6000063 Application Packet&lt;br /&gt;
* Wireshark 3.4.x: DLL Version 1065 - https://store.innovaphone.com&lt;br /&gt;
&lt;br /&gt;
[http://download.innovaphone.com/ice/download/p/6.00/apps/ Download the &#039;&#039;tools&#039;&#039; package]&lt;br /&gt;
&lt;br /&gt;
You have to paste the DLL to folder .../wireshark/x.x/epan/&lt;br /&gt;
&lt;br /&gt;
== Offline generation of PCAP Files ==&lt;br /&gt;
In version v12r1 and up, you can capture and store PCAP files without running Wireshark. This is done by setting the [[Reference12r1:Maintenance/Diagnostics/Tracing | &#039;&#039;Write PCAP to URL&#039;&#039; property ]] in &#039;&#039;Maintenance/Diagnostics/Tracing&#039;&#039; to an URL which points to a writeable WebDAV folder.&lt;br /&gt;
&lt;br /&gt;
This is useful if you need to trace a device for a long time or if you cannot run Wireshark to capture the trace.  However, it is not useful if the traced device restarts, as the last trace file will be incomplete then (due to buffered IO when writing the file).&lt;br /&gt;
&lt;br /&gt;
When you remove the URL, the current trace file will be flushed and no further one will be created.&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
&lt;br /&gt;
* Converting a log from a little endian box (like IP3000 and IP21) with firmware V6 SR1 or SR2 with the tool log2pcap will only work with log2pcap 08-1007 or higher and the switch &amp;quot;-srlefix&amp;quot;, see [[:#log2pcap|log2pcap]].&lt;br /&gt;
* Ac49xPacketRecording.dll works only with 0.99.7. Higher versions of wireshark won&#039;t start, if this dll was copied to the dll folder!&lt;br /&gt;
* Also some other dlls, contained in the tools package, won&#039;t work with each wireshark version. Just innovaphone.dll is always working.&lt;br /&gt;
* Even though &#039;&#039;All TCP/UDP Traffic&#039;&#039; is turned on, packets sent to the box acting as rpcap provider to a port that is not handled by the box (that is, where no listening socket is active) will currently not be shown&lt;br /&gt;
* If you use a 64-bit Windows Pc then you will need another innovaphone.dll, which is also contained in the latest tool package.&lt;br /&gt;
* The custom IP header from captured innovaphone packets contains dummy values for TOS (0), id (0), fragment offset (0) and TTL (128)&lt;br /&gt;
* After version 1.8.6 of wireshark the h225 packets are listed as malformed. So higher versions of wireshark could give troubles debugging the h.323 calls.&lt;br /&gt;
* &#039;&#039;&#039;Couldn&#039;t set the capture buffer size!&#039;&#039;&#039;: if you&#039;re experiencing this error message, please start wireshark with the option &amp;quot;-B 1&amp;quot; to set the buffer size to 1 MB&lt;br /&gt;
&lt;br /&gt;
* Wrong time stamp when using PCAP-to-URL:&lt;br /&gt;
** open the first frame of the trace and expand the &#039;innovaphone: DEBUG&#039;-section&lt;br /&gt;
** last line show the correct time: &#039;Debug: YYYY-MM-DD HH:MM:SS&#039; in this case&lt;br /&gt;
** Click on &#039;Edit -&amp;gt; Time Shift...&#039; in the menu or use the shortcut Ctrl+Shift+T&lt;br /&gt;
** Tick &#039;Set the time for pakect 1 to ...&#039; and fill in the time found in the first frame.&lt;br /&gt;
** Click &#039;Apply&#039;&lt;br /&gt;
&lt;br /&gt;
===Missing msvcr120.dll or &amp;quot;module not found&amp;quot;/&amp;quot;Das angegebene Modul wurde nicht gefunden&amp;quot;===&lt;br /&gt;
You have to install the Visual C++ Redistributable Packages für Visual Studio 2013: http://www.microsoft.com/de-de/download/details.aspx?id=40784&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference12r1:Maintenance/Diagnostics/Tracing]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;!-- Kewwords: sniffer ethereal packet capture network monitor --&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r1:Firmware_Upgrade_V12r2_V13r1&amp;diff=59270</id>
		<title>Howto13r1:Firmware Upgrade V12r2 V13r1</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r1:Firmware_Upgrade_V12r2_V13r1&amp;diff=59270"/>
		<updated>2021-06-08T12:03:45Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Slave PBX */ Disable Relay CDRs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Migration scenarios  == &lt;br /&gt;
&lt;br /&gt;
* PBX without Linux Application Platform or external  Linux Application Platform &lt;br /&gt;
** Update PBX&lt;br /&gt;
** Installation App Platform (see below for more details)&lt;br /&gt;
*** On local SSD (if Gateway is SSD capable) &#039;&#039;- is performed automatically by the install process&#039;&#039;&lt;br /&gt;
*** On external Gateway with SSD [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#ARM_Gateway Installation of AP Platform on SSD]  &lt;br /&gt;
*** On virtual machine (Hyper-V or VMWare) [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#App_Platform_-_x86-64_.28Virtual_Machine.29 Installation of Virtual App Platform] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*PBX with Linux Application Platform on local SSD or CF-card&lt;br /&gt;
** Update PBX&lt;br /&gt;
** Installation App Platform (see below for more details)&lt;br /&gt;
***On external Gateway with SSD [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#ARM_Gateway Installation of AP Platform on SSD]  &lt;br /&gt;
*** On virtual machine (Hyper-V or VMWare) [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#App_Platform_-_x86-64_.28Virtual_Machine.29 Installation of Virtual App Platform] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
* Virtual PBX (IPVA) without Linux Application Platform or external Linux Application Platform&lt;br /&gt;
** Update PBX (IPVA)&lt;br /&gt;
** Installation App Platform (see below for more details)&lt;br /&gt;
*** On external Gateway with SSD [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#ARM_Gateway Installation of AP Platform on SSD]  &lt;br /&gt;
*** On virtual machine (Hyper-V or VMWare)[http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#App_Platform_-_x86-64_.28Virtual_Machine.29 Installation of Virtual App Platform] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Changes that will be performed during the install/migration process:==&lt;br /&gt;
* CDR0 will be changed&lt;br /&gt;
* DNS0 will be changed&lt;br /&gt;
* LOG0 will be changed&lt;br /&gt;
* IP0 /priority-tos will be changed&lt;br /&gt;
* HTTP, HTTPS Ports will be changed&lt;br /&gt;
* LDAP Server will be changed to &amp;quot;Force TLS&amp;quot;, there for all replications and other LDAP accesses need to be changed to TLS&lt;br /&gt;
** Existing LDAP Server Accounts will be removed, a new user &#039;&#039;domain.tld\ldap-guest&#039;&#039; will be created. You can find the password in the App PBX Manager/AP contacts/Change configuration/Password (LDAP). The user is already set in the the created config template &#039;&#039;Config User&#039;&#039;&lt;br /&gt;
* No of Regs w/o Pwd will be changed to &amp;quot;0&amp;quot;&lt;br /&gt;
* Relay CDRs are disabled under Gateway-&amp;gt;General &amp;quot;Write CDRs&amp;quot;&lt;br /&gt;
* Call filters are deleted/emptied&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
All changes can be changed back to another or original value after the migration process manually if necessary.&amp;lt;br&amp;gt;&lt;br /&gt;
Make sure you store all these values upfront with a backup or manually.&lt;br /&gt;
Always make a backup before you start a migration process.&amp;lt;br&amp;gt;&lt;br /&gt;
We advice to update all devices to the latest available Minor Release firmware version within your existing release before updating to V13.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A deeper look in what install does, you can find in the trainings book [[Course13:IT_Connect_-_11.0_The_individual_Device_User_Interface| The individual Device User Interface - What the Install does]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;In this scenario example we will explain you the Migration steps: PBX with Linux Application Platform on a local SSD and we install an additional Gateway with SSD for the new AP Platform&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Additional components who are necessary:&lt;br /&gt;
* IPxx11 Gateway with new SSD&lt;br /&gt;
* v13 Licenses&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware Restrictions==&lt;br /&gt;
&lt;br /&gt;
The same hardware restrictions as for V12r2 will apply.&lt;br /&gt;
* [[Howto:Firmware Upgrade V12r1 V12r2#Hardware_Restrictions]]&lt;br /&gt;
&lt;br /&gt;
=== Main Memory (RAM) Considerations ===&lt;br /&gt;
New firmware always has more features which in turn requires more resources. Growing firmware will thus consume both more flash and RAM for sure.  A given system configuration will run flawlessly after a firmware largely only if there is still enough memory left after boot.  As a rough rule of thumb, a v13r1 release will consume ~ 1 MB RAM and 0.5 MB flash more compared to a v12r2 firmware.&lt;br /&gt;
&lt;br /&gt;
Standard configurations which are according [[Howto:How_to_implement_large_PBXs#Technical_data_and_recommended_number_of_users_supported | to spec ]] will run on all supported hardware.  However, unusual configurations may not.  It is a good idea to examine both flash and RAM memory left on high load situations in your existing configuration to see if there is enough resources left for an upgrade.  Please find details in [[Reference:Device Health Check]].&lt;br /&gt;
&lt;br /&gt;
Special care has to be taken for old devices with less memory than suggested by current specs. Most notably, these are the older IP30x and IP2x models (hardware build 306 or less, which had 16MB RAM as opposed to 32MB in the current models). We do not recommend to upgrade such old hardware to a current firmware version.&lt;br /&gt;
&lt;br /&gt;
=== Flash Memory Considerations ===&lt;br /&gt;
New firmware comes with new code for new features which consumes more flash memory for the firmware image. For this reason, devices may run out of flash memory during upgrade to v13r1.  Here is the recommended procedure for upgrade on such devices:&lt;br /&gt;
&lt;br /&gt;
* save entire configuration&lt;br /&gt;
* reset to factory defaults&lt;br /&gt;
* load saved configuration (this will reorganize flash memory usage)&lt;br /&gt;
* upgrade to new firmware&lt;br /&gt;
&lt;br /&gt;
When there is still not enough flash memory available to store the new firmware, the web GUI will issue a &#039;&#039;Firmwareupdate failed:no space&#039;&#039; during firmware upload.  If the firmware upload is done using the update client, a &#039;&#039;Error 0x00130001 Major FLASHMAN0 no space&#039;&#039; event will occur.&lt;br /&gt;
&lt;br /&gt;
== Preparation before you start ==&lt;br /&gt;
&lt;br /&gt;
* Check the known issues section at the bottom of this wiki-article &lt;br /&gt;
* Check [[Reference13r1:Release_Notes_Firmware#13r1_Known_Issues | Known Issues]] in the 13r1 Release Notes before start. If unsure if an issue affects your setup, open a presales-ticket and ask for clarification&lt;br /&gt;
* You have to disable &#039;&#039;Force HTTPS&#039;&#039; and &#039;&#039;Password protect all HTTP pages&#039;&#039; in the [[Reference13r1:Services/HTTP/Server|configuration]] before the update, because the installer is HTTP only and Check that you use the default http port 80 !&lt;br /&gt;
** If you have forgotten it and cannot reach the installer you have to access the advanced UI directly via https://ip/admin.xml?xsl=admin.xsl to deactivate it. After that, you can open the installer&lt;br /&gt;
* You have to decide if you want to install with IP addresses or DNS Names. &lt;br /&gt;
** IP Addresses: go ahead&lt;br /&gt;
** DNS Names: you have to make sure before installation that your PC (your browser) and all innovaphone devices receive correct DNS resolutions from your internal DNS for the used DNS-Names in the install process&lt;br /&gt;
** Check connectivity from and to PBX, App Platform and PC (where you run the install) with IP and or DNS&lt;br /&gt;
* Check your Reverse Lookup Configuration&lt;br /&gt;
** Until V12r2 the LDAP configuration was deployed on the user object level and thus used by the phone and myPBX. In v13r1 the forward LDAP lookup is still user specific possible, the phone uses the user directories settings (as in v12) and the myApps client uses the &#039;&#039;Contacts App&#039;&#039; entries (which can be user specific by the LDAP object configuration). &lt;br /&gt;
** In v13 the Reverse-Ldap-Lookup is done centrally by the PBX by the [[Reference13r1:PBX/Config/General#Common|PBX configuration]] so called &#039;&#039;Reverse Lookup URL&#039;&#039;. (by default install will configure this to use your &#039;&#039;Contacts App&#039;&#039;). Please check the whole [[Reference13r1:Concept_Number_Resolution_and_LDAP|Concept]] before you start.&lt;br /&gt;
** Please also think about that since v13 all objects from type &amp;quot;Node&amp;quot; or &amp;quot;PBX&amp;quot; has its own [[Reference13r1:PBX/Objects/PBX#Number_Mapping_.28International.2C_National.2C_Subscriber_Prefix.29|Number Mappings Settings]] and has to be configured. If you miss this configuration reverse Lookup from Slaves/Nodes will not work as expected.&lt;br /&gt;
* in v12 (and previous firmware versions) the CONF-interface used the available DSP - resources on a gateway without checking if Channel-license were assigned to the device. This was changed in v13. Therefore, if you use a CONF-interface without proper channel licenses, be sure to order Channel licenses before starting. To calculate the needed Channel licenses, see [[Howto:Conferences%2C_Resources_and_Licenses | Conferences, Resources and Licenses]]&lt;br /&gt;
&lt;br /&gt;
== App Platform ==&lt;br /&gt;
&lt;br /&gt;
At first install the gateway with the new Application Platform.&lt;br /&gt;
&lt;br /&gt;
We assume it is in factory default. When a V13 firmware is already installed, you can access the gateway via its IP-address and you will get in the install GUI and can start the install process.  If this is not the case, you can perform an update of the firmware to v13r1 via Maintenance, Update.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If an V13r1 is installed but you don&#039;t get the install gui immediately you can open it via [http://ipaddress/install.htm http://ipaddress/install.htm]&lt;br /&gt;
* &#039;&#039;&#039;Install switch from HTTPS to HTTP, please be careful if you have deactivated HTTP, the redirection will fail&#039;&#039;&#039; !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If not no secure passwords should be assigned automatically, you can use the default passwords by using the URL with a password switch [http://ipaddress/install.htm?stdpwd=on http://ipaddress/install.htm?stdpwd=on]. We recommend the use of secure passwords&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If the install doesn&#039;t start in your desired language or you want another language during the install process as the OS-language, use an appropriate language switch, for example ?lang=nl for Dutch or ?lang=en for English&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As first you will be asked for the username and password of the gateway.&lt;br /&gt;
&lt;br /&gt;
As long as these are on the default values, you don&#039;t have to enter a value or just enter this default value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: On the right pane of the install you find the explanations for the parameters that you can fill out.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In the second step the install method will be asked.&amp;lt;br&amp;gt;&lt;br /&gt;
Here we select &amp;quot;Only update and network settings&amp;quot; to prepare the gateway for the installation of the App Platform.&lt;br /&gt;
&lt;br /&gt;
[[Image:Only update and network settings.png]]&lt;br /&gt;
&lt;br /&gt;
In the step &amp;quot;innovaphone PBX Installation&amp;quot; you enter the necessary network settings of the gateway and the IP address of the App Platform.&lt;br /&gt;
&lt;br /&gt;
It is also possible to update the gateway to the latest possible firmware version.&lt;br /&gt;
&lt;br /&gt;
Be aware that if you choose for an update of the firmware, a restart will occur.&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone PBX installation.png]]&lt;br /&gt;
&lt;br /&gt;
In the next step the App Platform will be downloaded and installed and started.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone App Platform.png]]&lt;br /&gt;
&lt;br /&gt;
== PBX ==&lt;br /&gt;
&lt;br /&gt;
After the App Platform is installed and started, we will follow-up with the update of the PBX (Master, in Distributed Systems).&lt;br /&gt;
&lt;br /&gt;
To proceed we need to install the latest version of the V13r1 firmware on the existing PBX.&lt;br /&gt;
&lt;br /&gt;
Before upgrading the licence master (master pbx) make sure you have v13 licences. Delete the old licences and upload the new licences to the licence master. Otherwise you can run into cpu load issues and the install prozess can fail because of the traffic of registration attempts with TLS.&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If the firmware V13r1 is installed, you can access the gateway via its IP-address and you enter into the install process.&lt;br /&gt;
&lt;br /&gt;
As first you will be asked for the username and password of the gateway.&lt;br /&gt;
&lt;br /&gt;
Here you enter the credential of the existing admin user (this user should be the user admin as mentioned in the known issues)  of the gateway.&lt;br /&gt;
&lt;br /&gt;
The install will recognize that it is an existing PBX configuration and provides you with the appropriate Update scenarios.&lt;br /&gt;
&lt;br /&gt;
We choose for &amp;quot;Update existing PBX with installation of an external App Platform&amp;quot; as the selected scenario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Update existing PBX with installation of an external App Platform.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case of any inconsistencies between the existing configuration file and new objects, error messages will be displayed.&lt;br /&gt;
&lt;br /&gt;
Those need to be fixed before continuing the installation. Fixing is done by login to the admin-UI and change of the displayed object.&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the step &amp;quot;innovaphone PBX Installation&amp;quot; you enter the necessary network settings of the gateway.&lt;br /&gt;
&lt;br /&gt;
It is also possible to update the gateway to the latest possible firmware version.&lt;br /&gt;
&lt;br /&gt;
Be aware that if you choose for an update of the firmware, a restart will occur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone PBX installation2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: If the &amp;quot;Login to Devices&amp;quot; message appears, there was already an entry in the advanced user interface in (General/Devices Registration). Clear this entry and restart the Install process again.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the step, &amp;quot;Connect to external App Platform&amp;quot; we connect the PBX with the pre-defines gateway with the App Platform.&lt;br /&gt;
&lt;br /&gt;
To proceed we enter the IP-address off the App-Platform and its password.&lt;br /&gt;
&lt;br /&gt;
After pressing connect and a successful connection it will show connected.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: The default password for the App-Platform is &amp;quot;pwd&amp;quot;. If you don&#039;t enter  a password the default password will be used automatically.  If you changed the password on the App-Platform into a more secure password yourself before starting the Install to update the PBX, Be sure you use this same password to connect. Otherwise the connection will fail and the install can&#039;t proceed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The installer will overwrite the AP Password, with the current Gateway Adminpassword during the installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: With the search option you can searh for available App-platform in your network that are installed on a gateway. It is required that this gateway was in default factory setting.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A search is not possible for an App-platforms that runs on a virtual machine. This can only be accessed via its IP-address.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Connect to external App Platform.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If no apps are installed and the console displays the following error message maybe there was already an entry in the advanced user interface in (General/Devices Registration). Clear this entry and restart the Install process again.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;WebSocket connection to &#039;ws://ip.addr/domain.de/devices&#039; failed: Error during WebSocket handshake: Unexpected response code: 404&amp;lt;/code&amp;gt;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the following step &amp;quot;&#039;&#039;innovaphone PBX Options&#039;&#039;&amp;quot; you enter the configuration just as you have seen and learned during the iT Connect op iT Update training.&lt;br /&gt;
&lt;br /&gt;
Here the PBX name and Domain name (System name) should match with your configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: As user please add an additional (not existing) new user as myApps Admin. Name and mail cannot be in use already.&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the following step &amp;quot;&#039;&#039;Emergency Administrator password, please save secure&#039;&#039;&amp;quot; the passwords will NOT be created randomly as you have learned during the iT Connect Training. The existing passwords of the PBX system remain as they are.&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the following steps the configurations will be done as learned during your [[Special:Prefixindex/Course13:|iT Connect Training]].&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After finishing all the install steps, you can login into the system with the previously define myApps Admin in the myApps client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If you cant login with the myApps Admin User, go to the Advanced User Interface ([https://ip.addr/admin.xml?xsl=admin.xsl https://ip.addr/admin.xml?xsl=admin.xsl]) and assign an existing user object the Template &amp;quot;Config Admin&amp;quot;. You can then login with this user into myApps.&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the beginning , one now can change the stored special settings back to its original state if necessary for the configuration&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
To give the existing users the possibility to use the innovaphone myApps, you should inherit the existing templates to the new template &amp;quot;Config User&amp;quot;. If the user didn&#039;t have any template at all, then assign them  o the template &amp;quot;Config User&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: The Users are only seen in Users App if they have the &amp;quot;Visible&amp;quot; flag in Visibility set. This is mostly done by Config Templates. So be aware that if you have another Config Template in use (that has not set the Visibility flag) even if you inheritate it from Config User it will not overwrite the older settings. So choose here the Visibility flag afterwards.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Change template.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Assign Administrative users to the new template &amp;quot;Config Admin&amp;quot;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: In case you are using Apps that need a License the selectable box under License only appear after uploading the necessary license. In test mode everything works. So in case you are using test mode it is better to first upload your licenses, select the license boxes and than deactivate your test mode!&lt;br /&gt;
&lt;br /&gt;
== Provisioning ==&lt;br /&gt;
&lt;br /&gt;
If you want to use Provisioning and you are using Update Server/PHP Update Server 2 you have to consider that your phone needs to reach config.innovaphone.com via Update URL.&amp;lt;br&amp;gt;&lt;br /&gt;
That means that if you already provide an Update URL via DHCP that the Provisioning process will not be possible. Therefore delete the Update URL in your DHCP Server. &amp;lt;br&amp;gt;&lt;br /&gt;
In case you are using Update Server/PHP Update Server 2 for Certificates etc. your phone needs to reach your old Update Server after provisioning again. (further details will follow)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please Check: [[Reference13r1:Services/Update]]&lt;br /&gt;
&lt;br /&gt;
== Assign Hardware of a User to a phone or softwarephone App ==&lt;br /&gt;
&lt;br /&gt;
This can be done by the administrator in UsersAdmin App.&amp;lt;br&amp;gt; &lt;br /&gt;
Alternative the User can do this via his Profile. At the instruction from myApps the user can be shown on which point he can assign the app. &lt;br /&gt;
&lt;br /&gt;
[[Image:Profile PhoneApp.png]]&lt;br /&gt;
&lt;br /&gt;
== Reverse Proxy ==&lt;br /&gt;
&lt;br /&gt;
Reverse Proxy migration must be done after upgrade the (first) pbx.&lt;br /&gt;
&lt;br /&gt;
Via the advanced user interface install the latest V13r1 firmware.&lt;br /&gt;
&lt;br /&gt;
In the next step we need the Devices App URL. Via the advanced user interface, in  General/Devices Registration/Devices App URL.&lt;br /&gt;
&lt;br /&gt;
Copy this URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Device Registration2.png]]&lt;br /&gt;
&lt;br /&gt;
Paste this URL in the advanced user interface of the Reverse Proxy in the field General/Devices Registration/Devices App URL.&lt;br /&gt;
&lt;br /&gt;
From now on this device can be found in the Devices App in Devices.&lt;br /&gt;
&lt;br /&gt;
The MAC address and a wrench symbol will be displayed.&lt;br /&gt;
&lt;br /&gt;
Here you can now assign  a meaningful name and the domain to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices.png]]&lt;br /&gt;
&lt;br /&gt;
Via Categories you should assign this gateway also to the appropriate Category.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices2.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Now the device configurations are assigned to all devices and the corresponding category(s)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These include at least:  Alarmserver Global, Media Global, NTP-settings&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via the PBX Manager App and the Reverse Proxy plugin you can now configure the Reverse Proxy.&lt;br /&gt;
&lt;br /&gt;
You should add here a new Host entry for the App Platform in the Reverse Proxy via the option &amp;quot;Add Host&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The DNS name of the App Platform will be displayed in the next step. Select the DNS name and it will be added to the Reverse Proxy entries.&lt;br /&gt;
&lt;br /&gt;
Via the advanced user interface you have to change the URLs for every hostname pointing to an PBX (Slaves and Standby).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the first http forward field you need to enter the following string  /PBX0/APPCLIENT/appclient.htm and forward it  to the appropriate IP-address with the port numbers 80 and 443 and tag the checkbox Default.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At least the following entries  should be available as shown in the picture  below.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Reverse Proxy Entries.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave PBX ==&lt;br /&gt;
&lt;br /&gt;
To proceed we need to install the latest version of the V13r1 firmware on the Slave PBX.&lt;br /&gt;
&lt;br /&gt;
If the latest firmware V13r1 is installed, you can access the gateway via its IP-address and you enter into the install process. If there is no standard password you have to enter the admin credentials to login to the gateway.&lt;br /&gt;
&lt;br /&gt;
In the next step select &amp;quot;Manual Configuration&amp;quot; and you will enter the Advanced User Interface.&lt;br /&gt;
&lt;br /&gt;
In the following step we need the Device URL. You can find it on the Master PBX under General/Devices Registration/Devices App URL. Copy the complete URL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
# Via the App Manager, in Settings/General/Devices app URL , we copy the complete URL &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:App Manager.png]]&lt;br /&gt;
&lt;br /&gt;
# Via the Advanced User Interface of the PBX&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Device Registration2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste this URL via the Advanced User Interface of the Slave PBX under General/Devices Registration/Devices App URL.&lt;br /&gt;
&lt;br /&gt;
Now you can find this Gateway in the Devices App within Devices. It will be displayed with its MAC-address and a wrench symbol.&lt;br /&gt;
&lt;br /&gt;
Here you can now assign a meaningful name and the domain to the device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices.png]]&lt;br /&gt;
&lt;br /&gt;
Via Category you should assign the Gateway to the appropriate category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Now the device configurations are assigned to all devices and the corresponding category(s)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These include at least:  Alarmserver Global, Media Global, NTP-settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For provisioning new devices to the Slave PBX you need a new provisioning category and a new phone device configuration.&lt;br /&gt;
In the training books you can find how to do this for [http://wiki.innovaphone.com/index.php?title=Course13:IT_Connect_-_06_Managing_Devices#Categories categories] and [http://wiki.innovaphone.com/index.php?title=Course13:IT_Connect_-_06_Managing_Devices#Phone phone configuration]. In the device configuration you need to specify the Slave PBX as Primary Gatekeeper.&lt;br /&gt;
&lt;br /&gt;
Next Steps: &lt;br /&gt;
&lt;br /&gt;
On a Slave you should change some configuration if it needed.&lt;br /&gt;
&lt;br /&gt;
- Slave PBX registration to the Master must be done with authentication. We prefer to do this with H323/TLS as Registration protocol. &lt;br /&gt;
&lt;br /&gt;
- Slave Replication must be done with use TLS. Check if the Objects will be synchronized.&lt;br /&gt;
&lt;br /&gt;
- For the new Reporting App the Gateway/CDR0 must be adapted accordingly to receive the CDRs of the slave. You can copy the values from the Master.&lt;br /&gt;
&lt;br /&gt;
- Disable Relay CDRs under Gateway-&amp;gt;General &amp;quot;Write CDRs&amp;quot; &lt;br /&gt;
&lt;br /&gt;
- For reverse lookup you have to configure the Reverse Lookup URL and also the appropriate Prefixes under PBX/General.&lt;br /&gt;
&amp;lt;!-- how to get the password of contacts --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point no &amp;quot;Edit profile&amp;quot; menu item appears in the myApps client of a Slave PBX user. You can fix this in the [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Users#Users PBX Manager Plugin Users]. Under &amp;quot;Change configuration&amp;quot; select the Slave PBX and activate the displayed app under &amp;quot;Use as profile&amp;quot;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the Slave PBX go to Services, HTTP, Client, and add the necessary URL&#039;s for Events, Voicemail, files, backup-files.&lt;br /&gt;
&lt;br /&gt;
You can copy and paste the URL&#039;s from the Master. Be aware that you have to set the new Passwords should also be changed on the Master, instances, PBX Objects and HTTP Client!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If the redirect from the slave or standby PBX to the myApps weblauncher does not work, you have to enter the following via Command or the webbrowser:&#039;&#039;&lt;br /&gt;
 !config change HTTP0 /home PBX0/APPCLIENT/appclient.htm&lt;br /&gt;
 !config write&lt;br /&gt;
 !config activate&lt;br /&gt;
 !reboot&lt;br /&gt;
&lt;br /&gt;
== IP Phones ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to install the latest version of the V13r1 firmware on the IP Phones.&lt;br /&gt;
&lt;br /&gt;
To update the existing IP Phones to V13 there are two possibilities.&lt;br /&gt;
&lt;br /&gt;
In a large environment with a lot of IP Phones you probably already have an update server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If an update server is available,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- Change the Update Server script to update all phones with a Firmware upgrade to V13&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- If the Phones are updated to V13, execute the update script with a change to delete the Update URL and add the Devices App URL, you can have a look of the config example below&#039;&#039;&lt;br /&gt;
*This script command line will erase the update entry under [[Reference13r1:Services/Update]]&lt;br /&gt;
 config change UP1&lt;br /&gt;
 config write&lt;br /&gt;
 config activate&lt;br /&gt;
*This script command line will configure the Websocket link under [[Reference13r1:General/Devices-Registration]] to connect the phone to its respective Devices App. More about this provisioning method you can read under [[Reference13r1:Concept_Provisioning#Automatic_provisioning]].&lt;br /&gt;
Let&#039;s assume the auto provisioning URL (visible in the Devices App) looks like this:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;wss://apdnsname.com/domain.com/devices/sysclients?domain=domain.com&amp;amp;token=1j2h3j12h3&amp;amp;category=testcategory&amp;lt;/i&amp;gt;&lt;br /&gt;
 config change SYSCLIENT /sysadmin wss%3A%2F%2Fapdnsname.com%2Fdomain.com%2Fdevices%2Fsysclients%3Fdomain%3Ddomain.com%26token%3D1j2h3j12h3%26category%3Dtestcategory&lt;br /&gt;
 config write&lt;br /&gt;
 config activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no update server is available,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- Manual firmware upgrade to V13&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- Manually edit the Devices App URL under General, Devices Registration, Devices App URL&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- In Devices add the Phones to the appropriate Domain and category and give it a useful name to find a users phone via the search option in devices  (unfortunately manual one by one)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== STUN / TURN / Standby / DECT ==&lt;br /&gt;
&lt;br /&gt;
To proceed we need to install the latest version of the V13r1 firmware on the existing Gateway.&lt;br /&gt;
&lt;br /&gt;
If the latest firmware V13r1 is installed, you can access the gateway via its IP-address and you enter into the install process. If there is no standard password you have to enter the admin credentials to login to the gateway.&lt;br /&gt;
&lt;br /&gt;
In the next step select &amp;quot;Manual Configuration&amp;quot; and you will enter the Advanced User Interface.&lt;br /&gt;
&lt;br /&gt;
In the following step we need the Device URL which can be found on two different ways.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
# Via the App Manager, in Settings/General/Devices app URL , we copy the complete URL &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:App Manager.png]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Via the Advanced User Interface of the PBX&lt;br /&gt;
In General/Devices Registration/Devices App URL copy the complete URL.&lt;br /&gt;
&lt;br /&gt;
[[Image:Device Registration2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste this URL via the Advanced User Interface of the Reverse Proxy Gateway in General/Devices Registration/Devices App URL .&lt;br /&gt;
&lt;br /&gt;
Now you can find this Gateway in the Devices App within Devices. It will be displayed with its MAC-address and a wrench symbol.&lt;br /&gt;
&lt;br /&gt;
Here you can now assign  a meaningful name and the domain to the device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices.png]]&lt;br /&gt;
&lt;br /&gt;
Via Category you should assign the Gateway to the appropriate category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Now the device configurations are assigned to all devices and the corresponding category(s)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These include at least:  Alarmserver Global, Media Global, NTP-settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: For a Slave, Standby PBX or DECT you should select TLS as Replication protocol.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If the redirect from the slave or standby PBX to the myApps weblauncher does not work, you have to enter the following via Command or the webbrowser:&#039;&#039;&lt;br /&gt;
 !config change HTTP0 /home PBX0/APPCLIENT/appclient.htm&lt;br /&gt;
 !config write&lt;br /&gt;
 !config activate&lt;br /&gt;
 !reboot&lt;br /&gt;
&lt;br /&gt;
== Configuration Changes ==&lt;br /&gt;
=== SNMP disabled by default ===&lt;br /&gt;
Up and including v12r2, SNMP was by default activated on a innovaphone device. In v13 it is by default deactivated, it can be activated by a new [[Reference13r1:Services/SNMP | Enable Checkmark]]. As a result, if you upgrade to v13 firmware SNMP is deactivated and needs to be enabled if SNMP is needed in the customer setup.&lt;br /&gt;
&lt;br /&gt;
===Config line size was increased to 32KB===&lt;br /&gt;
&lt;br /&gt;
Downgrade from 13r1 to 12r2 (or older firmware) will result in objects with a too large [[Howto:Config_size_Limitations#Global | config line]] being dropped.&lt;br /&gt;
&lt;br /&gt;
===New visibility option &amp;quot;Visible&amp;quot;===&lt;br /&gt;
[[Reference13r1:PBX/Objects/Visibility | Visible]] allow the PBX users to be listed in the users App. Attention : If a visibility is configured at the PBX user object, Visible option is not set with the install automatically and must be set manually.&lt;br /&gt;
&lt;br /&gt;
===New &amp;quot;App&amp;quot; field in object Devices property===&lt;br /&gt;
The App field allows you to configure either &amp;quot;phone&amp;quot; or &amp;quot;softphone&amp;quot; in order to get the respective app in user&#039;s myApps. &lt;br /&gt;
&lt;br /&gt;
Note: If there are Devices already present (hardware ID), the App field is not set automatically by the install and must be set manually. &lt;br /&gt;
&lt;br /&gt;
Furthermore, the Name field should also be filled out with the name of your myApps softphone App or phone App. &lt;br /&gt;
&lt;br /&gt;
Example : &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Hardware Id&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;App&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;009033000000&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;myDeskphoneName&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;phone&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;exampleSoft&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;mySoftphoneName&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;softphone&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more details of the Devices properties, refer to [[Reference13r1:PBX/Objects#Devices_Input_Fields|the corresponding article]].&lt;br /&gt;
&lt;br /&gt;
=== DHCP1 Mode switch to client ===&lt;br /&gt;
&lt;br /&gt;
During the install process, the DHCP1 mode of the Gateway will be switched to client mode by the install script.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* For the known issues, please have a look into our [[Reference13r1:Release_Notes_Firmware]]&lt;br /&gt;
** The Headline &#039;&#039;&#039;13r1 Release Notes&#039;&#039;&#039; will list the known issues.&lt;br /&gt;
* install did not finish if you have configured ETH0 as DHCP Server and ETH1 DHCP Client (connected to corporate network, internet access). You have to Swap the ETH interfaces before you start the install.&lt;br /&gt;
&lt;br /&gt;
===Default Admin account===&lt;br /&gt;
There where issues reported when the admin account used during the install was not the username admin. &lt;br /&gt;
&lt;br /&gt;
Please make sure that your default system admin account does have the name admin and do not use a custom defined name!&lt;br /&gt;
If you want to have a custom admin account with a different username, please add it as a separate account under, General, Admin, Additional Administrator Accounts.&lt;br /&gt;
Before starting the install use this admin account to successfully log in to the system.&lt;br /&gt;
The install will use this account during the instal process to install all PBX objects and to install the Application Platform.&lt;br /&gt;
&lt;br /&gt;
===LDAP Directory Service on IP Phones via Reverse Proxy===&lt;br /&gt;
Currently by default IP phones registered via Reverse Proxy are NOT able to search in the PBX users and in the external LDAP resource (for example the Contacts database) To enable the LDAP search on the Phones we have to do some manual modification.&lt;br /&gt;
&lt;br /&gt;
For more details: [http://wiki.innovaphone.com/index.php?title=Howto:V13_LDAP_IP_Phones_Directory_Services_via_Reverse_Proxy&amp;amp;action=submit: Howto V13 LDAP IP Phones Directory Services via Reverse Proxy]&lt;br /&gt;
&lt;br /&gt;
===PBX Replication===&lt;br /&gt;
The PBX LDAP Replication won‘t work if Master and Slave have different major Versions (V13/V12).  The reason is that the binding user is different in V13 and V12. The binding user in V12 is called &#039;&#039;_PBX_&#039;&#039;. In V13 the binding user is called &#039;&#039;[domain]\_PBX_&#039;&#039;. You should either use the same major Version or use the LDAP replicator at [[Reference9:Services/LDAP/Replicator|Services-&amp;gt;LDAP-&amp;gt;Replicator]].&lt;br /&gt;
&lt;br /&gt;
===Fax App===&lt;br /&gt;
The Fax App currently supports only dial plan having all objects in the root node. For details see [[Reference13r1:Concept_App_Fax#Known_issues | Concept App Fax: Known issues]].&lt;br /&gt;
&lt;br /&gt;
===Install No-DNS mode in V13r1 sr7===&lt;br /&gt;
The install process in No-DNS mode stops when installing events.&lt;br /&gt;
This can be avoided by entering the DNS name in the hosts file of the PC you are installing with. The hosts file can only be edited with admin rights and is located in the folder:&lt;br /&gt;
&amp;lt;code&amp;gt; C:\Windows\System32\drivers\etc\hosts &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will be fixed in V13r1 sr8.&lt;br /&gt;
&lt;br /&gt;
===LDAP Server===&lt;br /&gt;
The Upgrade Install will overwrite any existing LDAP Server(Services-&amp;gt;LDAP-&amp;gt;server) account. If you have a special account (e.g DECT-Replication), it must be reconfigured afterwards.&lt;br /&gt;
&lt;br /&gt;
===Soap===&lt;br /&gt;
In v12 the PBX returned for a [[Reference10:Concept_SOAP_API#string_LocationUrl.28string_v501.2C_string_v700.2C_string_v800.2C_string_vx1000.2C_string_location.2C_bool_tls.29|LocationUrl - query]] a URL using an IP-address as host, in V13 a DNS-name is used instead. As a result, the DNS-Server used by the Soap-Client needs to return the expected IP-addresses.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
*[[Howto:Guideline V5 to V6 upgrade]]&lt;br /&gt;
*[[Howto:Upgrade Issues V5 to V6]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V6 V7]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V7 V8]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V8 V9]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V9 V10]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V10 V11r1]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V11r1 V11r2]]&lt;br /&gt;
*[[Support:Special_Precaution_required_when_upgrading_IPxx11_Gateways_from_pre-SR14_Firmware_Versions]]&lt;br /&gt;
* [[Howto:Firmware Upgrade V11r2 V12r1]]&lt;br /&gt;
* [[Howto:Firmware Upgrade V12r1 V12r2]]&lt;br /&gt;
* [[Reference13r1:Concept_Number_Resolution_and_LDAP]]&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Services_Files&amp;diff=57381</id>
		<title>Reference13r1:Concept App Services Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Services_Files&amp;diff=57381"/>
		<updated>2020-10-22T08:57:20Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The App Services Files is an App Service which can be installed on an innovaphone App Platform. It is used to store own files. It provides these files for other apps via an API.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
Database for own files (for example Announcements, Pictures and so on)&lt;br /&gt;
&lt;br /&gt;
* Upload via Drag and Drop (~100 MB) due to implementation&lt;br /&gt;
* Move, Delete, Download of files, Share of folders&lt;br /&gt;
* API for other apps&lt;br /&gt;
&lt;br /&gt;
Files can be shared via WebDAV. For this you have to select &amp;quot;Share with user and password&amp;quot; for the folder you want to share. The URL for this share is &#039;&#039;https://app.company.tld/company.tld/files/root/&#039;&#039; (regarding to your AppPlatform URL).&lt;br /&gt;
If you want to share the folder &amp;quot;announcements&amp;quot; for excample, your share URL is &#039;&#039;https://app.company.tld/company.tld/files/root/announcements/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
innovaphone PBX and App Platform from on version 13r1&lt;br /&gt;
&lt;br /&gt;
== Technical Overview ==&lt;br /&gt;
[[Image:concept_files.png]]&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
=App Services=&lt;br /&gt;
&lt;br /&gt;
== innovaphone-files ==&lt;br /&gt;
Main app to manage the files and folders.&lt;br /&gt;
&lt;br /&gt;
Parameters: &lt;br /&gt;
&lt;br /&gt;
;Websocket: to get the URL of the Devices App itself which is used for provisioning&lt;br /&gt;
&lt;br /&gt;
== innovaphone-files-api ==&lt;br /&gt;
API to get announcements from files app.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Hidden: FilesApi must be a hidden App&lt;br /&gt;
;Websocket: to ??? &#039;&#039;TBD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
&amp;lt;!-- =Known Problems=== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
&amp;lt;!--optional bullet list, remove section if not needed--&amp;gt;&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference9:Phone/User/Function-Keys/Partner&amp;diff=57071</id>
		<title>Reference9:Phone/User/Function-Keys/Partner</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference9:Phone/User/Function-Keys/Partner&amp;diff=57071"/>
		<updated>2020-08-28T08:40:44Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Partner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Partner ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Idle State &#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
The Partner has three states.  &lt;br /&gt;
* &#039;&#039;&#039;Idle&#039;&#039;&#039;: the partner&#039;s phone has no calls. The key initiates a call to the partner&lt;br /&gt;
* &#039;&#039;&#039;Alerting&#039;&#039;&#039;: the partner&#039;s phone has an alerting call. The key initiates a call of the alerting call&lt;br /&gt;
* &#039;&#039;&#039;Busy&#039;&#039;&#039;: the partner&#039;s phone has an active call. The key does not perform any action &lt;br /&gt;
Only the text and icon shown for the &#039;&#039;Idle State&#039;&#039; can be defined.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Partner identification&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Defines the partner the state of which is monitored by the key. It is recommended to use either &#039;&#039;Number&#039;&#039; or &#039;&#039;Name&#039;&#039;, not both.  If you defined both, the &#039;&#039;Number&#039;&#039; takes precedence. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partner Type&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation type of the key:&lt;br /&gt;
* &#039;&#039;Default&#039;&#039; - normal partner key&lt;br /&gt;
* &#039;&#039;Executive&#039;&#039; - Enables special executive/secretary functionality. It is used on a secretary&#039;s phone to use the CLIP (extension) of the partners &#039;&#039;Executive&#039;&#039; object to execute calls&lt;br /&gt;
* &#039;&#039;Secretary&#039;&#039; - Enables special executive/secretary functionality. It is used on an executive&#039;s phone to display &#039;&#039;Call Forward&#039;&#039; and primary or secondary secretary join/leave group state. This feature uses &#039;&#039;Subscribe for Presence&#039;&#039; functionality (hence &#039;&#039;Subscribe for Presence&#039;&#039; must be enabled). Also you must set the &#039;&#039;Name&#039;&#039; (and not the &#039;&#039;Number&#039;&#039;) in the &#039;&#039;Partner identification&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Perform intrusion if partner is busy&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
When calling the partner with the key and if the partner already has an active call, a call intrusion is performed. There are two &#039;&#039;Type&#039;&#039;s available: &#039;&#039;Conference&#039;&#039; and &#039;&#039;silent monitoring&#039;&#039;. The partner has to grant the visibility right &#039;&#039;calls&#039;&#039; to the user which uses this partner key.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Subscribe for Presence&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
If checked, the key will subscribe for the partner&#039;s presence state.  The presence information will be shown. This is required for a &#039;&#039;Secretary&#039;&#039; partner type (see above). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Subscribe for Dialog Info&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
If checked, the key will subscribe for the partner&#039;s call state information.  No &#039;&#039;group indications&#039;&#039; are required nor evaluated then. Otherwise, the partner key requires receipt of [[Reference9:PBX/Objects#Object_Properties | &#039;&#039;group indications&#039;&#039; ]] from the partner to work. &#039;&#039;Executive&#039;&#039;/&#039;&#039;Secretary&#039;&#039; types do require &#039;&#039;group indications&#039;&#039;, so &#039;&#039;Subscribe for Dialog Info&#039;&#039; is available for &#039;&#039;Default&#039;&#039; types. &lt;br /&gt;
&lt;br /&gt;
Please note that dialog info subscriptions will work across PBXs, whereas group indications don&#039;t.   Dialog info subscriptions are subject to standard [[ {{NAMESPACE}}:PBX/Objects/Edit Allow | access rights ]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hide calling party in alerting state&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default the calling party info is shown in the key label area when a call is ringing at the partners phone. This may be suppressed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hide calling party in ringback state&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default a call picked up from the partners phone by pressing this key is indicated as a normal inbound call and the calling party info is shown. This may be suppressed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Show connected party in busy state&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default the party info of the party the partner is currently speaking to is not shown. This may be changed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not pick up an alerting Call&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default a call ringing at the partners phone is picked up when this key is pressed. This may be suppressed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Audible Signal after alerting [sec]&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Notify pending call at own extension for partner after [sec]. By default disabled.&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference9:Phone/User/Function-Keys/Partner&amp;diff=57070</id>
		<title>Reference9:Phone/User/Function-Keys/Partner</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference9:Phone/User/Function-Keys/Partner&amp;diff=57070"/>
		<updated>2020-08-28T08:39:53Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Partner */ Call intrusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Partner ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Idle State &#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
The Partner has three states.  &lt;br /&gt;
* &#039;&#039;&#039;Idle&#039;&#039;&#039;: the partner&#039;s phone has no calls. The key initiates a call to the partner&lt;br /&gt;
* &#039;&#039;&#039;Alerting&#039;&#039;&#039;: the partner&#039;s phone has an alerting call. The key initiates a call of the alerting call&lt;br /&gt;
* &#039;&#039;&#039;Busy&#039;&#039;&#039;: the partner&#039;s phone has an active call. The key does not perform any action &lt;br /&gt;
Only the text and icon shown for the &#039;&#039;Idle State&#039;&#039; can be defined.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Partner identification&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Defines the partner the state of which is monitored by the key. It is recommended to use either &#039;&#039;Number&#039;&#039; or &#039;&#039;Name&#039;&#039;, not both.  If you defined both, the &#039;&#039;Number&#039;&#039; takes precedence. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Partner Type&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation type of the key:&lt;br /&gt;
* &#039;&#039;Default&#039;&#039; - normal partner key&lt;br /&gt;
* &#039;&#039;Executive&#039;&#039; - Enables special executive/secretary functionality. It is used on a secretary&#039;s phone to use the CLIP (extension) of the partners &#039;&#039;Executive&#039;&#039; object to execute calls&lt;br /&gt;
* &#039;&#039;Secretary&#039;&#039; - Enables special executive/secretary functionality. It is used on an executive&#039;s phone to display &#039;&#039;Call Forward&#039;&#039; and primary or secondary secretary join/leave group state. This feature uses &#039;&#039;Subscribe for Presence&#039;&#039; functionality (hence &#039;&#039;Subscribe for Presence&#039;&#039; must be enabled). Also you must set the &#039;&#039;Name&#039;&#039; (and not the &#039;&#039;Number&#039;&#039;) in the &#039;&#039;Partner identification&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Perform intrusion if partner is busy&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
When calling the partner with the key and if the partner already has an active call, a call intrusion is performed. There are two &#039;&#039;Type&#039;&#039;s available: &#039;&#039;Conference&#039;&#039; and &#039;&#039;silent monitoring&#039;&#039;. The partner has to grant the visibility right &#039;calls&#039; to the user which uses this partner key.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Subscribe for Presence&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
If checked, the key will subscribe for the partner&#039;s presence state.  The presence information will be shown. This is required for a &#039;&#039;Secretary&#039;&#039; partner type (see above). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Subscribe for Dialog Info&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
If checked, the key will subscribe for the partner&#039;s call state information.  No &#039;&#039;group indications&#039;&#039; are required nor evaluated then. Otherwise, the partner key requires receipt of [[Reference9:PBX/Objects#Object_Properties | &#039;&#039;group indications&#039;&#039; ]] from the partner to work. &#039;&#039;Executive&#039;&#039;/&#039;&#039;Secretary&#039;&#039; types do require &#039;&#039;group indications&#039;&#039;, so &#039;&#039;Subscribe for Dialog Info&#039;&#039; is available for &#039;&#039;Default&#039;&#039; types. &lt;br /&gt;
&lt;br /&gt;
Please note that dialog info subscriptions will work across PBXs, whereas group indications don&#039;t.   Dialog info subscriptions are subject to standard [[ {{NAMESPACE}}:PBX/Objects/Edit Allow | access rights ]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hide calling party in alerting state&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default the calling party info is shown in the key label area when a call is ringing at the partners phone. This may be suppressed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hide calling party in ringback state&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default a call picked up from the partners phone by pressing this key is indicated as a normal inbound call and the calling party info is shown. This may be suppressed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Show connected party in busy state&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default the party info of the party the partner is currently speaking to is not shown. This may be changed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not pick up an alerting Call&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default a call ringing at the partners phone is picked up when this key is pressed. This may be suppressed by this check-mark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Audible Signal after alerting [sec]&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Notify pending call at own extension for partner after [sec]. By default disabled.&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Reports&amp;diff=56353</id>
		<title>Reference13r1:Concept App Service Reports</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Reports&amp;diff=56353"/>
		<updated>2020-05-27T10:00:51Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Database access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
&lt;br /&gt;
The App Service Reporting is an App Service which can be installed on an innovaphone App Platform. It is used to provide call lists in myApps or myPBX and to create call reports.&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r1&lt;br /&gt;
&lt;br /&gt;
== Technical Overview ==&lt;br /&gt;
[[Image:Concept_reporting.png]]&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-reporting ===&lt;br /&gt;
This is the Reporting UI App.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-calllist ===&lt;br /&gt;
This is the Call list App.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Websocket: &lt;br /&gt;
&lt;br /&gt;
=== innovaphone-calllist-api ===&lt;br /&gt;
This is an App, which provides the Call list API (com.innovaphone.calllist). This API can be used to find the recent calls of a user.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Websocket: &lt;br /&gt;
&lt;br /&gt;
=== mypbx ===&lt;br /&gt;
This is the interface for the support of the old myPBX client.&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
&lt;br /&gt;
With the Reporting plugin App objects can be created, edited and deleted for the provided Apps.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Configuration====&lt;br /&gt;
There is also a configuration to enable compatibility for myPBX call lists in the &#039;&#039;AP-Reporting&#039;&#039; Plugin in the PBXManager. You have also to configure the new created account in the [[Reference13r1:PBX/Config/myPBX | MyPBX]] configuration.&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
===Database Structure===&lt;br /&gt;
&lt;br /&gt;
====cdrs====&lt;br /&gt;
Each received cdr-xml is formed by a cdr tag and an undefined number of event and group tags.&lt;br /&gt;
(Refer to: [[Reference13r1:Concept_Call_Detail_Record_CDR_PBX|CDR]])&lt;br /&gt;
&lt;br /&gt;
This section is composed by four tables: cdrs, events, groups and cdr_properties.&lt;br /&gt;
The first three tables contain the corresponding fields to store the information contained in the cdr, event and group tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Each CDR represents the call in the view of one PBX object. So there might be multiple CDRs for one call if multiple PBX objects are used within the call.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;cdr fields:&#039;&#039;&#039; id, guid, user_guid, conf, sys, pbx, node, phys, device, h323, e164, cn, dn, email, dir, external, licensed, more_calls, conn_duration, alert_duration, call_duration, billing_duration, utc_stamp, cause, remote_e164, remote_h323, remote_dn, call_list, missed_call, status, further, user_id, callback_e164, callback_h323, callback_dn, callback_time, remote_clir&lt;br /&gt;
* &#039;&#039;&#039;event fields:&#039;&#039;&#039; id, cdr_id, msg, ext, e164, h323, dn, conf, cause, time, clir&lt;br /&gt;
* &#039;&#039;&#039;group fields:&#039;&#039;&#039; id, name, active, type, cdr_id.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039; field is assigned by postgresql for each entry and has nothing to do with the information present in the cdr. It is different for each entry inside the table.&lt;br /&gt;
&lt;br /&gt;
The events table has two additional fields, called cdr_id, to associate these events to the corresponding cdr entry and order_index to keep their position inside the cdr.&lt;br /&gt;
Groups table has also the cdr_id field to associate the group entries to the corresponding cdr and events entries.&lt;br /&gt;
&lt;br /&gt;
 The table cdrp_properties from version 10 has been removed. Most columns can be now found directly in the table cdrs.&lt;br /&gt;
 If you need the callflow in a similar way, you can JOIN the events table (GROUP BY cdr_id) and run a query which creates an array string from the events table:&lt;br /&gt;
 &lt;br /&gt;
 array_agg(array[ev.msg, COALESCE(ev.e164,&#039;&#039;), COALESCE(ev.h323,&#039;&#039;), COALESCE(ev.dn,&#039;&#039;)] ORDER BY ev.id) AS callflow&lt;br /&gt;
&lt;br /&gt;
====cdr_users====&lt;br /&gt;
&lt;br /&gt;
This table contains a timestamp &#039;&#039;&#039;missed_calls_time&#039;&#039;&#039; for the last call list access by a user &#039;&#039;&#039;sip&#039;&#039;&#039;. It is used to retrieve information about missed calls since the last use of mypbx/myApps.&amp;lt;br&amp;gt;&lt;br /&gt;
The timestamp &#039;&#039;&#039;clear_report_time&#039;&#039;&#039; indicates the last clearance time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Database access ===&lt;br /&gt;
&lt;br /&gt;
You have to manually grant access to the reporting database, e.g. for specific IP addresses, inside the file &#039;&#039;&#039;/mnt/sda2/pgsql/pg_hba.conf&#039;&#039;&#039;, as the default configuration doesn&#039;t allow access from external.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find the documentation for this file here: https://www.postgresql.org/docs/11/auth-pg-hba-conf.html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The user admin is not allowed to access pg_hba.conf. You have to use the root user. Access with the root user is described [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#Default_credentials here].&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After editing pg_hba.conf, the database-service has to be restarted with this command:&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/S50postgresql restart &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The database user and password can be configured for every Reporting instance inside the AP Manager if you edit the instance.&amp;lt;br&amp;gt;&lt;br /&gt;
These database credentials are just used internally and not e.g. inside the PBX App Objects.&lt;br /&gt;
&lt;br /&gt;
==== Write an own app ====&lt;br /&gt;
&lt;br /&gt;
Currently there can be two ways for an own App:&lt;br /&gt;
&lt;br /&gt;
* You receive the CDRs from the CDR interfaces yourself and store them into your own database with your own structure.&lt;br /&gt;
* You hand the Reporting database credentials to your own App and connect directly to the Reporting database within your own App. This saves you the parsing and storing of the data, but you must maintain your queries if something in the Reporting database is changed. It is important, that you should just access this data &#039;&#039;&#039;readonly&#039;&#039;&#039; and that you do &#039;&#039;&#039;not modify&#039;&#039;&#039; table data!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for automatic download of existing CSV files:&lt;br /&gt;
&lt;br /&gt;
#establish a web socket connection for reporting using [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_Talking_to_the_v13_Application_Platform_using_PHP PHP-access]&lt;br /&gt;
#request the session key with { &amp;quot;mt&amp;quot;: &amp;quot;Start&amp;quot; }&lt;br /&gt;
#receive the session key which e.g. looks like {&amp;quot;mt&amp;quot;: &amp;quot;StartResult&amp;quot;, &amp;quot;session&amp;quot;: &amp;quot;189&amp;quot;, &amp;quot;key&amp;quot;: &amp;quot;552ca6fe05a19&amp;quot;}&lt;br /&gt;
#while the web socket connection is established, a GET request using received data can be sent like this:&lt;br /&gt;
#*&amp;lt;nowiki&amp;gt;http://AP-IP/DOMAIN/reporting/reports/report-20200408-1015.csv?session=189&amp;amp;key=552ca6fe05a19&amp;amp;lang=de&amp;amp;tz=Europe/Berlin&amp;amp;type=csv&amp;amp;sip=&amp;amp;from=1586304000000&amp;amp;to=1586333749607&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Reports&amp;diff=56352</id>
		<title>Reference13r1:Concept App Service Reports</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Reports&amp;diff=56352"/>
		<updated>2020-05-27T09:59:18Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Database access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
&lt;br /&gt;
The App Service Reporting is an App Service which can be installed on an innovaphone App Platform. It is used to provide call lists in myApps or myPBX and to create call reports.&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r1&lt;br /&gt;
&lt;br /&gt;
== Technical Overview ==&lt;br /&gt;
[[Image:Concept_reporting.png]]&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-reporting ===&lt;br /&gt;
This is the Reporting UI App.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-calllist ===&lt;br /&gt;
This is the Call list App.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Websocket: &lt;br /&gt;
&lt;br /&gt;
=== innovaphone-calllist-api ===&lt;br /&gt;
This is an App, which provides the Call list API (com.innovaphone.calllist). This API can be used to find the recent calls of a user.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Websocket: &lt;br /&gt;
&lt;br /&gt;
=== mypbx ===&lt;br /&gt;
This is the interface for the support of the old myPBX client.&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
&lt;br /&gt;
With the Reporting plugin App objects can be created, edited and deleted for the provided Apps.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Configuration====&lt;br /&gt;
There is also a configuration to enable compatibility for myPBX call lists in the &#039;&#039;AP-Reporting&#039;&#039; Plugin in the PBXManager. You have also to configure the new created account in the [[Reference13r1:PBX/Config/myPBX | MyPBX]] configuration.&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
===Database Structure===&lt;br /&gt;
&lt;br /&gt;
====cdrs====&lt;br /&gt;
Each received cdr-xml is formed by a cdr tag and an undefined number of event and group tags.&lt;br /&gt;
(Refer to: [[Reference13r1:Concept_Call_Detail_Record_CDR_PBX|CDR]])&lt;br /&gt;
&lt;br /&gt;
This section is composed by four tables: cdrs, events, groups and cdr_properties.&lt;br /&gt;
The first three tables contain the corresponding fields to store the information contained in the cdr, event and group tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Each CDR represents the call in the view of one PBX object. So there might be multiple CDRs for one call if multiple PBX objects are used within the call.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;cdr fields:&#039;&#039;&#039; id, guid, user_guid, conf, sys, pbx, node, phys, device, h323, e164, cn, dn, email, dir, external, licensed, more_calls, conn_duration, alert_duration, call_duration, billing_duration, utc_stamp, cause, remote_e164, remote_h323, remote_dn, call_list, missed_call, status, further, user_id, callback_e164, callback_h323, callback_dn, callback_time, remote_clir&lt;br /&gt;
* &#039;&#039;&#039;event fields:&#039;&#039;&#039; id, cdr_id, msg, ext, e164, h323, dn, conf, cause, time, clir&lt;br /&gt;
* &#039;&#039;&#039;group fields:&#039;&#039;&#039; id, name, active, type, cdr_id.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039; field is assigned by postgresql for each entry and has nothing to do with the information present in the cdr. It is different for each entry inside the table.&lt;br /&gt;
&lt;br /&gt;
The events table has two additional fields, called cdr_id, to associate these events to the corresponding cdr entry and order_index to keep their position inside the cdr.&lt;br /&gt;
Groups table has also the cdr_id field to associate the group entries to the corresponding cdr and events entries.&lt;br /&gt;
&lt;br /&gt;
 The table cdrp_properties from version 10 has been removed. Most columns can be now found directly in the table cdrs.&lt;br /&gt;
 If you need the callflow in a similar way, you can JOIN the events table (GROUP BY cdr_id) and run a query which creates an array string from the events table:&lt;br /&gt;
 &lt;br /&gt;
 array_agg(array[ev.msg, COALESCE(ev.e164,&#039;&#039;), COALESCE(ev.h323,&#039;&#039;), COALESCE(ev.dn,&#039;&#039;)] ORDER BY ev.id) AS callflow&lt;br /&gt;
&lt;br /&gt;
====cdr_users====&lt;br /&gt;
&lt;br /&gt;
This table contains a timestamp &#039;&#039;&#039;missed_calls_time&#039;&#039;&#039; for the last call list access by a user &#039;&#039;&#039;sip&#039;&#039;&#039;. It is used to retrieve information about missed calls since the last use of mypbx/myApps.&amp;lt;br&amp;gt;&lt;br /&gt;
The timestamp &#039;&#039;&#039;clear_report_time&#039;&#039;&#039; indicates the last clearance time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Database access ===&lt;br /&gt;
&lt;br /&gt;
You have to manually grant access to the reporting database, e.g. for specific IP addresses, inside the file &#039;&#039;&#039;/mnt/sda2/pgsql/pg_hba.conf&#039;&#039;&#039;, as the default configuration doesn&#039;t allow access from external.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find the documentation for this file here: https://www.postgresql.org/docs/11/auth-pg-hba-conf.html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The user admin is not allowed to accesss pg_hba.conf. You have to use the root user. Access with the root user is described [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#Default_credentials here].&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After editing pg_hba.conf, the database-service has to be restarted with this command:&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/S50postgresql restart &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The database user and password can be configured for every Reporting instance inside the AP Manager if you edit the instance.&amp;lt;br&amp;gt;&lt;br /&gt;
These database credentials are just used internally and not e.g. inside the PBX App Objects.&lt;br /&gt;
&lt;br /&gt;
==== Write an own app ====&lt;br /&gt;
&lt;br /&gt;
Currently there can be two ways for an own App:&lt;br /&gt;
&lt;br /&gt;
* You receive the CDRs from the CDR interfaces yourself and store them into your own database with your own structure.&lt;br /&gt;
* You hand the Reporting database credentials to your own App and connect directly to the Reporting database within your own App. This saves you the parsing and storing of the data, but you must maintain your queries if something in the Reporting database is changed. It is important, that you should just access this data &#039;&#039;&#039;readonly&#039;&#039;&#039; and that you do &#039;&#039;&#039;not modify&#039;&#039;&#039; table data!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for automatic download of existing CSV files:&lt;br /&gt;
&lt;br /&gt;
#establish a web socket connection for reporting using [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_Talking_to_the_v13_Application_Platform_using_PHP PHP-access]&lt;br /&gt;
#request the session key with { &amp;quot;mt&amp;quot;: &amp;quot;Start&amp;quot; }&lt;br /&gt;
#receive the session key which e.g. looks like {&amp;quot;mt&amp;quot;: &amp;quot;StartResult&amp;quot;, &amp;quot;session&amp;quot;: &amp;quot;189&amp;quot;, &amp;quot;key&amp;quot;: &amp;quot;552ca6fe05a19&amp;quot;}&lt;br /&gt;
#while the web socket connection is established, a GET request using received data can be sent like this:&lt;br /&gt;
#*&amp;lt;nowiki&amp;gt;http://AP-IP/DOMAIN/reporting/reports/report-20200408-1015.csv?session=189&amp;amp;key=552ca6fe05a19&amp;amp;lang=de&amp;amp;tz=Europe/Berlin&amp;amp;type=csv&amp;amp;sip=&amp;amp;from=1586304000000&amp;amp;to=1586333749607&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Reports&amp;diff=56351</id>
		<title>Reference13r1:Concept App Service Reports</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Reports&amp;diff=56351"/>
		<updated>2020-05-27T09:57:35Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Database access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Apps]]&lt;br /&gt;
&lt;br /&gt;
The App Service Reporting is an App Service which can be installed on an innovaphone App Platform. It is used to provide call lists in myApps or myPBX and to create call reports.&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
&lt;br /&gt;
* innovaphone PBX from version 13r1&lt;br /&gt;
&lt;br /&gt;
== Technical Overview ==&lt;br /&gt;
[[Image:Concept_reporting.png]]&lt;br /&gt;
&lt;br /&gt;
== Apps ==&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-reporting ===&lt;br /&gt;
This is the Reporting UI App.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone-calllist ===&lt;br /&gt;
This is the Call list App.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Websocket: &lt;br /&gt;
&lt;br /&gt;
=== innovaphone-calllist-api ===&lt;br /&gt;
This is an App, which provides the Call list API (com.innovaphone.calllist). This API can be used to find the recent calls of a user.&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
;Websocket: &lt;br /&gt;
&lt;br /&gt;
=== mypbx ===&lt;br /&gt;
This is the interface for the support of the old myPBX client.&lt;br /&gt;
&lt;br /&gt;
== PBX Manager Plugins ==&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
&lt;br /&gt;
With the Reporting plugin App objects can be created, edited and deleted for the provided Apps.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
====Configuration====&lt;br /&gt;
There is also a configuration to enable compatibility for myPBX call lists in the &#039;&#039;AP-Reporting&#039;&#039; Plugin in the PBXManager. You have also to configure the new created account in the [[Reference13r1:PBX/Config/myPBX | MyPBX]] configuration.&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
===Database Structure===&lt;br /&gt;
&lt;br /&gt;
====cdrs====&lt;br /&gt;
Each received cdr-xml is formed by a cdr tag and an undefined number of event and group tags.&lt;br /&gt;
(Refer to: [[Reference13r1:Concept_Call_Detail_Record_CDR_PBX|CDR]])&lt;br /&gt;
&lt;br /&gt;
This section is composed by four tables: cdrs, events, groups and cdr_properties.&lt;br /&gt;
The first three tables contain the corresponding fields to store the information contained in the cdr, event and group tags.&amp;lt;br&amp;gt;&lt;br /&gt;
Each CDR represents the call in the view of one PBX object. So there might be multiple CDRs for one call if multiple PBX objects are used within the call.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;cdr fields:&#039;&#039;&#039; id, guid, user_guid, conf, sys, pbx, node, phys, device, h323, e164, cn, dn, email, dir, external, licensed, more_calls, conn_duration, alert_duration, call_duration, billing_duration, utc_stamp, cause, remote_e164, remote_h323, remote_dn, call_list, missed_call, status, further, user_id, callback_e164, callback_h323, callback_dn, callback_time, remote_clir&lt;br /&gt;
* &#039;&#039;&#039;event fields:&#039;&#039;&#039; id, cdr_id, msg, ext, e164, h323, dn, conf, cause, time, clir&lt;br /&gt;
* &#039;&#039;&#039;group fields:&#039;&#039;&#039; id, name, active, type, cdr_id.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;id&#039;&#039;&#039; field is assigned by postgresql for each entry and has nothing to do with the information present in the cdr. It is different for each entry inside the table.&lt;br /&gt;
&lt;br /&gt;
The events table has two additional fields, called cdr_id, to associate these events to the corresponding cdr entry and order_index to keep their position inside the cdr.&lt;br /&gt;
Groups table has also the cdr_id field to associate the group entries to the corresponding cdr and events entries.&lt;br /&gt;
&lt;br /&gt;
 The table cdrp_properties from version 10 has been removed. Most columns can be now found directly in the table cdrs.&lt;br /&gt;
 If you need the callflow in a similar way, you can JOIN the events table (GROUP BY cdr_id) and run a query which creates an array string from the events table:&lt;br /&gt;
 &lt;br /&gt;
 array_agg(array[ev.msg, COALESCE(ev.e164,&#039;&#039;), COALESCE(ev.h323,&#039;&#039;), COALESCE(ev.dn,&#039;&#039;)] ORDER BY ev.id) AS callflow&lt;br /&gt;
&lt;br /&gt;
====cdr_users====&lt;br /&gt;
&lt;br /&gt;
This table contains a timestamp &#039;&#039;&#039;missed_calls_time&#039;&#039;&#039; for the last call list access by a user &#039;&#039;&#039;sip&#039;&#039;&#039;. It is used to retrieve information about missed calls since the last use of mypbx/myApps.&amp;lt;br&amp;gt;&lt;br /&gt;
The timestamp &#039;&#039;&#039;clear_report_time&#039;&#039;&#039; indicates the last clearance time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Database access ===&lt;br /&gt;
&lt;br /&gt;
You have to manually grant access to the reporting database, e.g. for specific IP addresses, inside the file &#039;&#039;&#039;/mnt/sda2/pgsql/pg_hba.conf&#039;&#039;&#039;, as the default configuration doesn&#039;t allow access from external.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find the documentation for this file here: https://www.postgresql.org/docs/11/auth-pg-hba-conf.html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The user admin is not allowed to accesss pg_hba.conf. You have to use the root user. Access with the root user is described here:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#Default_credentials]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After editing pg_hba.conf, the database-service has to be restarted with this command:&amp;lt;br&amp;gt;&lt;br /&gt;
/etc/init.d/S50postgresql restart &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The database user and password can be configured for every Reporting instance inside the AP Manager if you edit the instance.&amp;lt;br&amp;gt;&lt;br /&gt;
These database credentials are just used internally and not e.g. inside the PBX App Objects.&lt;br /&gt;
&lt;br /&gt;
==== Write an own app ====&lt;br /&gt;
&lt;br /&gt;
Currently there can be two ways for an own App:&lt;br /&gt;
&lt;br /&gt;
* You receive the CDRs from the CDR interfaces yourself and store them into your own database with your own structure.&lt;br /&gt;
* You hand the Reporting database credentials to your own App and connect directly to the Reporting database within your own App. This saves you the parsing and storing of the data, but you must maintain your queries if something in the Reporting database is changed. It is important, that you should just access this data &#039;&#039;&#039;readonly&#039;&#039;&#039; and that you do &#039;&#039;&#039;not modify&#039;&#039;&#039; table data!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for automatic download of existing CSV files:&lt;br /&gt;
&lt;br /&gt;
#establish a web socket connection for reporting using [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_Talking_to_the_v13_Application_Platform_using_PHP PHP-access]&lt;br /&gt;
#request the session key with { &amp;quot;mt&amp;quot;: &amp;quot;Start&amp;quot; }&lt;br /&gt;
#receive the session key which e.g. looks like {&amp;quot;mt&amp;quot;: &amp;quot;StartResult&amp;quot;, &amp;quot;session&amp;quot;: &amp;quot;189&amp;quot;, &amp;quot;key&amp;quot;: &amp;quot;552ca6fe05a19&amp;quot;}&lt;br /&gt;
#while the web socket connection is established, a GET request using received data can be sent like this:&lt;br /&gt;
#*&amp;lt;nowiki&amp;gt;http://AP-IP/DOMAIN/reporting/reports/report-20200408-1015.csv?session=189&amp;amp;key=552ca6fe05a19&amp;amp;lang=de&amp;amp;tz=Europe/Berlin&amp;amp;type=csv&amp;amp;sip=&amp;amp;from=1586304000000&amp;amp;to=1586333749607&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r1:Firmware_Upgrade_V12r2_V13r1&amp;diff=54699</id>
		<title>Howto13r1:Firmware Upgrade V12r2 V13r1</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r1:Firmware_Upgrade_V12r2_V13r1&amp;diff=54699"/>
		<updated>2020-01-09T13:17:12Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Possible Migration scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Possible Migration scenarios  == &lt;br /&gt;
&lt;br /&gt;
* PBX without Linux Application Platform or external  Linux Application Platform &lt;br /&gt;
** Update PBX&lt;br /&gt;
** Installation App Platform (see below for more details)&lt;br /&gt;
*** On local SSD (if Gateway is SSD capable) &#039;&#039;- is performed automatically by the install process&#039;&#039;&lt;br /&gt;
*** On external Gateway with SSD [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#ARM_Gateway Installation of AP Platform on SSD]  &lt;br /&gt;
*** On virtual machine (Hyper-V or VMWare) [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#App_Platform_-_x86-64_.28Virtual_Machine.29 Installation of Virtual App Platform] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*PBX with Linux Application Platform on local SSD or CF-card&lt;br /&gt;
** Update PBX&lt;br /&gt;
** Installation App Platform (see below for more details)&lt;br /&gt;
***On external Gateway with SSD [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#ARM_Gateway Installation of AP Platform on SSD]  &lt;br /&gt;
*** On virtual machine (Hyper-V or VMWare) [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#App_Platform_-_x86-64_.28Virtual_Machine.29 Installation of Virtual App Platform] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
* Virtual PBX (IPVA) without Linux Application Platform or external Linux Application Platform&lt;br /&gt;
** Update PBX (IPVA)&lt;br /&gt;
** Installation App Platform (see below for more details)&lt;br /&gt;
*** On external Gateway with SSD [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#ARM_Gateway Installation of AP Platform on SSD]  &lt;br /&gt;
*** On virtual machine (Hyper-V or VMWare)[http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform#App_Platform_-_x86-64_.28Virtual_Machine.29 Installation of Virtual App Platform] &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changes that will be performed during the install/migration process:&#039;&#039;&#039;&lt;br /&gt;
* CDR0 will be changed&lt;br /&gt;
* DNS0 will be changed&lt;br /&gt;
* LOG0 will be changed&lt;br /&gt;
* IP0 /priority-tos will be changed&lt;br /&gt;
* HTTP Client Authenticated URLs 1-n will be changed, depending on number of installed voicemails&lt;br /&gt;
* HTTP, HTTPS Ports will be changed&lt;br /&gt;
* STUN Server will be changed&lt;br /&gt;
* TURN Server will be changed (Turn User &amp;amp; PW) &lt;br /&gt;
* LDAP Server will be changed to &amp;quot;Force TLS&amp;quot;, there for all replications and other LDAP accesses need to be changed to TLS&lt;br /&gt;
** Existing LDAP Server Accounts will be removed, a new user &#039;&#039;domain.tld\ldap-guest&#039;&#039; will be created. You can find the password in the App PBX Manager/AP contacts/Change configuration/Password (LDAP). The user is already set in the the created config template &#039;&#039;Config User&#039;&#039;&lt;br /&gt;
* No of Regs w/o Pwd will be changed to &amp;quot;0&amp;quot;&lt;br /&gt;
* Relay CDRs are disabled under Gateway-&amp;gt;General &amp;quot;Write CDRs&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
All changes can be changed back to another or original value after the migration process manually if necessary.&amp;lt;br&amp;gt;&lt;br /&gt;
Make sure you store all these values upfront with a backup or manually.&lt;br /&gt;
Always make a backup before you start a migration process.&amp;lt;br&amp;gt;&lt;br /&gt;
We advice to update all devices to the latest available Minor Release firmware version within your existing release before updating to V13.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A deeper look in what install does, you can find in the trainings book [[Course13:IT_Connect_-_11.0_The_individual_Device_User_Interface| The individual Device User Interface - What the Install does]].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;In this scenario example we will explain you the Migration steps: PBX with Linux Application Platform on a local SSD and we install an additional Gateway with SSD for the new AP Platform&#039;&#039;&#039;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Additional components who are necessary:&lt;br /&gt;
* IPxx11 Gateway with new SSD&lt;br /&gt;
* v13 Licenses&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preparation before you start ==&lt;br /&gt;
* You have to disable &#039;&#039;Force HTTPS&#039;&#039; in the [[Reference13r1:Services/HTTP/Server|configuration]] before the update, because the installer is HTTP only&lt;br /&gt;
** If you have forgotten it and cannot reach the installer you have to access the advanced UI directly via https://ip/admin.xml?xsl=admin.xsl to deactivate it. After that you can open the installer&lt;br /&gt;
* You have to decide if you want to install with IP addresses or DNS Names. &lt;br /&gt;
** IP Addresses: go ahead&lt;br /&gt;
** DNS Names: you have to make sure before installation that your PC (your browser) and all innovaphone devices receive correct dns resolutions from your internal DNS for the used DNS-Names in the install process&lt;br /&gt;
* Check your Reverse Lookup Configuration&lt;br /&gt;
** Until V12r2 the LDAP configuration was deployed on the user object level and thus used by the phone and myPBX. In v13r1 the forward LDAP lookup is still user specific possible, the phone uses the user directories settings (as in v12) and the myApps client uses the &#039;&#039;Contacts App&#039;&#039; entries (which can be user specific by the LDAP object configuration). In v13 the Reverse-Ldap-Lookup is done centrally by the PBX by the [[Reference13r1:PBX/Config/General#Common|PBX configuration]] so called &#039;&#039;Reverse Lookup URL&#039;&#039;. (by default Install will configure this to use your &#039;&#039;Contacts App&#039;&#039;). Please check the whole [[Reference13r1:Concept_Number_Resolution_and_LDAP|Concept]] before you start.&lt;br /&gt;
&lt;br /&gt;
== App Platform ==&lt;br /&gt;
&lt;br /&gt;
At first install the gateway with the new Application Platform.&lt;br /&gt;
&lt;br /&gt;
We assume it is in factory default. When a V13 firmware is already installed, you can access the gateway via its IP-address and you will get in the install GUI and can start the install process.  If this is not the case, you can perform an update of the firmware to v13r1 via Maintenance, Update.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If an V13r1 is installed but you don&#039;t get the install gui immediately you can open it via [http://ipaddress/install.htm http://ipaddress/install.htm]&lt;br /&gt;
* &#039;&#039;&#039;Install switch from HTTPS to HTTP, please be careful if you have deactivated HTTP, the redirection will fail&#039;&#039;&#039; !!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If not no secure passwords should be assigned automatically, you can use the default passwords by using the URL with a password switch [http://ipaddress/install.htm?stdpwd=on http://ipaddress/install.htm?stdpwd=on]. We recommend the use of secure passwords&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If the install doesn&#039;t start in your desired language or you want another language during the install process as the OS-language, use an appropriate language switch, for example ?lang=nl for Dutch or ?lang=en for English&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As first you will be asked for the username and password of the gateway.&lt;br /&gt;
&lt;br /&gt;
As long as these are on the default values, you don&#039;t have to enter a value or just enter this default value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: On the right pane of the install you find the explanations for the parameters that you can fill out.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In the second step the install method will be asked.&amp;lt;br&amp;gt;&lt;br /&gt;
Here we select &amp;quot;Only update and network settings&amp;quot; to prepare the gateway for the installation of the App Platform.&lt;br /&gt;
&lt;br /&gt;
[[Image:Only update and network settings.png]]&lt;br /&gt;
&lt;br /&gt;
In the step &amp;quot;innovaphone PBX Installation&amp;quot; you enter the necessary network settings of the gateway and the IP address of the App Platform.&lt;br /&gt;
&lt;br /&gt;
It is also possible to update the gateway to the latest possible firmware version.&lt;br /&gt;
&lt;br /&gt;
Be aware that if you choose for an update of the firmware, a restart will occur.&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone PBX installation.png]]&lt;br /&gt;
&lt;br /&gt;
In the next step the App Platform will be downloaded and installed and started.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone App Platform.png]]&lt;br /&gt;
&lt;br /&gt;
== PBX ==&lt;br /&gt;
&lt;br /&gt;
After the App Platform is installed and started, we will follow-up with the update of the PBX (Master, in Distributed Systems).&lt;br /&gt;
&lt;br /&gt;
To proceed we need to install the latest version of the V13r1 firmware on the existing PBX.&lt;br /&gt;
&lt;br /&gt;
Before upgrading the licence master (master pbx) make sure you have v13 licences. Delete the old licences and upload the new licences to the licence master. Otherwise you can run into cpu load issues and the install prozess can fail because of the traffic of registration attempts with TLS.&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
If the firmware V13r1 is installed, you can access the gateway via its IP-address and you enter into the install process.&lt;br /&gt;
&lt;br /&gt;
As first you will be asked for the username and password of the gateway.&lt;br /&gt;
&lt;br /&gt;
Here you enter the credential of the existing admin user (most of the time it is admin)  of the gateway.&lt;br /&gt;
&lt;br /&gt;
The install will recognize that it is an existing PBX configuration and provides you with the appropriate Update scenarios.&lt;br /&gt;
&lt;br /&gt;
We choose for &amp;quot;Update existing PBX with installation of an external App Platform&amp;quot; as the selected scenario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Update existing PBX with installation of an external App Platform.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In case of any inconsistencies between the existing configuration file and new objects, error messages will be displayed.&lt;br /&gt;
&lt;br /&gt;
Those need to be fixed before continuing the installation. Fixing is done by login to the admin-UI and change of the displayed object.&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the step &amp;quot;innovaphone PBX Installation&amp;quot; you enter the necessary network settings of the gateway.&lt;br /&gt;
&lt;br /&gt;
It is also possible to update the gateway to the latest possible firmware version.&lt;br /&gt;
&lt;br /&gt;
Be aware that if you choose for an update of the firmware, a restart will occur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone PBX installation2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: If the &amp;quot;Login to Devices&amp;quot; message appears, there was already an entry in the advanced user interface in (General/Devices Registration). Clear this entry and restart the Install process again.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the step, &amp;quot;Connect to external App Platform&amp;quot; we connect the PBX with the pre-defines gateway with the App Platform.&lt;br /&gt;
&lt;br /&gt;
To proceed we enter the IP-address off the App-Platform and its password.&lt;br /&gt;
&lt;br /&gt;
After pressing connect and a successful connection it will show connected.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: The default password for the App-Platform is &amp;quot;pwd&amp;quot;. If you don&#039;t enter  a password the default password will be used automatically.  If you changed the password on the App-Platform into a more secure password yourself before starting the Install to update the PBX, Be sure you use this same password to connect. Otherwise the connection will fail and the install can&#039;t proceed.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The installer will overwrite the AP Password, with the current Gateway Adminpassword during the installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: With the search option you can searh for available App-platform in your network that are installed on a gateway. It is required that this gateway was in default factory setting.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A search is not possible for an App-platforms that runs on a virtual machine. This can only be accessed via its IP-address.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Connect to external App Platform.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If no apps are installed and the console displays the following error message maybe there was already an entry in the advanced user interface in (General/Devices Registration). Clear this entry and restart the Install process again.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;WebSocket connection to &#039;ws://ip.addr/domain.de/devices&#039; failed: Error during WebSocket handshake: Unexpected response code: 404&amp;lt;/code&amp;gt;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the following step &amp;quot;&#039;&#039;innovaphone PBX Options&#039;&#039;&amp;quot; you enter the configuration just as you have seen and learned during the iT Connect op iT Update training.&lt;br /&gt;
&lt;br /&gt;
Here the PBX name and Domain name (System name) should match with your configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: As user please add an additional (not existing) new user as myApps Admin. Name and mail cannot be in use already.&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the following step &amp;quot;&#039;&#039;Emergency Administrator password, please save secure&#039;&#039;&amp;quot; the passwords will NOT be created randomly as you have learned during the iT Connect Training. The existing passwords of the PBX system remain as they are.&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In the following steps the configurations will be done as learned during your [[Special:Prefixindex/Course13:|iT Connect Training]].&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After finishing all the install steps, you can login into the system with the previously define myApps Admin in the myApps client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If you cant login with the myApps Admin User, go to the Advanced User Interface ([https://ip.addr/admin.xml?xsl=admin.xsl https://ip.addr/admin.xml?xsl=admin.xsl]) and assign an existing user object the Template &amp;quot;Config Admin&amp;quot;. You can then login with this user into myApps.&#039;&#039;&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
As mentioned in the beginning , one now can change the stored special settings back to its original state if necessary for the configuration&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
To give the existing users the possibility to use the innovaphone myApps, you should inherit the existing templates to the new template &amp;quot;Config User&amp;quot;. If the user didn&#039;t have any template at all, then assign them  o the template &amp;quot;Config User&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: The Users are only seen in Users App if they have the &amp;quot;Visible&amp;quot; flag in Visibility set. This is mostly done by Config Templates. So be aware that if you have another Config Template in use (that has not set the Visibility flag) even if you inheritate it from Config User it will not overwrite the older settings. So choose here the Visibility flag afterwards.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Change template.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Assign Administrative users to the new template &amp;quot;Config Admin&amp;quot;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: In case you are using Apps that need a License the selectable box under License only appear after uploading the necessary license. In test mode everything works. So in case you are using test mode it is better to first upload your licenses, select the license boxes and than deactivate your test mode!&lt;br /&gt;
&lt;br /&gt;
== Provisioning ==&lt;br /&gt;
&lt;br /&gt;
If you want to use Provisioning and you are using Update Server/PHP Update Server 2 you have to consider that your phone needs to reach config.innovaphone.com via Update URL.&amp;lt;br&amp;gt;&lt;br /&gt;
That means that if you already provide an Update URL via DHCP that the Provisioning process will not be possible. Therefore delete the Update URL in your DHCP Server. &amp;lt;br&amp;gt;&lt;br /&gt;
In case you are using Update Server/PHP Update Server 2 for Certificates etc. your phone needs to reach your old Update Server after provisioning again. (further details will follow)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please Check: [[Reference13r1:Services/Update]]&lt;br /&gt;
&lt;br /&gt;
== Assign Hardware of a User to a phone or softwarephone App ==&lt;br /&gt;
&lt;br /&gt;
This can be done by the administrator in UsersAdmin App.&amp;lt;br&amp;gt; &lt;br /&gt;
Alternative the User can do this via his Profile. At the instruction from myApps the user can be shown on which point he can assign the app. &lt;br /&gt;
&lt;br /&gt;
[[Image:Profile PhoneApp.png]]&lt;br /&gt;
&lt;br /&gt;
== Reverse Proxy ==&lt;br /&gt;
&lt;br /&gt;
Reverse Proxy migration must be done after upgrade the (first) pbx.&lt;br /&gt;
&lt;br /&gt;
Via the advanced user interface install the latest V13r1 firmware.&lt;br /&gt;
&lt;br /&gt;
In the next step we need the Devices App URL. Via the advanced user interface, in  General/Devices Registration/Devices App URL.&lt;br /&gt;
&lt;br /&gt;
Copy this URL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Device Registration2.png]]&lt;br /&gt;
&lt;br /&gt;
Paste this URL in the advanced user interface of the Reverse Proxy in the field General/Devices Registration/Devices App URL.&lt;br /&gt;
&lt;br /&gt;
From now on this device can be found in the Devices App in Devices.&lt;br /&gt;
&lt;br /&gt;
The MAC address and a wrench symbol will be displayed.&lt;br /&gt;
&lt;br /&gt;
Here you can now assign  a meaningful name and the domain to the device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices.png]]&lt;br /&gt;
&lt;br /&gt;
Via Categories you should assign this gateway also to the appropriate Category.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices2.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Now the device configurations are assigned to all devices and the corresponding category(s)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These include at least:  Alarmserver Global, Media Global, NTP-settings&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via the PBX Manager App and the Reverse Proxy plugin you can now configure the Reverse Proxy.&lt;br /&gt;
&lt;br /&gt;
You should add here a new Host entry for the App Platform in the Reverse Proxy via the option &amp;quot;Add Host&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The DNS name of the App Platform will be displayed in the next step. Select the DNS name and it will be added to the Reverse Proxy entries.&lt;br /&gt;
&lt;br /&gt;
Via the advanced user interface you have to change the URLs for every hostname pointing to an PBX (Slaves and Standby).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the first http forward field you need to enter the following string  /PBX0/APPCLIENT/appclient.htm and forward it  to the appropriate IP-address with the port numbers 80 and 443 and tag the checkbox Default.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At least the following entries  should be available as shown in the picture  below.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Reverse Proxy Entries.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave PBX ==&lt;br /&gt;
&lt;br /&gt;
To proceed we need to install the latest version of the V13r1 firmware on the Slave PBX.&lt;br /&gt;
&lt;br /&gt;
If the latest firmware V13r1 is installed, you can access the gateway via its IP-address and you enter into the install process. If there is no standard password you have to enter the admin credentials to login to the gateway.&lt;br /&gt;
&lt;br /&gt;
In the next step select &amp;quot;Manual Configuration&amp;quot; and you will enter the Advanced User Interface.&lt;br /&gt;
&lt;br /&gt;
In the following step we need the Device URL. You can find it on the Master PBX under General/Devices Registration/Devices App URL. Copy the complete URL.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
# Via the App Manager, in Settings/General/Devices app URL , we copy the complete URL &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:App Manager.png]]&lt;br /&gt;
&lt;br /&gt;
# Via the Advanced User Interface of the PBX&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Device Registration2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste this URL via the Advanced User Interface of the Slave PBX under General/Devices Registration/Devices App URL.&lt;br /&gt;
&lt;br /&gt;
Now you can find this Gateway in the Devices App within Devices. It will be displayed with its MAC-address and a wrench symbol.&lt;br /&gt;
&lt;br /&gt;
Here you can now assign a meaningful name and the domain to the device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices.png]]&lt;br /&gt;
&lt;br /&gt;
Via Category you should assign the Gateway to the appropriate category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Now the device configurations are assigned to all devices and the corresponding category(s)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These include at least:  Alarmserver Global, Media Global, NTP-settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For provisioning new devices to the Slave PBX you need a new provisioning category and a new phone device configuration.&lt;br /&gt;
In the training books you can find how to do this for [http://wiki.innovaphone.com/index.php?title=Course13:IT_Connect_-_06_Managing_Devices#Categories categories] and [http://wiki.innovaphone.com/index.php?title=Course13:IT_Connect_-_06_Managing_Devices#Phone phone configuration]. In the device configuration you need to specify the Slave PBX as Primary Gatekeeper.&lt;br /&gt;
&lt;br /&gt;
Next Steps: &lt;br /&gt;
&lt;br /&gt;
On a Slave you should change some configuration if it needed.&lt;br /&gt;
&lt;br /&gt;
- Slave PBX registration to the Master must be done with authentication. We prefer to do this with H323/TLS as Registration protocol. &lt;br /&gt;
&lt;br /&gt;
- Slave Replication must be done with use TLS. Check if the Objects will be synchronized.&lt;br /&gt;
&lt;br /&gt;
- For the new Reporting App the Gateway/CDR0 must be adapted accordingly to receive the CDRs of the slave. You can copy the values from the Master.&lt;br /&gt;
&lt;br /&gt;
- For reverse lookup you have to configure the Reverse Lookup URL and also the appropriate Prefixes under PBX/General.&lt;br /&gt;
&amp;lt;!-- how to get the password of contacts --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point no &amp;quot;Edit profile&amp;quot; menu item appears in the myApps client of a Slave PBX user. You can fix this in the [http://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Service_Users#Users PBX Manager Plugin Users]. Under &amp;quot;Change configuration&amp;quot; select the Slave PBX and activate the displayed app under &amp;quot;Use as profile&amp;quot;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the Slave PBX go to Services, HTTP, Client, and add the necessary URL&#039;s for Events, Voicemail, files, backup-files.&lt;br /&gt;
&lt;br /&gt;
You can copy and paste the URL&#039;s from the Master. Be aware that you have to set the new Passwords should also be changed on the Master, instances, PBX Objects and HTTP Client!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If the redirect from the slave or standby PBX to the myApps weblauncher does not work, you have to enter the following via Command or the webbrowser:&#039;&#039;&lt;br /&gt;
 !config change HTTP0 /home PBX0/APPCLIENT/appclient.htm&lt;br /&gt;
 !config write&lt;br /&gt;
 !config activate&lt;br /&gt;
 !reboot&lt;br /&gt;
&lt;br /&gt;
== IP Phones ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proceed to install the latest version of the V13r1 firmware on the IP Phones.&lt;br /&gt;
&lt;br /&gt;
To update the existing IP Phones to V13 there are two possibilities.&lt;br /&gt;
&lt;br /&gt;
In a large environment with a lot of IP Phones you probably already have an update server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If an update server is available,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- Change the Update Server script to update all phones with a Firmware upgrade to V13&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- If the Phones are updated to V13, execute the update script with a change to delete the Update URL and add the Devices App URL, you can have a look of the config example below&#039;&#039;&lt;br /&gt;
*This script command line will erase the update entry under [[Reference13r1:Services/Update]]&lt;br /&gt;
 config change UP1&lt;br /&gt;
 config write&lt;br /&gt;
 config activate&lt;br /&gt;
*This script command line will configure the Websocket link under [[Reference13r1:General/Devices-Registration]] to connect the phone to its respective Devices App &lt;br /&gt;
 config change SYSCLIENT /sysadmin wss://apps.yourdomain.ltd/yourdomain.ltd/devices/sysclients&lt;br /&gt;
 config write&lt;br /&gt;
 config activate&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- In Devices add the Phones to the appropriate domain and category and give it a useful name to find a users phone via the search option in devices (unfortunately manual one by one)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If no update server is available,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- Manual firmware upgrade to V13&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- Manually edit the Devices App URL under General, Devices Registration, Devices App URL&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- In Devices add the Phones to the appropriate Domain and category and give it a useful name to find a users phone via the search option in devices  (unfortunately manual one by one)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== STUN / TURN / Standby / DECT ==&lt;br /&gt;
&lt;br /&gt;
To proceed we need to install the latest version of the V13r1 firmware on the existing Gateway.&lt;br /&gt;
&lt;br /&gt;
If the latest firmware V13r1 is installed, you can access the gateway via its IP-address and you enter into the install process. If there is no standard password you have to enter the admin credentials to login to the gateway.&lt;br /&gt;
&lt;br /&gt;
In the next step select &amp;quot;Manual Configuration&amp;quot; and you will enter the Advanced User Interface.&lt;br /&gt;
&lt;br /&gt;
In the following step we need the Device URL which can be found on two different ways.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
# Via the App Manager, in Settings/General/Devices app URL , we copy the complete URL &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:App Manager.png]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Via the Advanced User Interface of the PBX&lt;br /&gt;
In General/Devices Registration/Devices App URL copy the complete URL.&lt;br /&gt;
&lt;br /&gt;
[[Image:Device Registration2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Paste this URL via the Advanced User Interface of the Reverse Proxy Gateway in General/Devices Registration/Devices App URL .&lt;br /&gt;
&lt;br /&gt;
Now you can find this Gateway in the Devices App within Devices. It will be displayed with its MAC-address and a wrench symbol.&lt;br /&gt;
&lt;br /&gt;
Here you can now assign  a meaningful name and the domain to the device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices.png]]&lt;br /&gt;
&lt;br /&gt;
Via Category you should assign the Gateway to the appropriate category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Devices2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Now the device configurations are assigned to all devices and the corresponding category(s)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;These include at least:  Alarmserver Global, Media Global, NTP-settings&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: For a Slave, Standby PBX or DECT you should select TLS as Replication protocol.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: If the redirect from the slave or standby PBX to the myApps weblauncher does not work, you have to enter the following via Command or the webbrowser:&#039;&#039;&lt;br /&gt;
 !config change HTTP0 /home PBX0/APPCLIENT/appclient.htm&lt;br /&gt;
 !config write&lt;br /&gt;
 !config activate&lt;br /&gt;
 !reboot&lt;br /&gt;
&lt;br /&gt;
== Configuration Changes ==&lt;br /&gt;
=== SNMP disabled by default ===&lt;br /&gt;
Up and including v12r2, SNMP was by default activated on a innovaphone device. In v13 it is by default deactivated, it can be activated by a new [[Reference13r1:Services/SNMP | Enable Checkmark]]. As a result, if you upgrade to v13 firmware SNMP is deactivated and needs to be enabled if SNMP is needed in the customer setup.&lt;br /&gt;
&lt;br /&gt;
===Config line size was increased to 32KB===&lt;br /&gt;
&lt;br /&gt;
Downgrade from 13r1 to 12r2 (or older firmware) will result in objects with a too large [[Howto:Config_size_Limitations#Global | config line]] being dropped.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* For the known issues, please have a look into our [http://wiki.innovaphone.com/index.php?title=Support:DVL-Roadmap_Firmware_13r1 Support:DVL-Roadmap Firmware 13r1]&lt;br /&gt;
** The Headline &#039;&#039;&#039;13r1 Release Notes&#039;&#039;&#039; will list the known issues.&lt;br /&gt;
* install did not finish if you have configured ETH0 as DHCP Server and ETH1 DHCP Client (connected to corporate network, internet access). You have to Swap the ETH interfaces before you start the install.&lt;br /&gt;
&lt;br /&gt;
===LDAP Directory Service on IP Phones via Reverse Proxy===&lt;br /&gt;
Currently by default IP phones registered via Reverse Proxy are NOT able to search in the PBX users and in the external LDAP resource (for example the Contacts database) To enable the LDAP search on the Phones we have to do some manual modification.&lt;br /&gt;
&lt;br /&gt;
For more details: [http://wiki.innovaphone.com/index.php?title=Howto:V13_LDAP_IP_Phones_Directory_Services_via_Reverse_Proxy&amp;amp;action=submit: Howto V13 LDAP IP Phones Directory Services via Reverse Proxy]&lt;br /&gt;
&lt;br /&gt;
===PBX Replication===&lt;br /&gt;
The PBX LDAP Replication won‘t work if Master and Slave have different major Versions (V13/V12).  The reason is that the binding user is different in V13 and V12. The binding user in V12 is called &#039;&#039;_PBX_&#039;&#039;. In V13 the binding user is called &#039;&#039;[domain]/_PBX_&#039;&#039;. You should either use the same major Version or use the LDAP replicator at Services-&amp;gt;LDAP-&amp;gt;Replicator.&lt;br /&gt;
&lt;br /&gt;
===Fax App===&lt;br /&gt;
The Fax App currently supports only dial plan having all objects in the root node. For details see [[Reference13r1:Concept_App_Fax#Known_issues | Concept App Fax: Known issues]].&lt;br /&gt;
&lt;br /&gt;
===Install No-DNS mode in V13r1 sr7===&lt;br /&gt;
The install process in No-DNS mode stops when installing events.&lt;br /&gt;
This can be avoided by entering the DNS name in the hosts file of the PC you are installing with. The hosts file can only be edited with admin rights and is located in the folder:&lt;br /&gt;
&amp;lt;code&amp;gt; C:\Windows\System32\drivers\etc\hosts &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will be fixed in V13r1 sr8.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
*[[Howto:Guideline V5 to V6 upgrade]]&lt;br /&gt;
*[[Howto:Upgrade Issues V5 to V6]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V6 V7]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V7 V8]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V8 V9]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V9 V10]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V10 V11r1]]&lt;br /&gt;
*[[Howto:Firmware Upgrade V11r1 V11r2]]&lt;br /&gt;
*[[Support:Special_Precaution_required_when_upgrading_IPxx11_Gateways_from_pre-SR14_Firmware_Versions]]&lt;br /&gt;
* [[Howto:Firmware Upgrade V11r2 V12r1]]&lt;br /&gt;
* [[Howto:Firmware Upgrade V12r1 V12r2]]&lt;br /&gt;
* [[Reference13r1:Concept_Number_Resolution_and_LDAP]]&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference9:3pty_conference_on_DECT_phones&amp;diff=53923</id>
		<title>Reference9:3pty conference on DECT phones</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference9:3pty_conference_on_DECT_phones&amp;diff=53923"/>
		<updated>2019-10-28T16:11:09Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|DECT conference]]&lt;br /&gt;
This article explains how to configure and use 3pty conference calls on DECT phones.&lt;br /&gt;
&amp;lt;!-- Keywords: DECT, IP1200, IP1202, 3pty conference, conferencing unit, 3PTY, 3-party, 3way, 3-way, Dreierkonferenz --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Applies To == &lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* all innovaphone DECT devices (IP1200 and IP1202) from V9HF11.&lt;br /&gt;
&lt;br /&gt;
== More Information ==&lt;br /&gt;
The innovaphone IP-DECT devices are able to use the innovaphone conference hardware (CONF interface) to establish a 3pty conference call with firmware V9 hotfix 11 or later. If the 3pty conference is started by the user, first the IP-DECT device starts a call to the configured conferencing unit number. If this call connects, the connected number is used to connect the other call parties to the conference call.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
* innovaphone IP-DECT device with firmware V9 hotfix 11 or later&lt;br /&gt;
* innovaphone device with CONF interface with support of connected number (V9 and later)&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
* PBX: The innovaphone CONF interface is registered to a PBX Trunk Line object (or a Gateway object with the &#039;&#039;Prefix&#039;&#039; check-mark ticked). The Trunk Line must have a number and be called by the gatekeeper the DECT users are registered.&lt;br /&gt;
&lt;br /&gt;
* IP-DECT device: The &#039;&#039;Conferencing Unit Number&#039;&#039; of the DECT Master is to be set to the Trunk Line number appended by &#039;&#039;*1#&#039;&#039; (If Trunk Line is &#039;&#039;8&#039;&#039;, set &#039;&#039;Conferencing Unit Number&#039;&#039; to &#039;&#039;8*1#&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
To start a conference by a DECT phone use the R-key feature &#039;&#039;R+3&#039;&#039; during a call. You must have at least one inactive call. To stop the conference again use also &#039;&#039;R+3&#039;&#039;. &#039;&#039;R+2&#039;&#039; stops the conference and toggles to the last inactive party, or to a waiting call, if present.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Reference9:Gateway/Interfaces#Conferencing_interface_.28CONF.29 | Gateway CONF Interface]]&lt;br /&gt;
* [[Reference9:DECT2/Config/Master | Configuration DECT Master]]&lt;br /&gt;
* [[Support:DVL-Roadmap_Firmware_V9#IP-DECT:_Three_party_conference_with_innovaphone_PBX | V9 Hotfix11: IP-DECT: Three party conference with innovaphone PBX]]&lt;br /&gt;
* [[Howto:Conferences, Resources and Licenses]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference10:Concept_Linux_Application_Platform&amp;diff=49178</id>
		<title>Reference10:Concept Linux Application Platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference10:Concept_Linux_Application_Platform&amp;diff=49178"/>
		<updated>2018-02-16T10:10:34Z</updated>

		<summary type="html">&lt;p&gt;RobinBaur: /* Use as Log or Alarm Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
The innovaphone Linux Application Platform permits to install innovaphone or custom applications for certain purposes, like Reporting or a Fax Server.&amp;lt;br&amp;gt;&lt;br /&gt;
It also allows to backup/restore configuration files, uninstall applications or see and backup logs.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The Linux distribution Debian 7.1 (Wheezy) is used and linux kernel is 3.4.10 (IPxx10) and 3.2.0.4 (VM)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The architecture of the platform is armel.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
There are three ways to use the innovaphone Linux Application Platform:&lt;br /&gt;
&lt;br /&gt;
===On an IPxx10 Gateway===&lt;br /&gt;
* An IP810, IP0010, IP3010 or IP6010 Gateway&lt;br /&gt;
* Firmware Version 10&lt;br /&gt;
* A compact flash card with UDMA support (minimum 8 GB)&lt;br /&gt;
** We recommend SanDisk Extreme with UDMA and 90 MB/s or above&lt;br /&gt;
&lt;br /&gt;
===On an IPx11 Gateway===&lt;br /&gt;
* An IP0011, IP311, IP411, IP811 or IP3011 Gateway&lt;br /&gt;
* Firmware Version 11r2&lt;br /&gt;
* An SSD mSATA&lt;br /&gt;
&lt;br /&gt;
===As a Virtual Machine===&lt;br /&gt;
* VMWare Player/VMWare Workstation&lt;br /&gt;
&lt;br /&gt;
* Minimal Requirements for the Virtual Machine:&lt;br /&gt;
 1vCPU ( we run 800 MHZ CPU on our IPXX10 Gateways, so similar speed or higher it&#039;s enough, nevertheless depending on the operations/load you could need more CPU speed/vCPU)&lt;br /&gt;
 512 MB RAM&lt;br /&gt;
 8GB Disk&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Download the latest Linux Application Platform from [https://download.innovaphone.com download.innovaphone.com ].&amp;lt;br&amp;gt;&lt;br /&gt;
You can download and install two different packages: The IPxx10/IPx11 package to run on the gateways or a VMware image for VMware&lt;br /&gt;
&lt;br /&gt;
===Default Credentials===&lt;br /&gt;
* Web/Webdav: &#039;&#039;&#039;admin&#039;&#039;&#039;/&#039;&#039;&#039;linux&#039;&#039;&#039;&lt;br /&gt;
* Root-Login (e.g. with Putty): &#039;&#039;&#039;root&#039;&#039;&#039;/&#039;&#039;&#039;iplinux&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Disk space calculation===&lt;br /&gt;
See [[Reference10:Concept_Reporting#Calculation_of_required_disk_space]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
It is strongly recommended that you try to precalculate the needed disk space and that you choose a suiting disk size.&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Disk space usage after first time installation===&lt;br /&gt;
&lt;br /&gt;
====IPxx10/IPx11 Gateways====&lt;br /&gt;
&lt;br /&gt;
* /dev/sda1: 32 MB (fat32 partition with two kernels, which are started by the IPxx10 or IPx11)&lt;br /&gt;
* /dev/sda2: 524 MB (ext2 initial installation partition)&lt;br /&gt;
* /dev/sda3: 120 MB (swap partition)&lt;br /&gt;
* /dev/sda4: 620 MB / xx GB depending of the size of the used CF card (ext4 partition, which is actually booted)&lt;br /&gt;
&lt;br /&gt;
 All in all about 1.3 GB are already in use after the initial installation.&lt;br /&gt;
&lt;br /&gt;
====VMWare====&lt;br /&gt;
&lt;br /&gt;
* /dev/sda1: 674 MB (ext2 initial installation partition)&lt;br /&gt;
* /dev/sda2: 120 MB (swap partition)&lt;br /&gt;
* /dev/sda3: 767 MB / xx GB depending of your pre installation configuration (ext3 partition, which is actually booted) &lt;br /&gt;
&lt;br /&gt;
 All in all about 1.6 GB are already in use after the initial installation.&lt;br /&gt;
&lt;br /&gt;
===Linux Application Platform (IPxx10 or IPx11 Gateways)===&lt;br /&gt;
&lt;br /&gt;
It is recommended to use CF-Cards with sizes of 8GB or more and the card &#039;&#039;&#039;must&#039;&#039;&#039; support UDMA!&amp;lt;br&amp;gt;&lt;br /&gt;
* Enable Linux under Linux General. &lt;br /&gt;
  [[image:IPxx10_Linux_-_enable.png]]&lt;br /&gt;
* Be sure that &amp;quot;Autostart Linux&amp;quot; is disabled until the installation process is finished.&lt;br /&gt;
* You need to enable Proxy-ARP on ETH0 or ETH1 [[ Reference:Configuration/ETH/IP|here ]], so your gateway and the linux appliance will share the same physical interface. Simply go to &#039;&#039;&#039;IP4 &amp;gt; ETH0 (if used) &amp;gt; IP&#039;&#039;&#039; and check &#039;&#039;&#039;Proxy ARP&#039;&#039;&#039;&lt;br /&gt;
* Decompress the downloaded package. You should have an image file like &amp;lt;code&amp;gt;linux_ipxx10_armel.img&amp;lt;/code&amp;gt; now. This works for both &#039;&#039;&#039;IPxx10&#039;&#039;&#039; and &#039;&#039;&#039;IPx11&#039;&#039;&#039; hardware!&lt;br /&gt;
* Upload the decompressed file over the gateways web interface under [[ Reference10:General/Compact-Flash/Image ]] (IPxx10) or [[ Reference12:General/SSD/Image ]] (IPx11). Unmount the CF card/SSD if necessary. Select &amp;quot;Part 1&amp;quot; before starting the upload!&lt;br /&gt;
  [[image:IPxx10_Linux_-_upload_image.jpg]]&lt;br /&gt;
* Reset the box (which also activates the config change of step 1).&lt;br /&gt;
* Configure IP under [[ Reference10:Linux/IP ]]: select either &amp;quot;Disabled&amp;quot; to assign a static IP or ETH0/ETH1 to receive an IP-Address from DHCP-Server behind ETH0 or ETH1.&lt;br /&gt;
* Configure the kernel file, which you find under [[ Reference10:General/Compact-Flash/General#Browse_CF_Content ]] on [[ Reference10:Linux/General ]] &#039;&#039;&#039;Linux kernel file&#039;&#039;&#039;&lt;br /&gt;
** IPxx10 hardware: &amp;lt;code&amp;gt;Image-6010-3.4.10&amp;lt;/code&amp;gt;&lt;br /&gt;
** IPx11 hardware: &amp;lt;code&amp;gt;Image-IPx11-4.4.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configure &amp;lt;code&amp;gt;root=/dev/sda2&amp;lt;/code&amp;gt; under [[ Reference10:Linux/General ]] &#039;&#039;&#039;Kernel command line&#039;&#039;&#039;.&lt;br /&gt;
* If you want, configure the autostart flag.&lt;br /&gt;
* Submit your changes.&lt;br /&gt;
* Click the [[ Reference10:Linux/General ]] &#039;&#039;&#039;Start&#039;&#039;&#039;-Link. The page refreshes until Linux gets an IP and then tries to get a link to the Linux Web Server, which can take some time for the first time installation (~ 5 minutes to 2 hours, for a IP411 ~15 minutes).&lt;br /&gt;
[[Image:device_conf.jpg]]&lt;br /&gt;
* Open the Linux Web Server to see the installation progress (which might take several minutes too). The default credentials are &#039;&#039;&#039;admin&#039;&#039;&#039;/&#039;&#039;&#039;linux&#039;&#039;&#039; for both platforms.&lt;br /&gt;
[[Image:installation.jpg]]&lt;br /&gt;
* The output of the installation log is stored on the Linux AP under &amp;lt;code&amp;gt;/var/log/init_install.log&amp;lt;/code&amp;gt;. In case you have no access to the web server but a console or SSH access, you can check the installation progress in this log file. E.g. login to the console with root/iplinux and run follwong command: &amp;lt;code&amp;gt;more /var/log/init_install.log&amp;lt;/code&amp;gt;. In case you have an SSH connection to the Linux AP, you can download this file using [http://winscp.net WinSCP] tool.&lt;br /&gt;
* Enter the innovaphone device IP address (optional port allowed) and admin credentials when the installation has finished. Now wait until the page refrehses. The web server credentials are now the innovaphone device admin credentials, e.g. &#039;&#039;&#039;admin&#039;&#039;&#039;/&#039;&#039;&#039;ip6010&#039;&#039;&#039;.&lt;br /&gt;
** If the device couldn&#039;t be reconfigured, you will get an error message &#039;&#039;&#039;Command line at the PBX could not be changed...&#039;&#039;&#039; In this case, you have to open [[ Reference10:Linux/General ]] on your device, click stop and enter &amp;lt;code&amp;gt;root=/dev/sda4&amp;lt;/code&amp;gt; under &#039;&#039;&#039;Kernel command line&#039;&#039;&#039;. Then start again. Your Linux webserver credentials will be &#039;&#039;&#039;admin&#039;&#039;&#039;/&#039;&#039;&#039;linux&#039;&#039;&#039; in this case.&lt;br /&gt;
* Linux install has finished.&lt;br /&gt;
* You will see now &amp;lt;code&amp;gt;root=/dev/sda4&amp;lt;/code&amp;gt; under [[ Reference10:Linux/General ]] since Linux is running in on the fourth partition. You shouldn&#039;t change that unless you want to install Linux again.&lt;br /&gt;
&lt;br /&gt;
===Linux Application Platform (VMWare)===&lt;br /&gt;
&lt;br /&gt;
* Decompress the downloaded archive. You should have two files: &#039;&#039;&#039;IP-Debian.vmx&#039;&#039;&#039; and &#039;&#039;&#039;IP-Debian.vmdk&#039;&#039;&#039;.&lt;br /&gt;
* We can open using Vmware Player/Workstation, if you wish to run on Vsphere 4.x or later please convert it by the same method it&#039;s done with the IPVA (see [[Reference10:Concept_Innovaphone_Virtual_Appliance#VMware_vSphere | Using VMware vSphere]])&lt;br /&gt;
* Now you have two possibilities (example for VMWare Player, VMWare Workstation should be similar):&lt;br /&gt;
** If you want to assign more than 8 GB virtual flash:&lt;br /&gt;
*** Do &#039;&#039;&#039;not&#039;&#039;&#039; directly start/doubleclick the vmx file!&lt;br /&gt;
*** Start the VMware Player and Open the vmx file with &#039;&#039;&#039;Open a Virtual Machine&#039;&#039;&#039;.&lt;br /&gt;
*** Open &#039;&#039;&#039;Edit virtual machine settings&#039;&#039;&#039;.&lt;br /&gt;
*** Select the hard disk and &#039;&#039;&#039;Expand&#039;&#039;&#039; it under &#039;&#039;&#039;Utilities&#039;&#039;&#039; to the wished size.&lt;br /&gt;
*** Apply the change and klick &#039;&#039;&#039;Play virtual machine&#039;&#039;&#039;.&lt;br /&gt;
** If 8 GB are enough, simply double click the vmx file and Linux will start.&lt;br /&gt;
* The first time, a script will automatically configure a new partition, the web server etc., which will take some time. The waiting time depends on the CPU of the computer running the vmware player. In some cases the waiting time can be up to 30 minutes, in most cases the installation finishes in about 2-5 minutes.&lt;br /&gt;
* In the meantime, fetch your IP from the VMWare Player screen or login as root and get your IP address with the command &#039;&#039;&#039;ifconfig&#039;&#039;&#039;.&lt;br /&gt;
* Login to the web server to see the installation progress (it may take some minutes until the web server is up).&lt;br /&gt;
* Linux will restart automatically after the first time installation has finished.&lt;br /&gt;
* Linux install has finished.&lt;br /&gt;
&lt;br /&gt;
===Hotfix Installation===&lt;br /&gt;
If you have already installed the latest version of the Linux Application Platform, simply download the Linux...HotfixIncremental for your platform (VM or IPxx10/IPx11) or if you have missed some hotfixes, download the Linux...HotfixCumulative archive, which contains all hotfixes since hotfix1.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Upload this hotfix archive [[Reference10:Concept_Linux_Application_Platform#Upload.2FUpdate|here]].&lt;br /&gt;
&lt;br /&gt;
====Refreshing issue on installation====&lt;br /&gt;
You might get a PHP error when the browser is refreshing during the installation. Just refresh (F5) the page and you&#039;ll get the installation progress again.&lt;br /&gt;
&lt;br /&gt;
=== Upgrade from a previous major Release ===&lt;br /&gt;
For instructions how to upgrade from a previous major release (such as V9 to V10), see &#039;&#039;Upgrading Linux Application Platform&#039;&#039; in [[Howto:Firmware_Upgrade_V9_V10|Firmware Upgrade V9 V10]].&lt;br /&gt;
&lt;br /&gt;
===Static IP===&lt;br /&gt;
The Linux itself &#039;&#039;&#039;must&#039;&#039;&#039; be running in DHCP client mode to run properly. If you want to assign a static IP address, do it like this:&lt;br /&gt;
&lt;br /&gt;
* On an IPxx10/IPxx11: assign a static IP under [[Reference10:Linux/IP]], this will do an internal DHCP response to the Linux that&#039;s running as DHCP client mode.&lt;br /&gt;
* On a VMWare: assign a static IP in your local DHCP server for your MAC address defined in the *.vmx file.&lt;br /&gt;
&lt;br /&gt;
===IPxx10/IPxx11 Transit network for Linux===&lt;br /&gt;
When running Linux on an innovaphone device IPxx10/IPxx11 there is no dedicated network interface for the Linux machine. Instead we have a special transit network between the Linux and the device. The Linux will always operate as DHCP Client mode.&lt;br /&gt;
&lt;br /&gt;
Any ARP request done by the Linux machine will always get the same ARP result that will be the internal &amp;quot;NIC&amp;quot; inside the device, so all packets are always sent to the same IPxx10/IPxx11 device that works as a router. When the packet sent by the Linux machine arrives the innovaphone device, it will follow the IP routing table of the device itself.&lt;br /&gt;
&lt;br /&gt;
In case we have a single network (voice) we will have no problem since the default gateway is just one. However, if we wish to split into two networks (voice and data) and the Linux machine should have a different default gateway, this has no effect since IP routing is based on the innovaphone device IP routing table, because we can&#039;t have two default gateways at the same time.&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
====Configure IP====&lt;br /&gt;
&lt;br /&gt;
The IP configuration on the Linux Application Platform is &#039;&#039;&#039;only&#039;&#039;&#039; available on a &#039;&#039;&#039;VM&#039;&#039;&#039;! A static IP for a Linux Application Platform for an IPxx10/IPxx11 can be configured on your gateway under Linux/IP.&lt;br /&gt;
&lt;br /&gt;
* Mode: either DHCP Client or Static&lt;br /&gt;
* [IP Address]: the desired static IP address&lt;br /&gt;
* [Subnet Mask]&lt;br /&gt;
* [Gateway]&lt;br /&gt;
* [DNS Server]&lt;br /&gt;
* [Alternate DNS Server]&lt;br /&gt;
&lt;br /&gt;
The optional parameters in [] can be only configured, if &#039;&#039;&#039;Static&#039;&#039;&#039; is selected as mode.&lt;br /&gt;
&lt;br /&gt;
====Change the root credentials====&lt;br /&gt;
&lt;br /&gt;
Here you can change the credentials of the Linux root user.&amp;lt;br&amp;gt;&lt;br /&gt;
Default password: &#039;&#039;&#039;iplinux&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Configure Authenticated URLs====&lt;br /&gt;
&lt;br /&gt;
Configure credentials for authenticated URLs. These credentials will be used in automatic backups.&amp;lt;br&amp;gt;&lt;br /&gt;
You can add/remove Urls with the &#039;&#039;&#039;+&#039;&#039;&#039; and &#039;&#039;&#039;-&#039;&#039;&#039; at the right side of the list.&lt;br /&gt;
&lt;br /&gt;
* URL: the URL, e.g. https://172.16.123.123/backup&lt;br /&gt;
* User: the user for this URL&lt;br /&gt;
* Password: the password for this URL&lt;br /&gt;
&lt;br /&gt;
====Configure NTP server====&lt;br /&gt;
&lt;br /&gt;
Configures a NTP server.&lt;br /&gt;
&lt;br /&gt;
* NTP Server: the IP of the NTP Server&lt;br /&gt;
&lt;br /&gt;
====Change Timezone====&lt;br /&gt;
&lt;br /&gt;
Default is Europe/Berlin but you can change that to a valid timezone (an error is given if timezone not present).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Change postgresql admin password====&lt;br /&gt;
&lt;br /&gt;
If innovaphone Reporting is installed, you can configure another password for the postgres admin user.&amp;lt;br&amp;gt;&lt;br /&gt;
Default password: &#039;&#039;&#039;postgres&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Web Server===&lt;br /&gt;
&lt;br /&gt;
We use lighttpd version 1.4.32. The linux web server user is &#039;&#039;&#039;www-data&#039;&#039;&#039; and group user also &#039;&#039;&#039;www-data&#039;&#039;&#039;. Root directory for the web-server is &#039;&#039;&#039;/var/www/innovaphone&#039;&#039;&#039;. This information is mainly relevant if you plan to develope custom applications and integrate them into linux application platform.&lt;br /&gt;
&lt;br /&gt;
Default users and password for the different levels on the Linux application plattform (see figure below):&lt;br /&gt;
[[image:Linux_Application_hierarki.PNG]]&lt;br /&gt;
&lt;br /&gt;
====Change web server properties and public access to the web/webdav====&lt;br /&gt;
* Force HTTPS: enables redirection for HTTP to HTTPS&lt;br /&gt;
* Public Web Paths: these paths are not password protected, e.g. &#039;/ap&#039;&lt;br /&gt;
* Public Webdav Paths: these webdav paths are not password protected, e.g. &#039;/backup&#039;&lt;br /&gt;
** These paths are by default readonly. You can set the &#039;Write&#039; flag to make the path also writable. This flag will be anyway ignored if credentials are provided.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;IPadr&amp;gt;&#039;&#039;&amp;lt;code&amp;gt;/webdav/&amp;lt;/code&amp;gt; is the root directory for webdav files. If you want to access a directory/file without credentials you have to add this directory to the Public Webdav Paths.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;/webdav/background/&amp;lt;/code&amp;gt; Here you have the background pictures for your Phones.&amp;lt;br&amp;gt;&lt;br /&gt;
Public Webdav Paths: &amp;lt;code&amp;gt;/background&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/background/a&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Now you have a public access to the folder background. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Enter a single &#039;&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&#039; for a public root directory. All sub directories and files will be also public then.&amp;lt;br&amp;gt;&lt;br /&gt;
* If you enter e.g. &#039;&amp;lt;code&amp;gt;/update/&amp;lt;/code&amp;gt;&#039;, the directory &#039;update&#039; and all sub directories/files will be public.&amp;lt;br&amp;gt;&lt;br /&gt;
* If you enter e.g. &#039;&amp;lt;code&amp;gt;/update&amp;lt;/code&amp;gt;&#039;, only the directory &#039;update&#039; and its files will be public.&lt;br /&gt;
&lt;br /&gt;
Important: Linux file names are case sensitive (so &amp;lt;code&amp;gt;/Update&amp;lt;/code&amp;gt; is not equal &amp;lt;code&amp;gt;/update&amp;lt;/code&amp;gt;)!.&lt;br /&gt;
&lt;br /&gt;
====Change the Linux web server credentials====&lt;br /&gt;
&lt;br /&gt;
Here you can change the credentials for Web Server access.&lt;br /&gt;
&lt;br /&gt;
If running VMWare, default password is &#039;&#039;&#039;linux&#039;&#039;&#039;. If running IPXX10, password is the one entered at the end of first installation (admin password of the device where linux is running)&lt;br /&gt;
&lt;br /&gt;
====Change the Linux webdav access credentials====&lt;br /&gt;
&lt;br /&gt;
Here you can change the credentials for webdav access.&lt;br /&gt;
&lt;br /&gt;
If running VMWare, default password is &#039;&#039;&#039;linux&#039;&#039;&#039;. If running IPXX10, password is the one entered at the end of first installation (admin password of the device where linux is running)&lt;br /&gt;
&lt;br /&gt;
====Change application access credentials====&lt;br /&gt;
&lt;br /&gt;
If you have installed an application, which has the lighttpd-auth property set in its configuration file, you can configure a separate user/password for the applications web site.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to disable the separate authentication, leave the &#039;&#039;&#039;user&#039;&#039;&#039; field empty and enter the currently configured password. The authentication will be the same as the root web server authentication afterwards.&amp;lt;br&amp;gt;&lt;br /&gt;
One can just login on the application web site with this access.&lt;br /&gt;
&lt;br /&gt;
A configured access overrides a configured public web path to &#039;/apps/application-name&#039;!&lt;br /&gt;
&lt;br /&gt;
====Configure mutual TLS====&lt;br /&gt;
&lt;br /&gt;
If you need mutual TLS for innovaphone devices with a certificate signed by innovaphone, you can activate mutual TLS for a configurable &#039;&#039;&#039;port&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
Currently we&#039;re just supporting client certificates signed by innovaphone&#039;s &#039;&#039;innovaphone Device Certification Authority&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The physical mutual TLS path is &#039;&#039;&#039;/var/www/innovaphone/mtls&#039;&#039;&#039;. Here you can put your script files, e.g. mtls.php.&amp;lt;br&amp;gt;&lt;br /&gt;
You then call this script file by &#039;&#039;&#039;https://linux-ip:mtls-port/mtls.php&#039;&#039;&#039;, as this path is the document root for the configured port.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How to upload the script:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Using a webdav client (like NetDrive) upload the script to the webdav folder.&lt;br /&gt;
Afterwards connect with Putty to the linux.&lt;br /&gt;
&lt;br /&gt;
The uploaded file is under /var/www/innovaphone/webdav and we must move it to /var/www/innovaphone/mtls&lt;br /&gt;
&lt;br /&gt;
===Certificates===&lt;br /&gt;
&lt;br /&gt;
The current server certificate installed on the web server is shown here. A self signed certificate, innovaphone-linux, is installed by default. It is recommended to change it with your own certificate.&lt;br /&gt;
&lt;br /&gt;
It is also possible to trust or reject other certificates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Currently the LAP doesn&#039;t support the upload of a password protected certificate. As a workaround it is possible to convert the certificate with OpenSSL (on windows or Linux) to PEM format without password and upload this one.&lt;br /&gt;
&lt;br /&gt;
With the following openssl command, the password protected certificate can be changed into an unprotected certificate. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;openssl pkcs12 -in&amp;lt;/code&amp;gt; &#039;&#039;CertificateWithPasswort&#039;&#039; &amp;lt;code&amp;gt;-out&amp;lt;/code&amp;gt; &#039;&#039;CertificateWithoutPasswort&#039;&#039;.pem &amp;lt;code&amp;gt;-nodes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The unprotected certificate should be deleted directly after upload for security reasons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a private, unsigned certificate you can do this with the following commands on the Linux AP CLI.&lt;br /&gt;
It is best to go in a folder which can be reached via http later as &amp;lt;code&amp;gt;/var/www/innovaphone/webdav/...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days xxxx (insert number)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;code&amp;gt;-nodes&amp;lt;/code&amp;gt; if you don&#039;t want to protect your private key with a passphrase.&lt;br /&gt;
&lt;br /&gt;
You now will be asked for certificate information.&lt;br /&gt;
&lt;br /&gt;
To merge the certificate and key you can enter the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cat cert.pem &amp;gt;&amp;gt; key.pem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file key.pem can now be uploaded via the web interface of the Linux AP.&lt;br /&gt;
&lt;br /&gt;
===Backup===&lt;br /&gt;
&lt;br /&gt;
The web server can be configured to poll a Command File URL (on a web server).&amp;lt;br&amp;gt;&lt;br /&gt;
The backup process is similar to [[Reference10:Services/Update]].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An alarm server can be also configured to receive alarms during an automatic backup: [[ #Alarm_Server | Alarm Server under Diagnostics ]].&lt;br /&gt;
&lt;br /&gt;
At the bottom you will see a list of the current automatic backup serials from the Command File URL and the log of the last automatic backups.&lt;br /&gt;
&lt;br /&gt;
[[Image:backup_restore.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Command File====&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 saveinnovaphonecfgs http://172.16.123.123/webdav/backup/cfgs-#i-#b10.tar.gz&lt;br /&gt;
&lt;br /&gt;
The available default commands are:&lt;br /&gt;
&lt;br /&gt;
=====saveinnovaphonecfgs=====&lt;br /&gt;
&lt;br /&gt;
Saves all neccessary configuration files (no application specific files) as a tar gz archive (so you should use .tar.gz as ending).&lt;br /&gt;
&lt;br /&gt;
=====saveinnovaphonelogs=====&lt;br /&gt;
&lt;br /&gt;
Saves all available (also application related) log files as a tar gz archive (so you should use .tar.gz as ending).&lt;br /&gt;
&lt;br /&gt;
=====saveinnovaphone-applicationnamelogs=====&lt;br /&gt;
&lt;br /&gt;
Saves log files as a tar gz archive (so you should use .tar.gz as ending) for applicationname (reporting, exchange or faxserver)&lt;br /&gt;
&#039;&#039;&#039;saveinnovaphone-reportinglogs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====saveinnovaphone-applicationnamecfgs=====&lt;br /&gt;
&lt;br /&gt;
Saves all neccessary configuration files as a tar gz archive (so you should use .tar.gz as ending) for applicationname (reporting, exchange or faxserver)&lt;br /&gt;
&#039;&#039;&#039;saveinnovaphone-reportingcfgs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====saveinnovaphone-applicationnamedb=====&lt;br /&gt;
&lt;br /&gt;
Saves ddbb if existing as a tar gz archive (so you should use .tar.gz as ending) for applicationname (reporting, exchange or faxserver)&lt;br /&gt;
&#039;&#039;&#039;saveinnovaphone-reportingdb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=====times=====&lt;br /&gt;
Executes the following command(s) only, if the specified time matches and only once per hour (independent of poll timeout value).&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# both commands always executed&lt;br /&gt;
saveinnovaphonelogs http://xxx.xxx.xxx.xxx.xxx/webdav/backup/linux-logs-#i-#m-#b10.tar.gz&lt;br /&gt;
saveinnovaphonecfgs http://xxx.xxx.xxx.xxx.xxx/webdav/backup/linux-cfg-#i-#m-#b10.tar.gz&lt;br /&gt;
# commands only from monday till saturday at 10am and 11am executed. &lt;br /&gt;
times day:1,2,3,4,5 hour:10,11 &lt;br /&gt;
saveinnovaphone-reportingcfgs http://xxx.xxx.xxx.xxx.xxx/webdav/backup/linux-innovaphone-reporting-cfgs-#i-#d-#b10.tar.gz&lt;br /&gt;
saveinnovaphone-reportinglogs http://xxx.xxx.xxx.xxx.xxx/webdav/backup/linux-innovaphone-reporting-logs-#i-#d-#b10.tar.gz&lt;br /&gt;
# commands only Saturdays and Sundays at 00am executed. &lt;br /&gt;
times day:6,7 hour:00 &lt;br /&gt;
saveinnovaphone-reportingcfgs http://xxx.xxx.xxx.xxx.xxx/webdav/backup/linux-innovaphone-reporting-cfgs-#i-#d-#b10.tar.gz&lt;br /&gt;
saveinnovaphone-reportinglogs http://xxx.xxx.xxx.xxx.xxx/webdav/backup/linux-innovaphone-reporting-logs-#i-#d-#b10.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* day goes from 1 (Monday) to 7 (Sunday).&amp;lt;br&amp;gt;&lt;br /&gt;
* hour goes from 00 to 23.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can specify multiple times commands to override the last one.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Backup file name macros=====&lt;br /&gt;
&lt;br /&gt;
You can use some macros for the backup filename:&lt;br /&gt;
&lt;br /&gt;
* #i - will be replaced with the current IP address&lt;br /&gt;
* #m - will be replaced with the current MAC address&lt;br /&gt;
* #d - will be replaced with date/time in format Ymd-His (20110231-111010)&lt;br /&gt;
* #bxx - will be replaced with the current backup index, whilst xx is the maximum index&lt;br /&gt;
&lt;br /&gt;
====Save configuration files/data====&lt;br /&gt;
&lt;br /&gt;
Open this link to see all available files/data/logs to download them manually.&lt;br /&gt;
&lt;br /&gt;
 Password files for web server authentication won&#039;t be saved!&lt;br /&gt;
&lt;br /&gt;
====Restore configuration files/data====&lt;br /&gt;
&lt;br /&gt;
Open this link to restore all available files/data.&lt;br /&gt;
&lt;br /&gt;
 Password files for web server authentication won&#039;t be restored!&lt;br /&gt;
&lt;br /&gt;
===Relay Hosts===&lt;br /&gt;
&lt;br /&gt;
The Application Platform contains a mail client which speaks SMTP. &lt;br /&gt;
The SMTP daemon (postfix) looks up by default the DNS MX record of the recipient email address.&amp;lt;br&amp;gt;&lt;br /&gt;
Relay SMTP hosts can also be configured to deliver the mails. Each relay host is related to a &#039;&#039;&#039;sender&#039;&#039;&#039; mail address or a &#039;&#039;&#039;sender&#039;&#039;&#039; mail domain. TLS is used if the host supports it.&amp;lt;br&amp;gt;&lt;br /&gt;
Examples of the server entry:&lt;br /&gt;
; mydomain.com: MX record to the domain&lt;br /&gt;
; smtphost: host name with MX record lookup&lt;br /&gt;
; [gateway.example.com]: host name with DNS lookup&lt;br /&gt;
; [an.ip.add.ress]: IP address without DNS lookup&lt;br /&gt;
The form [hostname] turns off MX lookups. See also [http://www.postfix.org/postconf.5.html#relayhost the postfix documentation].&amp;lt;br&amp;gt;&lt;br /&gt;
If anonymous SMTP is to be used, user and password must be left empty.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:relay_hosts.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Important to use &amp;quot;[]&amp;quot; like the picture.&lt;br /&gt;
&lt;br /&gt;
Currently innovaphone Reporting and innovaphone Faxserver are using these relay hosts, if entered.&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
&lt;br /&gt;
The innovaphone database is created to store e.g. relay hosts. &lt;br /&gt;
PostgreSQL is also available for other applications and any of them could create its own database. &lt;br /&gt;
&lt;br /&gt;
====Password====&lt;br /&gt;
&lt;br /&gt;
The database user is &#039;&#039;&#039;innovaphone&#039;&#039;&#039; with default password &#039;&#039;&#039;innovaphone&#039;&#039;&#039;. &lt;br /&gt;
This password may be changed here.&lt;br /&gt;
&lt;br /&gt;
====Remote Access====&lt;br /&gt;
&lt;br /&gt;
There are tools (PgAdmin III) that allow to connect to application databases remotely. &lt;br /&gt;
It is first needed to configure the IP you are connecting from here. (Only Single-IP entry it&#039;s allowed, no submask or wildcard for multiple IPs)&lt;br /&gt;
&lt;br /&gt;
For the PgAdmin III it is imporant to use innovaphone as Service-DB (Wartungs-DB). Default login credentials - User: innovaphone - Password: innovaphone&lt;br /&gt;
&lt;br /&gt;
===Announcements===&lt;br /&gt;
&lt;br /&gt;
You can upload a 16bit,8khz,mono wave file, which will be converted to G711U/G711A/G723/G729 .&amp;lt;br&amp;gt;&lt;br /&gt;
The converted files will be stored inside the webdav/announcements folder, e.g. http://172.16.111.111/webdav/announcements/test.g7xx&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you check the &#039;&#039;&#039;Return files as ZIP file&#039;&#039;&#039; flag, you will get a ZIP file, which contains the converted files. These files are not stored locally then! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For the new Codec G722, OPUS-NB and OPUS-WB you have to use the online converter available on my.innovaphone portal (login necessary first): https://my.innovaphone.com/support.php or on our website https://www.innovaphone.com/en/support/convert.html. No Conversion of new codecs is possible with Linux AP !&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
&lt;br /&gt;
===List===&lt;br /&gt;
&lt;br /&gt;
A list of all currently installed applications.&amp;lt;br&amp;gt;&lt;br /&gt;
If an application has an own web interface, you can reach it by using the application name link.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Uninstall====&lt;br /&gt;
Use the uninstall link in the list to uninstall an application.&lt;br /&gt;
&lt;br /&gt;
===Upload/Update===&lt;br /&gt;
&lt;br /&gt;
Here all new applications, application updates and application platform updates are installed.&amp;lt;br&amp;gt;&lt;br /&gt;
After uploading the file, the installation will start automatically and the installation process will be shown. The page refreshes until the installation has finished.&lt;br /&gt;
&lt;br /&gt;
==Diagnostics==&lt;br /&gt;
&lt;br /&gt;
===Logs===&lt;br /&gt;
&lt;br /&gt;
Here you can view, download or clear the available log files from the application platform or from installed applications.&amp;lt;br&amp;gt;&lt;br /&gt;
You can also download all log files at once (this archiv also contains older versions from the log files).&lt;br /&gt;
&lt;br /&gt;
===RPCAP===&lt;br /&gt;
&lt;br /&gt;
Enable/disable RPCAP for use with Wireshark.&amp;lt;br&amp;gt;&lt;br /&gt;
A link will be displayed, which you can use within Wireshark.&lt;br /&gt;
&lt;br /&gt;
===Alarm Server===&lt;br /&gt;
&lt;br /&gt;
Configure an innovaphone device as alarm server:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;ip&#039;&#039;&#039;: IP address of the innovaphone device&lt;br /&gt;
* [&#039;&#039;&#039;port&#039;&#039;&#039;]&lt;br /&gt;
* [&#039;&#039;&#039;user&#039;&#039;&#039;]: user for authentication to the alarm server &lt;br /&gt;
* [&#039;&#039;&#039;password&#039;&#039;&#039;]&lt;br /&gt;
* [&#039;&#039;&#039;https&#039;&#039;&#039;]: use https to send the alarm&lt;br /&gt;
&lt;br /&gt;
Options in &#039;&#039;&#039;[]&#039;&#039;&#039; are optional.&lt;br /&gt;
&lt;br /&gt;
 Alarms from installed applications or the application platform itself will be sent to this configured server.&lt;br /&gt;
&lt;br /&gt;
===Status===&lt;br /&gt;
&lt;br /&gt;
View the disk usage.&lt;br /&gt;
&lt;br /&gt;
===Reset===&lt;br /&gt;
====IPxx10====&lt;br /&gt;
&lt;br /&gt;
Shutdown the application platform. You&#039;ll have to restart it over the IPxx10 gateway.&lt;br /&gt;
&lt;br /&gt;
====VMWare====&lt;br /&gt;
&lt;br /&gt;
Shutdown the application platform or reboot it.&lt;br /&gt;
&lt;br /&gt;
===Status PHP script===&lt;br /&gt;
http://LinuxAP/status.php returns an XML file containing the output from the following linux commands:&amp;lt;br&amp;gt;&lt;br /&gt;
* df -H&lt;br /&gt;
* free -h&lt;br /&gt;
* uptime&lt;br /&gt;
* ps -wwweo pid,lstart,time,etime,pcpu,pmem,rsz,vsz,args&lt;br /&gt;
* ss -A inet -ap&lt;br /&gt;
* top -b -n 1&lt;br /&gt;
&lt;br /&gt;
==Use as Log or Alarm Server==&lt;br /&gt;
&lt;br /&gt;
You can use the application platform as a server for innovaphone logs.&amp;lt;br&amp;gt;&lt;br /&gt;
Configure Local-AP(-s)/Remote-AP(-s) on [[Reference10:Services/Logging]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
You have to add the following scripts as public web path to retrieve the logs/alarms:&lt;br /&gt;
* logs: /ap/log.fcgi&lt;br /&gt;
* alarms: /ap/alarm.fcgi&lt;br /&gt;
&lt;br /&gt;
So you can make the path &#039;&#039;&#039;/ap&#039;&#039;&#039; public on the &#039;&#039;Linux Web Server&#039;&#039; or you configure an authenticated URL for these files/this path on your &#039;&#039;innovaphone gateway&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If you configure an authenticated URL, don&#039;t forget to configure port 80 or port 443 for secure transport (Remote-AP-S) like&lt;br /&gt;
 https://111.111.111.111:443/ap or http://111.111.111.111:80/ap&lt;br /&gt;
&lt;br /&gt;
The log and alarm files will be saved unter http://LAP/webdav/log or /alarm. The files are rotated after 1 MB size and four times, so you&#039;ll have max 5 files.&lt;br /&gt;
&lt;br /&gt;
==Use as File/VM-Server==&lt;br /&gt;
&lt;br /&gt;
You can use the application platform as file server, e.g. for udpate scripts, voicemail etc.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access the server with a webdav client via &#039;&#039;&#039;http(s)://Linux-IP/webdav&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Public access to certain paths etc. can be configured under the [[Reference10:Concept_Linux_Application_Platform#Web_Server | web server configuration]].&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the Linux Filesystem(ext3) is case sensetive. The PBX will always search for lowercase letters. If you name your file ‘greetings.G711A’ it won’t be found. You have to name the file ‘greetings.g711a’.&lt;br /&gt;
&lt;br /&gt;
==Enable further Tracing==&lt;br /&gt;
There are different trace options, which can be enabled by calling a certain php script:&amp;lt;br&amp;gt;&lt;br /&gt;
 https://LINUX-IP/trace.php?level=127&lt;br /&gt;
&lt;br /&gt;
The level is calculated by the addition of one or multiple of the following trace options:&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 || &#039;&#039;&#039;Option&#039;&#039;&#039; || &#039;&#039;&#039;To add&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_STD || 1&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_DB || 2&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_TIME || 4&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_CALL_FLOW_TOTAL || 8&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_CALL_FLOW || 16&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_PARSE_CFG || 32&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_LDAP || 64&lt;br /&gt;
|-&lt;br /&gt;
 || TRACE_XML || 128&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So currently all trace options are enabled with the level &#039;&#039;&#039;255&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Default trace level are &amp;quot;0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
===Creating own applications===&lt;br /&gt;
See [[Reference10:Concept Linux Application]]&lt;br /&gt;
&lt;br /&gt;
===Tools===&lt;br /&gt;
&lt;br /&gt;
====WinSCP====&lt;br /&gt;
&lt;br /&gt;
[https://winscp.net WinSCP] is a usefull webdav client, which can be used to access webdav of the innovaphone application platform.&lt;br /&gt;
&lt;br /&gt;
====Putty====&lt;br /&gt;
&lt;br /&gt;
[http://www.putty.org/ Putty] is SSH client to connect to the linux application platform.&lt;br /&gt;
&lt;br /&gt;
===Manual Debian Upgrade===&lt;br /&gt;
If you have installed one of our upgrade hotfixes and you had installed packages, which weren&#039;t included in innovaphone applications, the upgrade of some packages might have failed. You will see a warning message on your application platform. Something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code type=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
The following packages couldn&#039;t be upgraded due to missing dependencies: php5-cgi php5-cli&lt;br /&gt;
Take a look at our wiki to see, what you have to do now!&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you have to perfom some actions yourself:&lt;br /&gt;
* make sure, your Linux Application Platform has internet access&lt;br /&gt;
* login with a terminal client like Putty&lt;br /&gt;
* start &#039;apt-get update&#039;&lt;br /&gt;
* start &#039;apt-get install php5-cgi php5-cli&#039; (list the packages of the warning message)&lt;br /&gt;
* delete the file /var/www/innovaphone/log/missing_packages.log to clear the warning message:&lt;br /&gt;
** rm /var/www/innovaphone/log/missing_packages.log&lt;br /&gt;
&lt;br /&gt;
Your installation should be now up to date again.&lt;br /&gt;
&lt;br /&gt;
===Configuring a new Kernel===&lt;br /&gt;
If you have installed a hotfix with a new kernel, you will see a warning message on your application platform. Something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code type=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
You&#039;re not running the latest kernel Image-6010-3.4.10!&lt;br /&gt;
Take a look at our wiki to see, what you have to do now!&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change to the new kernel, you have to reconfigure something on your device, where the CF card is plugged in.&lt;br /&gt;
* First shutdown your Linux (see [[ Reference10:Concept_Linux_Application_Platform#IPxx10 ]])&lt;br /&gt;
* Stop Linux under [[ Reference10:Linux/General ]]&lt;br /&gt;
* Configure the latest kernel file (currently &amp;lt;code&amp;gt;Image-6010-3.4.10&amp;lt;/code&amp;gt;) under [[ Reference10:Linux/General ]] &#039;&#039;&#039;Linux kernel file&#039;&#039;&#039;&lt;br /&gt;
* Start Linux under [[ Reference10:Linux/General ]]&lt;br /&gt;
&lt;br /&gt;
===Alarms of the Application Platform===&lt;br /&gt;
If you have configured an [[ #Alarm_Server | Alarm Server]], you will receive certain alarms.&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, the following alarms exist:&lt;br /&gt;
&lt;br /&gt;
* Disk Usage &amp;gt;= 90%&lt;br /&gt;
* read-only mounted partition&lt;br /&gt;
* bad blocks on CF cards&lt;br /&gt;
* Alarms for the innovaphone Reporting Application, if installed&lt;br /&gt;
* Alarms for the innovaphone Exchange Calendar Connector Application, if installed&lt;br /&gt;
* Alarms for the innovaphone Faxserver Application, if installed&lt;br /&gt;
&lt;br /&gt;
===Initially installed packages===&lt;br /&gt;
&lt;br /&gt;
The following packages are already installed without any application:&lt;br /&gt;
&lt;br /&gt;
* adduser&lt;br /&gt;
* apt&lt;br /&gt;
* apt-utils&lt;br /&gt;
* aptitude&lt;br /&gt;
* aptitude-common&lt;br /&gt;
* base-files&lt;br /&gt;
* base-passwd&lt;br /&gt;
* bash&lt;br /&gt;
* binutils&lt;br /&gt;
* bsdmainutils&lt;br /&gt;
* bsdutils&lt;br /&gt;
* bzip2&lt;br /&gt;
* ca-certificates&lt;br /&gt;
* comerr-dev&lt;br /&gt;
* coreutils&lt;br /&gt;
* cpio&lt;br /&gt;
* cpp&lt;br /&gt;
* cpp-4.7&lt;br /&gt;
* cpp-4.6&lt;br /&gt;
* cron&lt;br /&gt;
* curl&lt;br /&gt;
* dash&lt;br /&gt;
* db-util&lt;br /&gt;
* db5.1-util&lt;br /&gt;
* debconf&lt;br /&gt;
* debconf-i18n&lt;br /&gt;
* debian-archive-keyring&lt;br /&gt;
* debianutils&lt;br /&gt;
* diffutils&lt;br /&gt;
* dmidecode&lt;br /&gt;
* dmsetup&lt;br /&gt;
* dos2unix&lt;br /&gt;
* dovecot-common&lt;br /&gt;
* dovecot-core&lt;br /&gt;
* dovecot-pgsql&lt;br /&gt;
* dovecot-pop3d&lt;br /&gt;
* dovecot-sieve&lt;br /&gt;
* dpkg&lt;br /&gt;
* e2fslibs&lt;br /&gt;
* e2fsprogs&lt;br /&gt;
* file&lt;br /&gt;
* findutils&lt;br /&gt;
* gamin&lt;br /&gt;
* gcc&lt;br /&gt;
* gcc-4.7&lt;br /&gt;
* gcc-4.6&lt;br /&gt;
* gcc-4.6-base&lt;br /&gt;
* gcc-4.7-base&lt;br /&gt;
* gettext-base&lt;br /&gt;
* gnupg&lt;br /&gt;
* gpgv&lt;br /&gt;
* grep&lt;br /&gt;
* groff-base&lt;br /&gt;
* grub-common&lt;br /&gt;
* grub-legacy&lt;br /&gt;
* gzip&lt;br /&gt;
* hdparm&lt;br /&gt;
* hostname&lt;br /&gt;
* ifupdown&lt;br /&gt;
* info&lt;br /&gt;
* initramfs-tools&lt;br /&gt;
* initscripts&lt;br /&gt;
* insserv&lt;br /&gt;
* install-info&lt;br /&gt;
* iproute&lt;br /&gt;
* iptables&lt;br /&gt;
* iputils-ping&lt;br /&gt;
* isc-dhcp-client&lt;br /&gt;
* isc-dhcp-common&lt;br /&gt;
* klibc-utils&lt;br /&gt;
* kmod&lt;br /&gt;
* krb5-multidev&lt;br /&gt;
* libacl1&lt;br /&gt;
* libapt-inst1.5&lt;br /&gt;
* libapt-pkg4.12&lt;br /&gt;
* libasprintf0c2&lt;br /&gt;
* libattr1&lt;br /&gt;
* libblkid1&lt;br /&gt;
* libboost-iostreams1.49.0&lt;br /&gt;
* libbsd0&lt;br /&gt;
* libbz2-1.0&lt;br /&gt;
* libbz2-dev&lt;br /&gt;
* libc-bin&lt;br /&gt;
* libc-client2007e&lt;br /&gt;
* libc-dev-bin&lt;br /&gt;
* libc6&lt;br /&gt;
* libc6-dev&lt;br /&gt;
* libcap2&lt;br /&gt;
* libclass-isa-perl&lt;br /&gt;
* libcomerr2&lt;br /&gt;
* libcurl3&lt;br /&gt;
* libcurl4-openssl-dev&lt;br /&gt;
* libcwidget3&lt;br /&gt;
* libdb5.1&lt;br /&gt;
* libdevmapper1.02.1&lt;br /&gt;
* libedit2&lt;br /&gt;
* libept1.4.12&lt;br /&gt;
* libexpat1&lt;br /&gt;
* libfcgi-dev&lt;br /&gt;
* libfcgi0ldbl&lt;br /&gt;
* libffi5&lt;br /&gt;
* libfreetype6&lt;br /&gt;
* libfuse2&lt;br /&gt;
* libgamin-dev&lt;br /&gt;
* libgamin0&lt;br /&gt;
* libgcc1&lt;br /&gt;
* libgcrypt11&lt;br /&gt;
* libgcrypt11-dev&lt;br /&gt;
* libgdbm-dev&lt;br /&gt;
* libgdbm3&lt;br /&gt;
* libglib2.0-0&lt;br /&gt;
* libgmp10&lt;br /&gt;
* libgnutls-dev&lt;br /&gt;
* libgnutls-openssl27&lt;br /&gt;
* libgnutls26&lt;br /&gt;
* libgnutlsxx27&lt;br /&gt;
* libgomp1&lt;br /&gt;
* libgpg-error-dev&lt;br /&gt;
* libgpg-error0&lt;br /&gt;
* libgpgme11&lt;br /&gt;
* libgpm2&lt;br /&gt;
* libgssapi-krb5-2&lt;br /&gt;
* libgssrpc4&lt;br /&gt;
* libidn11&lt;br /&gt;
* libidn11-dev&lt;br /&gt;
* libitm1&lt;br /&gt;
* libk5crypto3&lt;br /&gt;
* libkadm5clnt-mit8&lt;br /&gt;
* libkadm5srv-mit8&lt;br /&gt;
* libkdb5-6&lt;br /&gt;
* libkeyutils1&lt;br /&gt;
* libklibc&lt;br /&gt;
* libkmod2&lt;br /&gt;
* libkrb5-3&lt;br /&gt;
* libkrb5-dev&lt;br /&gt;
* libkrb5support0&lt;br /&gt;
* libldap-2.4-2&lt;br /&gt;
* libldap2-dev&lt;br /&gt;
* liblocale-gettext-perl&lt;br /&gt;
* liblzma5&lt;br /&gt;
* libmagic1&lt;br /&gt;
* libmemcache-dev&lt;br /&gt;
* libmemcache0&lt;br /&gt;
* libmount1&lt;br /&gt;
* libmpc2&lt;br /&gt;
* libmpfr4&lt;br /&gt;
* libmysqlclient18&lt;br /&gt;
* libncurses5&lt;br /&gt;
* libncursesw5&lt;br /&gt;
* libnewt0.52&lt;br /&gt;
* libnfnetlink0&lt;br /&gt;
* libonig2&lt;br /&gt;
* libopts25&lt;br /&gt;
* libp11-kit-dev&lt;br /&gt;
* libp11-kit0&lt;br /&gt;
* libpam-modules&lt;br /&gt;
* libpam-modules-bin&lt;br /&gt;
* libpam-pgsql&lt;br /&gt;
* libpam-runtime&lt;br /&gt;
* libpam0g&lt;br /&gt;
* libpam0g-dev&lt;br /&gt;
* libparted0debian1&lt;br /&gt;
* libpcre3&lt;br /&gt;
* libpcre3-dev&lt;br /&gt;
* libpcrecpp0&lt;br /&gt;
* libpipeline1&lt;br /&gt;
* libpng12-0&lt;br /&gt;
* libpng12-dev&lt;br /&gt;
* libpopt0&lt;br /&gt;
* libpq-dev&lt;br /&gt;
* libpq5&lt;br /&gt;
* libprocps0&lt;br /&gt;
* libpth20&lt;br /&gt;
* libqdbm14&lt;br /&gt;
* libquadmath0&lt;br /&gt;
* libreadline6&lt;br /&gt;
* librtmp-dev&lt;br /&gt;
* librtmp0&lt;br /&gt;
* libsasl2-2&lt;br /&gt;
* libsasl2-modules&lt;br /&gt;
* libselinux1&lt;br /&gt;
* libsemanage-common&lt;br /&gt;
* libsemanage1&lt;br /&gt;
* libsepol1&lt;br /&gt;
* libsigc++-2.0-0c2a&lt;br /&gt;
* libslang2&lt;br /&gt;
* libsqlite3-0&lt;br /&gt;
* libsqlite3-dev&lt;br /&gt;
* libss2&lt;br /&gt;
* libssh2-1&lt;br /&gt;
* libssh2-1-dev&lt;br /&gt;
* libssl-dev&lt;br /&gt;
* libssl1.0.0&lt;br /&gt;
* libstdc++6&lt;br /&gt;
* libtasn1-3&lt;br /&gt;
* libtasn1-3-dev&lt;br /&gt;
* libtext-charwidth-perl&lt;br /&gt;
* libtext-iconv-perl&lt;br /&gt;
* libtext-wrapi18n-perl&lt;br /&gt;
* libtinfo5&lt;br /&gt;
* libtokyocabinet9&lt;br /&gt;
* libudev0&lt;br /&gt;
* libusb-0.1-4&lt;br /&gt;
* libustr-1.0-1&lt;br /&gt;
* libuuid-perl&lt;br /&gt;
* libuuid1&lt;br /&gt;
* libwrap0&lt;br /&gt;
* libxapian22&lt;br /&gt;
* libxml2&lt;br /&gt;
* libxml2-dev&lt;br /&gt;
* libxml2-utils&lt;br /&gt;
* linux-base&lt;br /&gt;
* linux-image-3.2.0-4-686-pae&lt;br /&gt;
* linux-libc-dev&lt;br /&gt;
* locales&lt;br /&gt;
* login&lt;br /&gt;
* logrotate&lt;br /&gt;
* lsb-base&lt;br /&gt;
* lsb-release&lt;br /&gt;
* make&lt;br /&gt;
* makedev&lt;br /&gt;
* man-db&lt;br /&gt;
* manpages&lt;br /&gt;
* manpages-dev&lt;br /&gt;
* mawk&lt;br /&gt;
* mime-support&lt;br /&gt;
* mlock&lt;br /&gt;
* module-init-tools&lt;br /&gt;
* mount&lt;br /&gt;
* multiarch-support&lt;br /&gt;
* mysql-common&lt;br /&gt;
* nano&lt;br /&gt;
* ncurses-base&lt;br /&gt;
* ncurses-bin&lt;br /&gt;
* net-tools&lt;br /&gt;
* netbase&lt;br /&gt;
* netcat-traditional&lt;br /&gt;
* ntp&lt;br /&gt;
* ntpdate&lt;br /&gt;
* openssh-client&lt;br /&gt;
* openssh-server&lt;br /&gt;
* openssl&lt;br /&gt;
* parted&lt;br /&gt;
* passwd&lt;br /&gt;
* patch&lt;br /&gt;
* perl-base&lt;br /&gt;
* php-pear&lt;br /&gt;
* php-xml-parser&lt;br /&gt;
* php-xml-serializer&lt;br /&gt;
* php5-cgi&lt;br /&gt;
* php5-cli&lt;br /&gt;
* php5-common&lt;br /&gt;
* php5-curl&lt;br /&gt;
* php5-imap&lt;br /&gt;
* php5-pgsql&lt;br /&gt;
* php5-xcache&lt;br /&gt;
* pkg-config&lt;br /&gt;
* postfix&lt;br /&gt;
* postfix-pcre&lt;br /&gt;
* postfix-pgsql&lt;br /&gt;
* postgresql-9.1&lt;br /&gt;
* postgresql-client-9.1&lt;br /&gt;
* postgresql-client-common&lt;br /&gt;
* postgresql-common&lt;br /&gt;
* procps&lt;br /&gt;
* psmisc&lt;br /&gt;
* python&lt;br /&gt;
* python-minimal&lt;br /&gt;
* python2.7&lt;br /&gt;
* python2.7-minimal&lt;br /&gt;
* rdate&lt;br /&gt;
* readline-common&lt;br /&gt;
* rsyslog&lt;br /&gt;
* sasl2-bin&lt;br /&gt;
* sed&lt;br /&gt;
* sensible-utils&lt;br /&gt;
* shared-mime-info&lt;br /&gt;
* ssh&lt;br /&gt;
* ssl-cert&lt;br /&gt;
* sudo&lt;br /&gt;
* sysv-rc&lt;br /&gt;
* sysvinit&lt;br /&gt;
* sysvinit-utils&lt;br /&gt;
* tar&lt;br /&gt;
* tasksel&lt;br /&gt;
* tasksel-data&lt;br /&gt;
* traceroute&lt;br /&gt;
* tzdata&lt;br /&gt;
* ucf&lt;br /&gt;
* udev&lt;br /&gt;
* util-linux&lt;br /&gt;
* uuid-dev&lt;br /&gt;
* vim&lt;br /&gt;
* vim-common&lt;br /&gt;
* vim-runtime&lt;br /&gt;
* vim-tiny&lt;br /&gt;
* wget&lt;br /&gt;
* whiptail&lt;br /&gt;
* xz-utils&lt;br /&gt;
* zlib1g&lt;br /&gt;
* zlib1g-dev&lt;br /&gt;
* lighttpd-mod-webdav&lt;br /&gt;
* lighttpd&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
=== Do not update Debian Packages ===&lt;br /&gt;
The Linux application platform comes with the tested set of required Debian packages.  &#039;&#039;It is not recommended to do a manual update of those packages&#039;&#039; (or the kernel itself).  We have seen situations where updated packages had been changed in a non-downward compatible fashion - resulting in the applications running on the Linux application platform not working properly an more!&lt;br /&gt;
&lt;br /&gt;
===Separate authentication for innovaphone applications===&lt;br /&gt;
If you configured a separate authentication, it depends on the used browser, whether you have to re-authenticate on switching between the root web and the innovaphone application web access or not.&lt;br /&gt;
&lt;br /&gt;
===Refreshing issue on hotfix installation===&lt;br /&gt;
[[ Reference10:Concept_Linux_Application_Platform#Refreshing_issue_on_installation | See here. ]]&lt;br /&gt;
&lt;br /&gt;
===Kernel Update in VM Platform===&lt;br /&gt;
The installation of a new kernel fails and this process leaves the system unstable, not being able to install any more debian packages. Hotfix installations will probably fail.&lt;br /&gt;
&lt;br /&gt;
===Outdated packages? Debian Upgrade?===&lt;br /&gt;
From time to time we will deliver upgraded debian packages with a new hotfix. As we have to insure compatibility with our applications, we won&#039;t perform an upgrade for each hotfix!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Please do &#039;&#039;&#039;not&#039;&#039;&#039; perform an update/upgrade yourself, as this will break future hotfix/application releases. Sometimes we deliver debian packages in our hotfixes and dependencies might be broken if you update/upgrade yourself.&lt;br /&gt;
&lt;br /&gt;
====I want to do it anyway!!!====&lt;br /&gt;
Ok, save your application/ap configuration and data files and install our latest &#039;&#039;&#039;FULL&#039;&#039;&#039; release without any hotfix. Restore the configuration/data files and perform your update/upgrade. Now you can be happy, if everything still works fine...&amp;lt;br&amp;gt;&lt;br /&gt;
Perform these steps for each new hotfix release, as you might not be able to apply a new hotfix.&lt;br /&gt;
&lt;br /&gt;
=== Database Performance Issues ===&lt;br /&gt;
When you run many applications on your LAP (for example, Reporting or Fax for many PBXs), you may run into database performance issues.  In this case, you will see messages like&lt;br /&gt;
&lt;br /&gt;
 LOG:  checkpoints are occurring too frequently (29 seconds apart)&lt;br /&gt;
 HINT:  Consider increasing the configuration parameter &amp;quot;checkpoint_segments&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
in the postgresql log file.  To fix this, you may carefully increase the setting of &amp;lt;code&amp;gt;checkpoint_segments&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/postgresql/9.1/main/postgresql.conf&amp;lt;/code&amp;gt;.  By default, this value is not set (commented out):&lt;br /&gt;
&lt;br /&gt;
 #checkpoint_segments = 3  # in logfile segments, min 1, 16MB each&lt;br /&gt;
&lt;br /&gt;
You can change this to 10&lt;br /&gt;
&lt;br /&gt;
 checkpoint_segments = 10  # in logfile segments, min 1, 16MB each&lt;br /&gt;
&lt;br /&gt;
(note the removed comment introducer at the beginning of the line).  Please note that this will take 112MB more disk space on the LAP, so be sure you have enough. &lt;br /&gt;
&lt;br /&gt;
For more details on postgresql tuning, see https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server.&lt;br /&gt;
&lt;br /&gt;
Note that you may need to re-apply this change when you have installed a LAP update.&lt;br /&gt;
&lt;br /&gt;
==How To==&lt;br /&gt;
===Reset webserver/webdav passwords===&lt;br /&gt;
In case you have lost your webserver or webdav password, but you still have the root credentials, you can login with SSH and execute the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code type=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;admin:Linux Web Server:c33c4d3f554367d5d1c3c9bf36803024&amp;quot; &amp;gt; /home/lighttpd/lighttpd_htdigest.user&lt;br /&gt;
echo &amp;quot;admin:Linux Webdav:7182e328a0531dd2d44d225f36da6b87&amp;quot; &amp;gt; /home/lighttpd/webdav_htdigest.user&lt;br /&gt;
/etc/init.d/lighttpd restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards you can access your webserver/webdav with &#039;&#039;&#039;admin&#039;&#039;&#039;/&#039;&#039;&#039;linux&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 The same can be done for application specific passwords, e.g. Reporting. &lt;br /&gt;
 In this case, use the file &#039;&#039;&#039;/home/lighttpd/innovaphone-reporting-htdigest.user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==TroubleShooting==&lt;br /&gt;
&lt;br /&gt;
===Installation process failed===&lt;br /&gt;
&lt;br /&gt;
When the installation process stuck either because it doesn&#039;t get IP or services are not refresh/finished there is some additional information we could get from the Compact Flash that could help us understanding what is failing and if necessary open a support ticket and include this information in the ticket to innovaphone.&lt;br /&gt;
&lt;br /&gt;
*  Stop the linux and check General-&amp;gt;Compact Flash &amp;quot;Browse files&amp;quot;. All files in there might be helpfull (all but the kernel, of course).&lt;br /&gt;
*  Start the linux and check if you can connect to the configured/expected IP address via Putty after ~1 minute.&lt;br /&gt;
&lt;br /&gt;
Note: The file /var/log/init_install.log might help us to get a clue of the failure.&lt;br /&gt;
&lt;br /&gt;
===Howto save and restore Linux AP data/database if the webgui is not available===&lt;br /&gt;
&lt;br /&gt;
If the linux ap webgui is not reachable a common reason is that the harddisc is full.&lt;br /&gt;
If a full hd is the case, maybe your first thought is to increase the harddisc.&lt;br /&gt;
It could be a solution but there are some traps to increase the partition in linux which can be ended in complete data loss&lt;br /&gt;
&lt;br /&gt;
The fastest way to get linux ap working with a new harddsik size is to install a new one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;How can you save the data without get access over the webgui?&#039;&#039;&#039;&lt;br /&gt;
If you can reach linux via putty it could be possible :)&lt;br /&gt;
&lt;br /&gt;
Here are some possibilities how to do that over the shell:&lt;br /&gt;
&#039;&#039;&#039;(But keep in the back of you head that you are working as root and therefore typing errors can lead to undesirable behaviours!)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Delete at first all the logfiles. Sometimes a few MByte are enough to get all the stopped services running again and you could reach liunx over the webgui.&lt;br /&gt;
i.e. the reporting logfiles are under &amp;quot;&#039;&#039;/var/www/innovaphone/apps/innovaphone-reporting/log&#039;&#039;&amp;quot;, the fax server logfiles are under &lt;br /&gt;
&amp;quot;&#039;&#039;/var/www/innovaphone/apps/innovaphone-faxserver/log&#039;&#039;&amp;quot;&lt;br /&gt;
-&amp;gt; &#039;&#039;&#039;Don&#039;t delete the &#039;log&#039; directory itself!&#039;&#039;&#039; Delete only the content:&lt;br /&gt;
&lt;br /&gt;
   root@vmware-debian: cd /var/www/innovaphone/apps/innovaphone-reporting/log/&lt;br /&gt;
   root@vmware-debian: rm *&lt;br /&gt;
&lt;br /&gt;
Is the linux ap after a restart running and over http reachable, download all the config and databases and restore them on the new linux ap (2.2).&lt;br /&gt;
&lt;br /&gt;
[[image:save.png]]&lt;br /&gt;
&lt;br /&gt;
2. In case the reason for the unreachable webgui was not a full harddisk you can save the config/database (only reporting and exchange connector at the moment) &lt;br /&gt;
over the shell.&lt;br /&gt;
&lt;br /&gt;
  root@vmware-debian:/# cd /home/postgres/&lt;br /&gt;
  &#039;&#039;for reporting type:&#039;&#039;&lt;br /&gt;
  root@vmware-debian:/# sudo -u postgres /usr/bin/pg_dump --encoding=utf8 --schema=public -Fc -U postgres innovaphone-reporting | gzip -fc6 &amp;gt; innovaphone-reporting-db.gz&lt;br /&gt;
&lt;br /&gt;
  root@vmware-debian:/# cd /home/postgres/&lt;br /&gt;
  &#039;&#039;for exchange connector type:&#039;&#039;&lt;br /&gt;
  root@vmware-debian:/# sudo -u postgres /usr/bin/pg_dump --encoding=utf8 --schema=public -Fc -U postgres innovaphone-exchange | gzip -fc6 &amp;gt; innovaphone-exchange-db.gz&lt;br /&gt;
&lt;br /&gt;
2.1 Access linux with winscp &#039;&#039;&#039;(protocol: scp / user: root)&#039;&#039;&#039; and download the .gz (don&#039;t unzip)&lt;br /&gt;
&lt;br /&gt;
[[image:reporting.png]]&lt;br /&gt;
&lt;br /&gt;
(BTW: you can &#039;&#039;&#039;download&#039;&#039;&#039; with &#039;&#039;&#039;scp&#039;&#039;&#039; also the complete webdav files. But for the &#039;&#039;&#039;upload&#039;&#039;&#039; use as user &#039;admin&#039; and as protocol &amp;quot;&#039;&#039;&#039;webdav&#039;&#039;&#039;&amp;quot;. &lt;br /&gt;
Otherwise the owner is still root and this ends in authorization problems)&lt;br /&gt;
&lt;br /&gt;
[[image:webdav.png]]&lt;br /&gt;
&lt;br /&gt;
2.2. on the new linux ap upload this .gz&lt;br /&gt;
&lt;br /&gt;
[[image:restore.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. The steps mentioned above should be only the last try to get the data and could work or not.&lt;br /&gt;
To be always on the save site use a standby Linux (for reporting), save configs (update server) and delete (automatic) old cdr&#039;s to avoid a full hd.&lt;br /&gt;
&lt;br /&gt;
=== How to recover from a broken File System ===&lt;br /&gt;
Sometimes you may find messages in the &#039;&#039;kern.log&#039;&#039; log file (in &#039;&#039;var/log&#039;&#039;) like&lt;br /&gt;
&lt;br /&gt;
 Aug 15 10:45:31 ip6010-debian kernel: EXT4-fs (sda4): initial error at 1500329378: ext4_journal_start_sb:328&lt;br /&gt;
 Aug 15 10:45:31 ip6010-debian kernel: EXT4-fs (sda4): last error at 1500329378: ext4_journal_start_sb:328&lt;br /&gt;
&lt;br /&gt;
This indicates a file system failure on the Linux Installation.&lt;br /&gt;
&lt;br /&gt;
When the Linux file system is broken, you can try to repair it using some command line Linux tools.&lt;br /&gt;
&lt;br /&gt;
* Open the WebGUI of the gateway running your LAP and proceed to &#039;&#039;Linux/General&#039;&#039;&lt;br /&gt;
** terminate Linux (&#039;&#039;Status/Stop&#039;&#039;)&lt;br /&gt;
** modify the &#039;&#039;Kernel command line&#039;&#039; from &#039;&#039;root=/dev/sda4&#039;&#039; to &amp;lt;code&amp;gt;root=/dev/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
** start Linux again&lt;br /&gt;
:: This will run Linux on another (hopefully sane) partition.&lt;br /&gt;
&lt;br /&gt;
* use [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html putty] to log in to the LAP&#039;s command line&lt;br /&gt;
** on the command prompt, use &amp;lt;code&amp;gt;e2fsck -p -f /dev/sda4&amp;lt;/code&amp;gt;&lt;br /&gt;
:: this should fix any issue on the file system&lt;br /&gt;
&lt;br /&gt;
* go back to the WebGUI of the gateway running your LAP and proceed to &#039;&#039;Linux/General&#039;&#039;&lt;br /&gt;
** terminate Linux (&#039;&#039;Status/Stop&#039;&#039;)&lt;br /&gt;
** modify the &#039;&#039;Kernel command line&#039;&#039; from &#039;&#039;root=/dev/sda2&#039;&#039; to &amp;lt;code&amp;gt;root=/dev/sda4&amp;lt;/code&amp;gt;&lt;br /&gt;
** start Linux again&lt;br /&gt;
:: This will run Linux on the original partition.&lt;br /&gt;
&lt;br /&gt;
If this doesn&#039;t fix your issue, you need to replace the SSD with a new one, re-install the LAP and any applications and restore your backups. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;internal&amp;gt;&lt;br /&gt;
Internal: How to recover from a disk-is-full Condition: [http://wiki-intern.innovaphone.com/index.php?title=Reporting#Vergr.C3.B6.C3.9Fern_der_Partition_.28VM.29]&lt;br /&gt;
&amp;lt;/internal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
* [[Howto:Convert a V10 LinuxAP to VHDX to run on Hyper-V]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Concept|Linux Application Platform]]&lt;/div&gt;</summary>
		<author><name>RobinBaur</name></author>
	</entry>
</feed>