<?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=Muschelpuster</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=Muschelpuster"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/Muschelpuster"/>
	<updated>2026-05-05T21:10:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=78464</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=78464"/>
		<updated>2025-11-17T16:16:41Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* after global config set give all Fax another config*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{{Template:3rd Party Input}}&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Setting an only int cfnr for all users ===&lt;br /&gt;
&lt;br /&gt;
This is required, for example, for softphones that are not registered and internal callers should receive an announcement.&lt;br /&gt;
&lt;br /&gt;
For this you have to enable the Call forward on myApps offline checkbox.&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164] -&amp;gt; + cd/@type = cfnr&lt;br /&gt;
Search for the empty cfnr and add the &lt;br /&gt;
 /user[not(pseudo)][@e164]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88 (or +ep/@h323 = Object-Name) &lt;br /&gt;
Add another + and add &lt;br /&gt;
 + src/@type = do&lt;br /&gt;
&lt;br /&gt;
Finally, set the only int flag:&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164]/cd/src -&amp;gt; + ep/@ext = false&lt;br /&gt;
&lt;br /&gt;
=== Disable all forkings with app rcc at node &#039;Testnode&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@node=&amp;quot;Testnode&amp;quot;]/fork[@app=&amp;quot;rcc&amp;quot;][not(@off)] -&amp;gt; + @off = true&lt;br /&gt;
&lt;br /&gt;
=== Give visibility-entries the flag &#039;visible&#039; ===&lt;br /&gt;
This is a helpful job for migrations from V12 to set this in V13 new flag.&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164]/allow[not(@visible)] -&amp;gt; + @visible = true&lt;br /&gt;
or this example to remove the visibility flags for all users - new visibility flags can then be rolled out using a Config Template&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, *)] -&amp;gt; -allow&lt;br /&gt;
&lt;br /&gt;
=== Replace all user passwords on users which already have set a password with &#039;1234&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@pwd]  -&amp;gt; + @pwd = 1234&lt;br /&gt;
&lt;br /&gt;
=== Move all members of Node &#039;node_old&#039; to &#039;node_new&#039; ===&lt;br /&gt;
 /user[@node=&amp;quot;_node_HQ&amp;quot;]  -&amp;gt; + @node = node_new&lt;br /&gt;
Be careful by moving from node &#039;root&#039;, maybe you should use more filter options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Remove Group Indications ===&lt;br /&gt;
 /user[not(pseudo) ] [@gi] -&amp;gt;  -@gi&lt;br /&gt;
&lt;br /&gt;
=== Give all Users with a number and without a config template the template &#039;new_template&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][not(@config)] -&amp;gt; + @config = new_template&lt;br /&gt;
&lt;br /&gt;
==== Give all users whose name starts with &#039;Fax&#039; an having the config template &#039;New_template&#039; the template &#039;new_template_fax&#039; ====&lt;br /&gt;
  /user[not(pseudo) and starts-with(@cn, &amp;quot;Fax&amp;quot;) and @config= &amp;quot;_new_template_fax&amp;quot;] -&amp;gt; + @config = new_template&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=78463</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=78463"/>
		<updated>2025-11-17T15:14:05Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* reformating &amp;#039;Remove Group Identication&amp;#039; and added &amp;#039;template for users without an configured template*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{{Template:3rd Party Input}}&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Setting an only int cfnr for all users ===&lt;br /&gt;
&lt;br /&gt;
This is required, for example, for softphones that are not registered and internal callers should receive an announcement.&lt;br /&gt;
&lt;br /&gt;
For this you have to enable the Call forward on myApps offline checkbox.&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164] -&amp;gt; + cd/@type = cfnr&lt;br /&gt;
Search for the empty cfnr and add the &lt;br /&gt;
 /user[not(pseudo)][@e164]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88 (or +ep/@h323 = Object-Name) &lt;br /&gt;
Add another + and add &lt;br /&gt;
 + src/@type = do&lt;br /&gt;
&lt;br /&gt;
Finally, set the only int flag:&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164]/cd/src -&amp;gt; + ep/@ext = false&lt;br /&gt;
&lt;br /&gt;
=== Disable all forkings with app rcc at node &#039;Testnode&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@node=&amp;quot;Testnode&amp;quot;]/fork[@app=&amp;quot;rcc&amp;quot;][not(@off)] -&amp;gt; + @off = true&lt;br /&gt;
&lt;br /&gt;
=== Give visibility-entries the flag &#039;visible&#039; ===&lt;br /&gt;
This is a helpful job for migrations from V12 to set this in V13 new flag.&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164]/allow[not(@visible)] -&amp;gt; + @visible = true&lt;br /&gt;
or this example to remove the visibility flags for all users - new visibility flags can then be rolled out using a Config Template&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, *)] -&amp;gt; -allow&lt;br /&gt;
&lt;br /&gt;
=== Replace all user passwords on users which already have set a password with &#039;1234&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@pwd]  -&amp;gt; + @pwd = 1234&lt;br /&gt;
&lt;br /&gt;
=== Move all members of Node &#039;node_old&#039; to &#039;node_new&#039; ===&lt;br /&gt;
 /user[@node=&amp;quot;_node_HQ&amp;quot;]  -&amp;gt; + @node = node_new&lt;br /&gt;
Be careful by moving from node &#039;root&#039;, maybe you should use more filter options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Remove Group Indications ===&lt;br /&gt;
 /user[not(pseudo) ] [@gi] -&amp;gt;  -@gi&lt;br /&gt;
&lt;br /&gt;
=== Give all Users with a number and without a config template the template &#039;new_template&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][not(@config)] -&amp;gt; + @config = new_template&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:PBX/Objects/LDAP&amp;diff=78374</id>
		<title>Reference13r2:PBX/Objects/LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:PBX/Objects/LDAP&amp;diff=78374"/>
		<updated>2025-10-27T18:41:26Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* innovaphone PBX (searching for WQs) */ -&amp;gt; expanded with examles for call broadcast und WQ &amp;amp; CB together&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__toc__&lt;br /&gt;
&lt;br /&gt;
The LDAP object is an adapter between an LDAP directory and contact search inside myApps.&lt;br /&gt;
&lt;br /&gt;
The search functionality is provided as a hidden app that has the same name as the LDAP object. The hidden app provides the client API &amp;quot;com.innovaphone.search&amp;quot; that can be used by other apps like the phone or softphone app to display contacts from the configured LDAP directory.&lt;br /&gt;
&lt;br /&gt;
Note: To activate the LDAP search for users, you need to give them access to the hidden app at the user object or a suitable template.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:EstosMetaV13-4.PNG|Sample]]]&lt;br /&gt;
&lt;br /&gt;
Note: The LDAP object is only intended for third-party LDAP servers:&lt;br /&gt;
* The innovaphone PBX has its own search provider that comes with the Users App.&lt;br /&gt;
* innovaphone Contacts has its own search provider.&lt;br /&gt;
&lt;br /&gt;
== General Configuration Options ==&lt;br /&gt;
&lt;br /&gt;
; Long Name: must be unique in the PBX.&lt;br /&gt;
; Name:	the ID of the app object.&lt;br /&gt;
; Password: choose any strong password. Both users and administrators don&#039;t need to know it, in order to use the LDAP search.&lt;br /&gt;
&lt;br /&gt;
== Server ==&lt;br /&gt;
In this tab the LDAP server and the LDAP credentials are configured.&lt;br /&gt;
&lt;br /&gt;
;Enable: This checkmark enables/disables the whole search functionality of the object.&lt;br /&gt;
;Host: DNS name or IP address of the LDAP server.&lt;br /&gt;
;Port: TCP port number of the LDAP server. Standard ports are 389 for LDAP and 636 for LDAPS (LDAP over TLS).&lt;br /&gt;
;TLS: Enables LDAPS (secure connection using TLS).&lt;br /&gt;
;User: Username for authenticating at the LDAP server.&lt;br /&gt;
;Password: Password for authenticating at the LDAP server.&lt;br /&gt;
&lt;br /&gt;
== Search ==&lt;br /&gt;
In this tab the LDAP attributes are configured that shall be used for the LDAP search request.&lt;br /&gt;
&lt;br /&gt;
;Search Base: The search base inside the directory. Leave empty to search in the root of the directory. The search base may contain a placeholder $s that is replaced by the SIP URI of the user. This can be used to search in private phone books in directories like C4B.&lt;br /&gt;
;Object Filter: An additional object filter that can be used to hide entries from the search results.&lt;br /&gt;
;Meta Name Attribute: If the directory supports full text search (like innovaphone Contacts or Estos Meta Directory) please configure the attribute for full text search here and leave the &amp;quot;Search Attribute&amp;quot; fields empty.&lt;br /&gt;
;Search Attribute: For directories that don&#039;t support full text search (like the innovaphone PBX) you can configure up to 4 attributes that shall be included in the search request.&lt;br /&gt;
&lt;br /&gt;
== Attributes ==&lt;br /&gt;
In this tab the attributes from the LDAP search result are mapped to the attributes of the &amp;quot;com.innovaphone.search&amp;quot; API for displaying the result in other apps.&lt;br /&gt;
Please configure the name of the attribute in the directory for each given attribute. Leave empty if it doesn&#039;t exist in the directory.&lt;br /&gt;
&lt;br /&gt;
For the following attributes, a comma-separated list with up to 4 items can be configured:&lt;br /&gt;
* telephonenumber&lt;br /&gt;
* mobile&lt;br /&gt;
* homephone&lt;br /&gt;
* facsimiletelephonenumber&lt;br /&gt;
* sip&lt;br /&gt;
* email&lt;br /&gt;
&lt;br /&gt;
== Configuration examples ==&lt;br /&gt;
=== Estos MetaDirectory ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; To enable full text search, MetaDirectory allows configuring a custom attribute to contain the full search string. This should be done whenever possible to get the best search quality and performance. If you configured an attribute, for example &amp;quot;custom0&amp;quot;, configure it at the LDAP object as Meta Name Attribute.&lt;br /&gt;
&lt;br /&gt;
==== Search ====&lt;br /&gt;
;Search Base:dc=meta&lt;br /&gt;
;Search Attribute:givenName&lt;br /&gt;
;Search Attribute:company&lt;br /&gt;
;Search Attribute:sn&lt;br /&gt;
;Search Attribute:telephoneNumber&lt;br /&gt;
;Search Attribute:displayName&lt;br /&gt;
You can chose 4 of this example search attributes, or you can search to each field defined in EMD/Search/Standardsearch. For this you enter only as fist Search Attribute: &amp;lt;b&amp;gt;searchContact&amp;lt;/b&amp;gt; .&amp;lt;br&amp;gt; If you don&#039;t use telephoneNumber the number dialing at the mobile client works a little bit smoother, but you have no name resolution at number dialing. But anyway this is only working, if you dial E.164 with a &#039;preceding&#039;+. So, you have the choice.&lt;br /&gt;
;Meta Name Attribute:custom0 (example, custom0 is the name of a custom attribute for full text search configured in the MetaDirectory)&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
;cn:displayName&lt;br /&gt;
;givenname:givenName&lt;br /&gt;
;sn:sn&lt;br /&gt;
;company:company&lt;br /&gt;
;street:streetAddress&lt;br /&gt;
;postalcode:postalCode&lt;br /&gt;
;city:l&lt;br /&gt;
;country:c&lt;br /&gt;
;telephonenumber:telephoneNumber&lt;br /&gt;
;mobile:mobile&lt;br /&gt;
;homephone:homePhone&lt;br /&gt;
;facsimiletelephonenumber:facsimileTelephoneNumber&lt;br /&gt;
;email:mail&lt;br /&gt;
&lt;br /&gt;
=== innovaphone Contacts ===&lt;br /&gt;
&#039;&#039;&#039;Note: Don&#039;t use the LDAP object against innovaphone Contacts.&#039;&#039;&#039; The Contacts app alread offers a search provider for myApps out of the box that is much better suited. This is just a documentational example.&lt;br /&gt;
&lt;br /&gt;
==== Server ====&lt;br /&gt;
;Host: The DNS name or IP address of the app platform hosting the Contacts instance.&lt;br /&gt;
;Port: The LDAPS post of the Contacts instance configured in the PBX Manager plugin &amp;quot;Contacts&amp;quot;.&lt;br /&gt;
;TLS: on&lt;br /&gt;
;User: The LDAP user configured in the PBX Manager plugin &amp;quot;Contacts&amp;quot;.&lt;br /&gt;
;Password: The LDAP password configured in the PBX Manager plugin &amp;quot;Contacts&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Search ====&lt;br /&gt;
;Search Base:&amp;quot;dc=entries&amp;quot;&lt;br /&gt;
;Meta Name Attribute:&amp;quot;metaSearchText&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
;cn:&amp;quot;cn&amp;quot;&lt;br /&gt;
;givenname:&amp;quot;givenname&amp;quot;&lt;br /&gt;
;sn:&amp;quot;sn&amp;quot;&lt;br /&gt;
;company:&amp;quot;company&amp;quot;&lt;br /&gt;
;postiion:&amp;quot;position&amp;quot;&lt;br /&gt;
;street:&amp;quot;street&amp;quot;&lt;br /&gt;
;postalcode:&amp;quot;postalcode&amp;quot;&lt;br /&gt;
;city:&amp;quot;city&amp;quot;&lt;br /&gt;
;country:&amp;quot;country&amp;quot;&lt;br /&gt;
;telephonenumber:&amp;quot;telephonenumber&amp;quot;&lt;br /&gt;
;mobile:&amp;quot;mobile&amp;quot;&lt;br /&gt;
;homephone:&amp;quot;homephone&amp;quot;&lt;br /&gt;
;sip:&amp;quot;sip&amp;quot;&lt;br /&gt;
;email:&amp;quot;email&amp;quot;&lt;br /&gt;
;url:&amp;quot;url&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== innovaphone PBX (searching for WQs) ===&lt;br /&gt;
This example configures an LDAP object to search for all waiting queues.&lt;br /&gt;
&lt;br /&gt;
==== Server ====&lt;br /&gt;
;Host: The DNS name or IP address of the PBX.&lt;br /&gt;
;Port: The LDAPS post of the PBX&lt;br /&gt;
;TLS: on&lt;br /&gt;
;User: The LDAP user of the PBX (e.g. &amp;quot;ldap-guest&amp;quot;)&lt;br /&gt;
;Password: The LDAP password of the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Search ====&lt;br /&gt;
;Search Base:&amp;quot;cn=PBX0&amp;quot;&lt;br /&gt;
;Object Filter:&amp;quot;(pbx=&amp;lt;pseudo type=&amp;quot;waiting&amp;quot;*)&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;cn&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;h323&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;e164&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
;cn:&amp;quot;cn&amp;quot;&lt;br /&gt;
;telephonenumber:&amp;quot;e164&amp;quot;&lt;br /&gt;
;sip:&amp;quot;h323&amp;quot;&lt;br /&gt;
;email:&amp;quot;email&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== innovaphone PBX (searching for CBs) ===&lt;br /&gt;
This example configures an LDAP object to search for all call broadcast groups.&lt;br /&gt;
&lt;br /&gt;
==== Server ====&lt;br /&gt;
;Host: The DNS name or IP address of the PBX.&lt;br /&gt;
;Port: The LDAPS post of the PBX&lt;br /&gt;
;TLS: on&lt;br /&gt;
;User: The LDAP user of the PBX (e.g. &amp;quot;ldap-guest&amp;quot;)&lt;br /&gt;
;Password: The LDAP password of the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Search ====&lt;br /&gt;
;Search Base:&amp;quot;cn=PBX0&amp;quot;&lt;br /&gt;
;Object Filter:&amp;quot;(pbx=&amp;lt;pseudo type=&amp;quot;broadcast&amp;quot;*)&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;cn&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;h323&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;e164&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
;cn:&amp;quot;cn&amp;quot;&lt;br /&gt;
;telephonenumber:&amp;quot;e164&amp;quot;&lt;br /&gt;
;sip:&amp;quot;h323&amp;quot;&lt;br /&gt;
;email:&amp;quot;email&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== innovaphone PBX (searching for CBs and WQs) ===&lt;br /&gt;
This example configures an LDAP object to search for all call broadcast groups and waiting queues together.&lt;br /&gt;
&lt;br /&gt;
==== Server ====&lt;br /&gt;
;Host: The DNS name or IP address of the PBX.&lt;br /&gt;
;Port: The LDAPS post of the PBX&lt;br /&gt;
;TLS: on&lt;br /&gt;
;User: The LDAP user of the PBX (e.g. &amp;quot;ldap-guest&amp;quot;)&lt;br /&gt;
;Password: The LDAP password of the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Search ====&lt;br /&gt;
;Search Base:&amp;quot;cn=PBX0&amp;quot;&lt;br /&gt;
;Object Filter:&amp;quot;(|(pbx=&amp;lt;pseudo type=&amp;quot;waiting&amp;quot;*)(pbx=&amp;lt;pseudo type=&amp;quot;broadcast&amp;quot;*))&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;cn&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;h323&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;e164&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
;cn:&amp;quot;cn&amp;quot;&lt;br /&gt;
;telephonenumber:&amp;quot;e164&amp;quot;&lt;br /&gt;
;sip:&amp;quot;h323&amp;quot;&lt;br /&gt;
;email:&amp;quot;email&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== innovaphone PBX (searching for users) ===&lt;br /&gt;
&#039;&#039;&#039;Note: Don&#039;t use the LDAP object against an innovaphone PBX to search for users.&#039;&#039;&#039; The Users App already offers a search provider for myApps out of the box that is much better suited. This is just a documentational example.&lt;br /&gt;
&lt;br /&gt;
==== Server ====&lt;br /&gt;
;Host: The DNS name or IP address of the PBX.&lt;br /&gt;
;Port: The LDAPS port of the PBX&lt;br /&gt;
;TLS: on&lt;br /&gt;
;User: The LDAP user of the PBX (e.g. &amp;quot;ldap-guest&amp;quot;)&lt;br /&gt;
;Password: The LDAP password of the PBX.&lt;br /&gt;
&lt;br /&gt;
==== Search ====&lt;br /&gt;
;Search Base:&amp;quot;cn=PBX0&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;cn&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;h323&amp;quot;&lt;br /&gt;
;Search Attribute:&amp;quot;e164&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
;cn:&amp;quot;cn&amp;quot;&lt;br /&gt;
;telephonenumber:&amp;quot;e164&amp;quot;&lt;br /&gt;
;sip:&amp;quot;h323&amp;quot;&lt;br /&gt;
;email:&amp;quot;email&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Reverse Lookup ==&lt;br /&gt;
For the Reverse Lookup, the [[{{NAMESPACE}}:PBX/Config/General | &amp;quot;Reverse Lookup URL&amp;quot;]] must be configured.&lt;br /&gt;
&lt;br /&gt;
= Related Articles =&lt;br /&gt;
* [[Reference13r2:Concept_Number_Resolution_and_LDAP]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=73565</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=73565"/>
		<updated>2024-09-23T16:16:59Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Move all members of Node &amp;#039;node_old&amp;#039; to &amp;#039;node_new&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{{Template:3rd Party Input}}&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Setting an only int cfnr for all users ===&lt;br /&gt;
&lt;br /&gt;
This is required, for example, for softphones that are not registered and internal callers should receive an announcement.&lt;br /&gt;
&lt;br /&gt;
For this you have to enable the Call forward on myApps offline checkbox.&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164] -&amp;gt; + cd/@type = cfnr&lt;br /&gt;
Search for the empty cfnr and add the &lt;br /&gt;
 /user[not(pseudo)][@e164]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88 (or +ep/@h323 = Object-Name) &lt;br /&gt;
Add another + and add &lt;br /&gt;
 + src/@type = do&lt;br /&gt;
&lt;br /&gt;
Finally, set the only int flag:&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164]/cd/src -&amp;gt; + ep/@ext = false&lt;br /&gt;
&lt;br /&gt;
=== Disable all forkings with app rcc at node &#039;Testnode&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@node=&amp;quot;Testnode&amp;quot;]/fork[@app=&amp;quot;rcc&amp;quot;][not(@off)] -&amp;gt; + @off = true&lt;br /&gt;
&lt;br /&gt;
=== Give visibility-entries the flag &#039;visible&#039; ===&lt;br /&gt;
This is a helpful job for migrations from V12 to set this in V13 new flag.&lt;br /&gt;
&lt;br /&gt;
 /user[not(pseudo)][@e164]/allow[not(@visible)] -&amp;gt; + @visible = true&lt;br /&gt;
or this example to remove the visibility flags for all users - new visibility flags can then be rolled out using a Config Template&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, *)] -&amp;gt; -allow&lt;br /&gt;
&lt;br /&gt;
=== Replace all user passwords on users which already have set a password with &#039;1234&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@pwd]  -&amp;gt; + @pwd = 1234&lt;br /&gt;
&lt;br /&gt;
=== Move all members of Node &#039;node_old&#039; to &#039;node_new&#039; ===&lt;br /&gt;
 /user[@node=&amp;quot;_node_HQ&amp;quot;]  -&amp;gt; + @node = node_new&lt;br /&gt;
Be careful by moving from node &#039;root&#039;, maybe you should use more filter options.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:ESENTA_SIAS_-_ESENTA_GmbH_-_3rd_Party_Product&amp;diff=72073</id>
		<title>Howto:ESENTA SIAS - ESENTA GmbH - 3rd Party Product</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:ESENTA_SIAS_-_ESENTA_GmbH_-_3rd_Party_Product&amp;diff=72073"/>
		<updated>2024-06-10T16:35:06Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Configure SIP credentials in ESENTA Sias */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- replace CompanyLogo by real logo-name. Do not change size &amp;amp; alignment. Upload image by pressing red link --&amp;gt;&lt;br /&gt;
[[Image:ESENTA logo.png||200px|right]]&lt;br /&gt;
 &lt;br /&gt;
==Product Name==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace CompanyName &amp;amp; ProductName by real names and add URL to productpage --&amp;gt;&lt;br /&gt;
ESENTA [https://esenta.de/details/ Sias]&lt;br /&gt;
 &lt;br /&gt;
==Certification Status==&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be done by innovaphone upon document check --&amp;gt;&lt;br /&gt;
{{Template:Compat_Status_referral_terminals|manufacturername=Esenta GmbH|certificationdate=in November 2023}}&lt;br /&gt;
 &lt;br /&gt;
==Category==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be done by innovaphone upon document check --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Category:3rdParty product categorie to be filled by innovaphone}} --&amp;gt;&lt;br /&gt;
[[Category:Referral Product|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_Terminal_Devices}}&lt;br /&gt;
[[Category:3rdParty_Terminal_Devices|{{PAGENAME}}]]&lt;br /&gt;
 &lt;br /&gt;
==Vendor==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give some introducting words about the vendor itself --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Place optional company logo. Don&#039;t change logo size. --&amp;gt;&lt;br /&gt;
[[Image:ESENTA logo.png|150px]] &lt;br /&gt;
&lt;br /&gt;
ESENTA GmbH specializes in leading-edge building communication and automation solutions. Since our inception in Kappelrodeck in 2018, we have dedicated ourselves to crafting state-of-the-art smart home solutions and IP video door intercom systems. Our flagship product, the SIAS IP video door intercom, transcends the traditional doorbell, weaving security, convenience, and advanced technology into the fabric of daily living.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give description about the product, benefits, other information to mention to understand main product purpose --&amp;gt;&lt;br /&gt;
&amp;lt;!-- place optional product logo or functional overwiew. --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Some formattings WikiMedia supports:&lt;br /&gt;
 ==Title2==&lt;br /&gt;
 ===Title3===&lt;br /&gt;
 &#039;&#039;&#039;xxx&#039;&#039;&#039; fat text&lt;br /&gt;
 * - list item&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Image:ProductLogo.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- some text --&amp;gt;&lt;br /&gt;
[[File:Sias.png|150px|ESENTA SIAS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESENTA SIAS is an advanced IP intercom system with a feature-rich touchscreen interface for residential and commercial buildings, offering direct calling to residents, video streaming, and two-way communication through an intuitive app. The system enhances property access with multifactor authentication including NFC and fingerprint verification, allows remote door operation, and is designed for integration into smart home ecosystems. It&#039;s crafted to streamline visitor management with customizable nameplates on its display, does not mandate cloud usage, supports flexible network connectivity and ensures a secure and seamless user experience. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Benefits at a glance:&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 * Bullet-point&lt;br /&gt;
 * Bullet-point&lt;br /&gt;
 * Bullet-point&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Benefits at a glance:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Direct Calling and Communication&lt;br /&gt;
* Multifactor Authentication&lt;br /&gt;
* Remote Door Operation&lt;br /&gt;
* Smart Home Integration&lt;br /&gt;
* Customizable Interface&lt;br /&gt;
* Global Access (Optional Cloud)&lt;br /&gt;
* Flexible Connectivity&lt;br /&gt;
* Enhanced Security&lt;br /&gt;
* User-Friendly Management&lt;br /&gt;
 &lt;br /&gt;
==Functions==&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Give functional description about the product. Use formattings if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connectivity and Communication:&#039;&#039;&#039;&lt;br /&gt;
* Real-Time Notifications: Sends alerts to smartphones or tablets when someone rings the bell or when motion is detected.&lt;br /&gt;
* Video Streaming: Offers a live video feed via a high-resolution wide-angle camera viewable on the ESENTA app.&lt;br /&gt;
* Two-Way Audio: Allows for communication with visitors through the app using the intercom&#039;s microphone and speaker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security and Access:&#039;&#039;&#039;&lt;br /&gt;
* Fingerprint Authentication: A capacitive fingerprint reader that can store up to 100 different fingerprints.&lt;br /&gt;
* Code Entry: Users can enter access codes directly on the touchscreen display.&lt;br /&gt;
* PIR/Radar Sensor: Detects people in proximity to the door.&lt;br /&gt;
* Sabotage Detection: Features an accelerometer to detect any tampering efforts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Smart Home Compatibility:&#039;&#039;&#039;&lt;br /&gt;
* Integration: Easily integrates with existing smart home systems using open interfaces like MQTT and REST API.&lt;br /&gt;
* User Interface: Control the system through a web interface or smartphone app, customizing access and functions as needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Installation and Setup:&#039;&#039;&#039;&lt;br /&gt;
* Network Integration: Can be connected via standard networking cable or through a 2-Wire module using existing wires.&lt;br /&gt;
* Device Support: Compatible with a wide range of devices including Android/iOS smartphones, SIP phones, and tablets.&lt;br /&gt;
* Multiple SIP Server Support: Capable of connecting to several SIP servers at once.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energy and Power:&#039;&#039;&#039;&lt;br /&gt;
* Voltage Compatibility: Supports an input voltage range from 12V to 48V DC and is compatible with passive Power over Ethernet (PoE).&lt;br /&gt;
* Power Consumption: Operates on a low energy consumption of 4-6 Watts.&lt;br /&gt;
&lt;br /&gt;
==innovaphone CTI ready==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Initiate outgoing call (automatic call with no manual intervention, update of called party, correct call direction in call list) yes/no&lt;br /&gt;
* Answer incoming call yes/no&lt;br /&gt;
* Hold/Retrieve yes/no&lt;br /&gt;
* Transfer yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Initiate outgoing call no&lt;br /&gt;
* Answer incoming call no&lt;br /&gt;
* Hold/Retrieve no&lt;br /&gt;
* Transfer no&lt;br /&gt;
&lt;br /&gt;
==innovaphone Reverse Proxy ready==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* STUN yes/no&lt;br /&gt;
* TURN yes/no&lt;br /&gt;
* ICE yes/no&lt;br /&gt;
* SIP/TCP yes/no&lt;br /&gt;
* SIP/TLS yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* STUN yes&lt;br /&gt;
* TURN yes&lt;br /&gt;
* ICE yes&lt;br /&gt;
* SIP/TCP yes&lt;br /&gt;
* SIP/TLS yes&lt;br /&gt;
==innovaphone WebRTC ready==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Codec G.711 yes/no&lt;br /&gt;
* Codec OPUS yes/no&lt;br /&gt;
* DTLS encryption yes/no (RFC?)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Codec G.711 yes&lt;br /&gt;
* Codec OPUS yes&lt;br /&gt;
* DTLS encryption yes (RFC 5764)&lt;br /&gt;
 &lt;br /&gt;
==Supported Codecs==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&amp;lt;!--&lt;br /&gt;
* G.722 yes/no&lt;br /&gt;
* G.711 A-law yes/no&lt;br /&gt;
* G.711 y-law yes/no&lt;br /&gt;
* G.723.1 (53) yes/no&lt;br /&gt;
* G.729A yes/no&lt;br /&gt;
* Opus yes/no (RFC, WB, NB?)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* G.722 no&lt;br /&gt;
* G.711 A-law yes&lt;br /&gt;
* G.711 y-law yes&lt;br /&gt;
* G.723.1 (53) no&lt;br /&gt;
* G.729A no&lt;br /&gt;
* Opus yes (RFC 7587, NB)&lt;br /&gt;
&lt;br /&gt;
==DTMF Support==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* SIP INFO (RFC?)&lt;br /&gt;
* RTP DTMF (RFC?)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* SIP INFO (RFC 2976)&lt;br /&gt;
* RTP DTMF (RFC 4733) &lt;br /&gt;
&lt;br /&gt;
==Supports RFC3261 Digest Authentication Scheme (Section 22.4)==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Supports RFC3261 Digest Authentication Scheme (Section 22.4) yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Supports RFC3261 Digest Authentication Scheme (Section 22.4) yes&lt;br /&gt;
&lt;br /&gt;
==Support LDAP Phonebook==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Support LDAP Phonebook yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Support LDAP Phonebook no&lt;br /&gt;
&lt;br /&gt;
==Version==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give used versions for testing of both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present or outdated innovaphone FW is used, no certificate will be given at all --&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
Product versions used for interop testing:&lt;br /&gt;
&amp;lt;!-- replace 3rd-Pty-Product by real name --&amp;gt;&lt;br /&gt;
* ESENTA Sias Version 1.37 (26)&lt;br /&gt;
&amp;lt;!-- adjust used innovaphone FW, if applied add further applications (e.g. TAPI &amp;amp; Versions) --&amp;gt;&lt;br /&gt;
* innovaphone V13r3sr10&lt;br /&gt;
 &lt;br /&gt;
==Configuration==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Describe configuration steps to be done for both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present, no certificate will be given at all --&amp;gt;&lt;br /&gt;
&amp;lt;!-- you may either list the config steps by adding text &amp;amp; pictures, or provide the URL to a PDF-formatted config document. Ideally the document is hosted by the 3rd-party-supplier itself --&amp;gt;&lt;br /&gt;
&amp;lt;!-- in any case you must be aware of the fact that any questions concerning configuration issues will be directly forwarded by innovaphone to you as manufacturer --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting up a user for ESENTA Sias===&lt;br /&gt;
In the innovaphone user interface, navigate to the subpage PBX &amp;gt; Objects&lt;br /&gt;
&lt;br /&gt;
Press new and then fill in the following fields&lt;br /&gt;
&lt;br /&gt;
* Long Name (a descriptive name, here: Sias)&lt;br /&gt;
* Name (the short name, here: sias)&lt;br /&gt;
* Password (a password of your choice)&lt;br /&gt;
* Hardware Id (the user name, here: sias)&lt;br /&gt;
* Activate Media Relay&lt;br /&gt;
&lt;br /&gt;
[[File:NewUser.png|Create new user|500px]]&lt;br /&gt;
 &lt;br /&gt;
===Configure SIP credentials in ESENTA Sias===&lt;br /&gt;
&lt;br /&gt;
In the ESENTA SIAS web interface, navigate to SIP telephony.&lt;br /&gt;
* Under SIP Server enter the IP address of the innovaphone PBX, port 5060, protocol TCP&lt;br /&gt;
* Enter the name from the innovaphone Hardware ID field as the Auth user name&lt;br /&gt;
* Enter the selected password as the Auth password&lt;br /&gt;
* Set Media Encoding to RTP/AVP&lt;br /&gt;
* Select RTP (RFC-4733) as DTMF Mode&lt;br /&gt;
&lt;br /&gt;
[[File:Settings_sias.png|SIAS settings|500px]]&lt;br /&gt;
&lt;br /&gt;
If you need to register at a PBX behind a Reverse Proxy, you need to set your PBX system name in the field &#039;SIP Server&#039; and address your Reverse Proxy via IP or name in the field &#039;Outbound Proxy&#039;.&lt;br /&gt;
&lt;br /&gt;
===Adding a call button to ESENTA Sias===&lt;br /&gt;
&lt;br /&gt;
Navigate to the nameplates subpage and click on Add nameplate.&lt;br /&gt;
&lt;br /&gt;
Enter the SIP address in the format sip:[phone number]@[innovaphone server] ([phone number] replaced with the destination number assigned to the user in the innovaphone PBX, [innovaphone server] replaced with the server IP/Host).&lt;br /&gt;
&lt;br /&gt;
Then press Save.&lt;br /&gt;
&lt;br /&gt;
[[File:Nameplate.png|SIAS nameplate|500px]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Anything to mention which does not fit to above topics. To be deleted if not needed --&amp;gt; &lt;br /&gt;
This tutorial shows the integration with our native SIP stack, but soon our innovaphone myApps Platform App based on WebRTC technology will be available, which supports two-way video calls and integrates well into the innovaphone ecosystem.&lt;br /&gt;
&lt;br /&gt;
==Video on phone==&lt;br /&gt;
Video on innovaphone phones is possible. Use this link: http://IP-Adress-ESENTA/snapshot/480x272.jpg?refresh=1&amp;lt;br&amp;gt;&lt;br /&gt;
Tested on IP111, IP112, IP232 simultaneous on 10 Phones by Mehrens U.C. .&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give contact details for potential interests. You may give personal or general contact data. --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
{|&lt;br /&gt;
| ESENTA GmbH&lt;br /&gt;
|-&lt;br /&gt;
| Hauptstraße 165&lt;br /&gt;
|-&lt;br /&gt;
| 77876 Kappelrodeck&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +49 (0) 78 42 99 77 461&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:info@esenta.de info@esenta.de]&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://esenta.de/contact-us/ our contact page].&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:ESENTA_SIAS_-_ESENTA_GmbH_-_3rd_Party_Product&amp;diff=72072</id>
		<title>Howto:ESENTA SIAS - ESENTA GmbH - 3rd Party Product</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:ESENTA_SIAS_-_ESENTA_GmbH_-_3rd_Party_Product&amp;diff=72072"/>
		<updated>2024-06-10T16:34:39Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Hint how to configure a registration over RP*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- replace CompanyLogo by real logo-name. Do not change size &amp;amp; alignment. Upload image by pressing red link --&amp;gt;&lt;br /&gt;
[[Image:ESENTA logo.png||200px|right]]&lt;br /&gt;
 &lt;br /&gt;
==Product Name==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace CompanyName &amp;amp; ProductName by real names and add URL to productpage --&amp;gt;&lt;br /&gt;
ESENTA [https://esenta.de/details/ Sias]&lt;br /&gt;
 &lt;br /&gt;
==Certification Status==&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be done by innovaphone upon document check --&amp;gt;&lt;br /&gt;
{{Template:Compat_Status_referral_terminals|manufacturername=Esenta GmbH|certificationdate=in November 2023}}&lt;br /&gt;
 &lt;br /&gt;
==Category==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be done by innovaphone upon document check --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Category:3rdParty product categorie to be filled by innovaphone}} --&amp;gt;&lt;br /&gt;
[[Category:Referral Product|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_Terminal_Devices}}&lt;br /&gt;
[[Category:3rdParty_Terminal_Devices|{{PAGENAME}}]]&lt;br /&gt;
 &lt;br /&gt;
==Vendor==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give some introducting words about the vendor itself --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Place optional company logo. Don&#039;t change logo size. --&amp;gt;&lt;br /&gt;
[[Image:ESENTA logo.png|150px]] &lt;br /&gt;
&lt;br /&gt;
ESENTA GmbH specializes in leading-edge building communication and automation solutions. Since our inception in Kappelrodeck in 2018, we have dedicated ourselves to crafting state-of-the-art smart home solutions and IP video door intercom systems. Our flagship product, the SIAS IP video door intercom, transcends the traditional doorbell, weaving security, convenience, and advanced technology into the fabric of daily living.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give description about the product, benefits, other information to mention to understand main product purpose --&amp;gt;&lt;br /&gt;
&amp;lt;!-- place optional product logo or functional overwiew. --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Some formattings WikiMedia supports:&lt;br /&gt;
 ==Title2==&lt;br /&gt;
 ===Title3===&lt;br /&gt;
 &#039;&#039;&#039;xxx&#039;&#039;&#039; fat text&lt;br /&gt;
 * - list item&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Image:ProductLogo.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- some text --&amp;gt;&lt;br /&gt;
[[File:Sias.png|150px|ESENTA SIAS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESENTA SIAS is an advanced IP intercom system with a feature-rich touchscreen interface for residential and commercial buildings, offering direct calling to residents, video streaming, and two-way communication through an intuitive app. The system enhances property access with multifactor authentication including NFC and fingerprint verification, allows remote door operation, and is designed for integration into smart home ecosystems. It&#039;s crafted to streamline visitor management with customizable nameplates on its display, does not mandate cloud usage, supports flexible network connectivity and ensures a secure and seamless user experience. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- &#039;&#039;&#039;Benefits at a glance:&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 * Bullet-point&lt;br /&gt;
 * Bullet-point&lt;br /&gt;
 * Bullet-point&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Benefits at a glance:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Direct Calling and Communication&lt;br /&gt;
* Multifactor Authentication&lt;br /&gt;
* Remote Door Operation&lt;br /&gt;
* Smart Home Integration&lt;br /&gt;
* Customizable Interface&lt;br /&gt;
* Global Access (Optional Cloud)&lt;br /&gt;
* Flexible Connectivity&lt;br /&gt;
* Enhanced Security&lt;br /&gt;
* User-Friendly Management&lt;br /&gt;
 &lt;br /&gt;
==Functions==&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Give functional description about the product. Use formattings if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Connectivity and Communication:&#039;&#039;&#039;&lt;br /&gt;
* Real-Time Notifications: Sends alerts to smartphones or tablets when someone rings the bell or when motion is detected.&lt;br /&gt;
* Video Streaming: Offers a live video feed via a high-resolution wide-angle camera viewable on the ESENTA app.&lt;br /&gt;
* Two-Way Audio: Allows for communication with visitors through the app using the intercom&#039;s microphone and speaker.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Security and Access:&#039;&#039;&#039;&lt;br /&gt;
* Fingerprint Authentication: A capacitive fingerprint reader that can store up to 100 different fingerprints.&lt;br /&gt;
* Code Entry: Users can enter access codes directly on the touchscreen display.&lt;br /&gt;
* PIR/Radar Sensor: Detects people in proximity to the door.&lt;br /&gt;
* Sabotage Detection: Features an accelerometer to detect any tampering efforts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Smart Home Compatibility:&#039;&#039;&#039;&lt;br /&gt;
* Integration: Easily integrates with existing smart home systems using open interfaces like MQTT and REST API.&lt;br /&gt;
* User Interface: Control the system through a web interface or smartphone app, customizing access and functions as needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Installation and Setup:&#039;&#039;&#039;&lt;br /&gt;
* Network Integration: Can be connected via standard networking cable or through a 2-Wire module using existing wires.&lt;br /&gt;
* Device Support: Compatible with a wide range of devices including Android/iOS smartphones, SIP phones, and tablets.&lt;br /&gt;
* Multiple SIP Server Support: Capable of connecting to several SIP servers at once.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Energy and Power:&#039;&#039;&#039;&lt;br /&gt;
* Voltage Compatibility: Supports an input voltage range from 12V to 48V DC and is compatible with passive Power over Ethernet (PoE).&lt;br /&gt;
* Power Consumption: Operates on a low energy consumption of 4-6 Watts.&lt;br /&gt;
&lt;br /&gt;
==innovaphone CTI ready==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Initiate outgoing call (automatic call with no manual intervention, update of called party, correct call direction in call list) yes/no&lt;br /&gt;
* Answer incoming call yes/no&lt;br /&gt;
* Hold/Retrieve yes/no&lt;br /&gt;
* Transfer yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Initiate outgoing call no&lt;br /&gt;
* Answer incoming call no&lt;br /&gt;
* Hold/Retrieve no&lt;br /&gt;
* Transfer no&lt;br /&gt;
&lt;br /&gt;
==innovaphone Reverse Proxy ready==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* STUN yes/no&lt;br /&gt;
* TURN yes/no&lt;br /&gt;
* ICE yes/no&lt;br /&gt;
* SIP/TCP yes/no&lt;br /&gt;
* SIP/TLS yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* STUN yes&lt;br /&gt;
* TURN yes&lt;br /&gt;
* ICE yes&lt;br /&gt;
* SIP/TCP yes&lt;br /&gt;
* SIP/TLS yes&lt;br /&gt;
==innovaphone WebRTC ready==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Codec G.711 yes/no&lt;br /&gt;
* Codec OPUS yes/no&lt;br /&gt;
* DTLS encryption yes/no (RFC?)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Codec G.711 yes&lt;br /&gt;
* Codec OPUS yes&lt;br /&gt;
* DTLS encryption yes (RFC 5764)&lt;br /&gt;
 &lt;br /&gt;
==Supported Codecs==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&amp;lt;!--&lt;br /&gt;
* G.722 yes/no&lt;br /&gt;
* G.711 A-law yes/no&lt;br /&gt;
* G.711 y-law yes/no&lt;br /&gt;
* G.723.1 (53) yes/no&lt;br /&gt;
* G.729A yes/no&lt;br /&gt;
* Opus yes/no (RFC, WB, NB?)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* G.722 no&lt;br /&gt;
* G.711 A-law yes&lt;br /&gt;
* G.711 y-law yes&lt;br /&gt;
* G.723.1 (53) no&lt;br /&gt;
* G.729A no&lt;br /&gt;
* Opus yes (RFC 7587, NB)&lt;br /&gt;
&lt;br /&gt;
==DTMF Support==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* SIP INFO (RFC?)&lt;br /&gt;
* RTP DTMF (RFC?)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* SIP INFO (RFC 2976)&lt;br /&gt;
* RTP DTMF (RFC 4733) &lt;br /&gt;
&lt;br /&gt;
==Supports RFC3261 Digest Authentication Scheme (Section 22.4)==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Supports RFC3261 Digest Authentication Scheme (Section 22.4) yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Supports RFC3261 Digest Authentication Scheme (Section 22.4) yes&lt;br /&gt;
&lt;br /&gt;
==Support LDAP Phonebook==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Support LDAP Phonebook yes/no&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Support LDAP Phonebook no&lt;br /&gt;
&lt;br /&gt;
==Version==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give used versions for testing of both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present or outdated innovaphone FW is used, no certificate will be given at all --&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
Product versions used for interop testing:&lt;br /&gt;
&amp;lt;!-- replace 3rd-Pty-Product by real name --&amp;gt;&lt;br /&gt;
* ESENTA Sias Version 1.37 (26)&lt;br /&gt;
&amp;lt;!-- adjust used innovaphone FW, if applied add further applications (e.g. TAPI &amp;amp; Versions) --&amp;gt;&lt;br /&gt;
* innovaphone V13r3sr10&lt;br /&gt;
 &lt;br /&gt;
==Configuration==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Describe configuration steps to be done for both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present, no certificate will be given at all --&amp;gt;&lt;br /&gt;
&amp;lt;!-- you may either list the config steps by adding text &amp;amp; pictures, or provide the URL to a PDF-formatted config document. Ideally the document is hosted by the 3rd-party-supplier itself --&amp;gt;&lt;br /&gt;
&amp;lt;!-- in any case you must be aware of the fact that any questions concerning configuration issues will be directly forwarded by innovaphone to you as manufacturer --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting up a user for ESENTA Sias===&lt;br /&gt;
In the innovaphone user interface, navigate to the subpage PBX &amp;gt; Objects&lt;br /&gt;
&lt;br /&gt;
Press new and then fill in the following fields&lt;br /&gt;
&lt;br /&gt;
* Long Name (a descriptive name, here: Sias)&lt;br /&gt;
* Name (the short name, here: sias)&lt;br /&gt;
* Password (a password of your choice)&lt;br /&gt;
* Hardware Id (the user name, here: sias)&lt;br /&gt;
* Activate Media Relay&lt;br /&gt;
&lt;br /&gt;
[[File:NewUser.png|Create new user|500px]]&lt;br /&gt;
 &lt;br /&gt;
===Configure SIP credentials in ESENTA Sias===&lt;br /&gt;
&lt;br /&gt;
In the ESENTA SIAS web interface, navigate to SIP telephony.&lt;br /&gt;
* Under SIP Server enter the IP address of the innovaphone PBX, port 5060, protocol TCP&lt;br /&gt;
* Enter the name from the innovaphone Hardware ID field as the Auth user name&lt;br /&gt;
* Enter the selected password as the Auth password&lt;br /&gt;
* Set Media Encoding to RTP/AVP&lt;br /&gt;
* Select RTP (RFC-4733) as DTMF Mode&lt;br /&gt;
&lt;br /&gt;
[[File:Settings_sias.png|SIAS settings|500px]]&lt;br /&gt;
&lt;br /&gt;
If you need to register at a PBX behind a Reverse Proxy, you need to set your PBX system name in the field &#039;SIP server&#039; and address your Reverse Proxy via IP or name in the field &#039;Outbound Proxy&#039;.&lt;br /&gt;
&lt;br /&gt;
===Adding a call button to ESENTA Sias===&lt;br /&gt;
&lt;br /&gt;
Navigate to the nameplates subpage and click on Add nameplate.&lt;br /&gt;
&lt;br /&gt;
Enter the SIP address in the format sip:[phone number]@[innovaphone server] ([phone number] replaced with the destination number assigned to the user in the innovaphone PBX, [innovaphone server] replaced with the server IP/Host).&lt;br /&gt;
&lt;br /&gt;
Then press Save.&lt;br /&gt;
&lt;br /&gt;
[[File:Nameplate.png|SIAS nameplate|500px]]&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Anything to mention which does not fit to above topics. To be deleted if not needed --&amp;gt; &lt;br /&gt;
This tutorial shows the integration with our native SIP stack, but soon our innovaphone myApps Platform App based on WebRTC technology will be available, which supports two-way video calls and integrates well into the innovaphone ecosystem.&lt;br /&gt;
&lt;br /&gt;
==Video on phone==&lt;br /&gt;
Video on innovaphone phones is possible. Use this link: http://IP-Adress-ESENTA/snapshot/480x272.jpg?refresh=1&amp;lt;br&amp;gt;&lt;br /&gt;
Tested on IP111, IP112, IP232 simultaneous on 10 Phones by Mehrens U.C. .&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give contact details for potential interests. You may give personal or general contact data. --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
{|&lt;br /&gt;
| ESENTA GmbH&lt;br /&gt;
|-&lt;br /&gt;
| Hauptstraße 165&lt;br /&gt;
|-&lt;br /&gt;
| 77876 Kappelrodeck&lt;br /&gt;
|-&lt;br /&gt;
| Tel: +49 (0) 78 42 99 77 461&lt;br /&gt;
|-&lt;br /&gt;
| Mail: [mailto:info@esenta.de info@esenta.de]&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
For any questions please refer to [https://esenta.de/contact-us/ our contact page].&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_OAuth2_Windows_Authentication&amp;diff=71321</id>
		<title>Reference13r3:Concept OAuth2 Windows Authentication</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r3:Concept_OAuth2_Windows_Authentication&amp;diff=71321"/>
		<updated>2024-03-21T14:15:29Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Configuration PBX - hint for trusting certificates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|OAuth2 and myApps Windows Authentication]]&lt;br /&gt;
[[Category:Concept_OAuth2]]&lt;br /&gt;
[[Category:Concept_myApps]]&lt;br /&gt;
&lt;br /&gt;
Users can login-in to myApps using their windows password. The PBX uses OAuth2 with an OpenID configuration to verify the login information.&lt;br /&gt;
&lt;br /&gt;
== Applies to ==&lt;br /&gt;
* innovaphone devices with a PBX from version 13r3&lt;br /&gt;
* innovaphone myApps (all platforms)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
=== Connection to the OpenID server ===&lt;br /&gt;
The OAuth2 service of the PBX retrieves the OpenID configuration from the configured OpenID server.&amp;lt;br/&amp;gt;&lt;br /&gt;
This configuration is used to generate an authorization URL and to verify the login information which is retrieved after the login.&lt;br /&gt;
&lt;br /&gt;
[[Image:MyApps OAuth2 flow config.png]]&lt;br /&gt;
&lt;br /&gt;
=== Login with windows password in myApps ===&lt;br /&gt;
The login process using windows credentials:&lt;br /&gt;
&lt;br /&gt;
* myApps starts the login and learns that OpenID is configured&lt;br /&gt;
* If the user selects OpenID for authentication, myApps opens the authorization URL of your OpenID server inside a popup window. &lt;br /&gt;
* after a successfull login with the windows credentials, the OpenID server redirects back to the &#039;&#039;&#039;Redirect URI&#039;&#039;&#039; of the PBX&lt;br /&gt;
* the redirect contains an id_token which itself contains the login information&lt;br /&gt;
* the signature of the id_token is verified against the OpenID configuration to ensure that the login is from the correct OpenID server&lt;br /&gt;
* the myApps login is completed&lt;br /&gt;
&lt;br /&gt;
[[Image:MyApps OAuth2 flow login.png]]&lt;br /&gt;
&lt;br /&gt;
;Shared secret:&lt;br /&gt;
OAuth2 doesn&#039;t offer a shared secret and the user&#039;s password is unknown by the PBX and myApps.&lt;br /&gt;
So we do an ECDHE key agreement to create a shared secret that is used for digest calculations and encryption of session parameters.&lt;br /&gt;
&lt;br /&gt;
;Session credentials:&lt;br /&gt;
The PBX creates session credentials for future connections and stores them at the user object. After that it encrypts the credentials using the shared secret and sends them to the web application.&lt;br /&gt;
&lt;br /&gt;
;Login:&lt;br /&gt;
For the initial login, the username from the id_token and the shared secret is used.&lt;br /&gt;
For subsequent connections, the session credentials are used.&lt;br /&gt;
&lt;br /&gt;
Note: If the user is already logged-in at the OpenID provider, the redirect to the Redirect URL is done without asking for credentials and the login is completed automatically.&lt;br /&gt;
&lt;br /&gt;
;Logout:&lt;br /&gt;
If the user actively logs out, the session credentials are deleted in the PBX and on the myApps client.&lt;br /&gt;
So for the next authentication, the login screen is displayed again.&lt;br /&gt;
&lt;br /&gt;
Note: Logging out from myApps does not mean a logging out from the OpenID provider.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
* The windows password is just used inside the OpenID authorization page. It is unknown by the PBX and the myApps client and it is never stored or transmitted over the network.&lt;br /&gt;
* During the login, a shared secret is negotiated using an ECDHE handshake. Session credentials are created and stored in the PBX at the user object and the DOM storage of the browser. So the user doesn&#039;t have to authenticate again, if the PBX or the browser is restarted.&lt;br /&gt;
* On logout the session credentials are deleted in the DOM Storage of the browser and in the PBX. So the next time the user is asked again for authentication.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
=== OpenID server ===&lt;br /&gt;
We have developed and tested the functionality based on Microsoft Active Directory Federation Service (AD FS):&lt;br /&gt;
* Windows Server 2022 has been successfully tested&lt;br /&gt;
* Windows Server 2019 has been successfully tested&lt;br /&gt;
* Windows Server 2016 has been successfully tested&lt;br /&gt;
* Windows Server 2012 is not supported&lt;br /&gt;
* Microsoft Azure AD has been successfully tested (13r3 SR2 onwards)&lt;br /&gt;
&lt;br /&gt;
In principle, any server that meets the following conditions should work&lt;br /&gt;
* OpenID compliant server&lt;br /&gt;
* It has a well-known configuration URI, e.g. &amp;lt;code&amp;gt;https://adfs.domain.com/adfs/.well-known/openid-configuration&amp;lt;/code&amp;gt;&lt;br /&gt;
* The OpenID configuration must deliver:&lt;br /&gt;
** Authorization endpoint&lt;br /&gt;
** JWKS URI&lt;br /&gt;
** support for id_token response type&lt;br /&gt;
** support for id_token signing algorithm RS256&lt;br /&gt;
** support for response mode form_post&lt;br /&gt;
** support for upn claim&lt;br /&gt;
** support for nonce claim (optionally, but the random client nonce must be still echoed inside the ID token)&lt;br /&gt;
** at least one key which is used for token signing&lt;br /&gt;
&lt;br /&gt;
However, as we have not carried out tests with other OpenID server variants, use with such servers is not supported.&lt;br /&gt;
&lt;br /&gt;
=== PBX ===&lt;br /&gt;
* Firmware from version 13r3 or later.&lt;br /&gt;
* Working DNS configuration.&lt;br /&gt;
* The usernames (Name) of the user objects in the PBX must match the Windows usernames which are sent within the id_token (normally the upn field in AD FS).&lt;br /&gt;
* OAuth2 authentication must be enabled on the PBX/Config/Authentication page in the advanced UI.&lt;br /&gt;
&lt;br /&gt;
=== RP/Firewalls ===&lt;br /&gt;
&lt;br /&gt;
* all communication is done via HTTPs&lt;br /&gt;
* RPs/Firewalls must allow access to the AD FS authorization URL (with can be retrieved by looking at the response of the openid configuration URL)&lt;br /&gt;
* RPs/Firewalls must allow access to the OAuth2 module on the PBX which is accessed by the myApps clients, e.g. &amp;lt;code&amp;gt;https://pbx.domain.com/OAUTH2/oauth2_login.htm&amp;lt;/code&amp;gt;&lt;br /&gt;
* the PBX must be able to access the OpenID configuration URL&lt;br /&gt;
&lt;br /&gt;
== Configuration Microsoft AD FS ==&lt;br /&gt;
This just describes the configuration on a Windows 2019 server, but every OpenID server meeting the above mentioned requirements should be possible to use.&lt;br /&gt;
&lt;br /&gt;
=== Activate AD FS server role ===&lt;br /&gt;
* make sure the AD FS server role is activated in your Windows Server&lt;br /&gt;
&lt;br /&gt;
=== Server application with Client-ID ===&lt;br /&gt;
* open your AD FS management&lt;br /&gt;
* go to &#039;&#039;Application groups&#039;&#039;&lt;br /&gt;
* add a new &#039;&#039;Application group&#039;&#039;&lt;br /&gt;
* select &#039;&#039;Server application&#039;&#039;&lt;br /&gt;
* give it a name of your choice and proceed&lt;br /&gt;
* note down the Client-ID&lt;br /&gt;
* add the Redirect URI of your PBX, e.g. &amp;lt;code&amp;gt;https://pbx.domain.com:443/OAUTH2/oauth2_login.htm&amp;lt;/code&amp;gt;&lt;br /&gt;
** here you can also add multiple Redirect URIs for all your slaves and standbys too&lt;br /&gt;
* generate a secret key (this key isn&#039;t used inside the PBX, so you don&#039;t need to note it)&lt;br /&gt;
&lt;br /&gt;
=== Token signature certificate ===&lt;br /&gt;
* open your AD FS management&lt;br /&gt;
* go to &#039;&#039;Service&#039;&#039;&lt;br /&gt;
* go to &#039;&#039;Certificates&#039;&#039;&lt;br /&gt;
* ensure you have a &#039;&#039;Token-signing&#039;&#039; certificate&lt;br /&gt;
&lt;br /&gt;
 There are also Powershell commands to add server applications etc., but they are out of scope of this article.&lt;br /&gt;
&lt;br /&gt;
== Configuration Microsoft Azure AD ==&lt;br /&gt;
&lt;br /&gt;
Support has been added in 13r3 SR2.&amp;lt;br/&amp;gt;&lt;br /&gt;
Login to your Microsoft Azure portal, e.g. on https://portal.azure.com and &#039;&#039;&#039;Manage Azure Active Directory&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Add App Registration ===&lt;br /&gt;
&lt;br /&gt;
* click on &#039;&#039;&#039;+ Add&#039;&#039;&#039; and select &#039;&#039;&#039;App Registration&#039;&#039;&#039;&lt;br /&gt;
* enter any name&lt;br /&gt;
* select suitable supported account types according to your usage&lt;br /&gt;
* &#039;&#039;&#039;Redirect URI&#039;&#039;&#039;: select &#039;&#039;&#039;Web&#039;&#039;&#039; as platform and add the Redirect URI of your PBX, e.g. &amp;lt;code&amp;gt;https://pbx.domain.com:443/OAUTH2/oauth2_login.htm&amp;lt;/code&amp;gt;&lt;br /&gt;
** here you can also add multiple Redirect URIs for all your slaves and standbys too&lt;br /&gt;
* click &#039;&#039;&#039;Register&#039;&#039;&#039; to add this App Registration&lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
&lt;br /&gt;
* open the &#039;&#039;&#039;Authentication&#039;&#039;&#039; page of this new App Registration&lt;br /&gt;
* tick &#039;&#039;&#039;ID tokens (used for implicit and hybrid flows)&#039;&#039;&#039; so that the ID token is sent to the PBX on a successfull login&lt;br /&gt;
* save&lt;br /&gt;
&lt;br /&gt;
=== Token Configuration ===&lt;br /&gt;
&lt;br /&gt;
* open the &#039;&#039;&#039;Token Configuration&#039;&#039;&#039; page&lt;br /&gt;
* click &#039;&#039;&#039;+ add optional claim&#039;&#039;&#039;&lt;br /&gt;
* select &#039;&#039;&#039;ID&#039;&#039;&#039; as token type&lt;br /&gt;
* tick &#039;&#039;&#039;email&#039;&#039;&#039; in the list of available claims&lt;br /&gt;
* click &#039;&#039;&#039;Add&#039;&#039;&#039; and a second time &#039;&#039;&#039;Add&#039;&#039;&#039; (no need to tick the additional questioned checkbox)&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
* open the &#039;&#039;&#039;Overview&#039;&#039;&#039; page&lt;br /&gt;
* note the &#039;&#039;&#039;Application (client) ID&#039;&#039;&#039; for your OAuth2 configuration on the PBX&lt;br /&gt;
* note the &#039;&#039;&#039;Directory (tenant) ID&#039;&#039;&#039; for your OAuth2 configuration on the PBX&lt;br /&gt;
** the configuration URL will look like this: https://login.microsoftonline.com/Directory_tenant_ID/v2.0/.well-known/openid-configuration (as long as Microsoft doesn&#039;t change this or offers different variants ...)&lt;br /&gt;
&lt;br /&gt;
== Configuration PBX ==&lt;br /&gt;
On all PBXes in the system:&lt;br /&gt;
* Configure the OAuth2 service on the innovaphone device on page [[{{NAMESPACE}}:Services/OAuth2/Config | Services/OAuth2/Config]].&lt;br /&gt;
* Activate OAuth2 authentication on page [[{{NAMESPACE}}:PBX/Config/Authentication | PBX/Config/Authentication ]]&lt;br /&gt;
* The first test will not work; you must trust the rejected Microsoft certificates on page [[{{NAMESPACE}}:General/Certificates | General/Certificates ]]&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Depending on the configuration on page[[{{NAMESPACE}}:PBX/Config/Authentication | PBX/Config/Authentication ]] users can use their PBX user password, their Windows password or both for the myApps login.&lt;br /&gt;
;OAuth2 only: Shows a button redirecting to the OpenID provider.&lt;br /&gt;
;PBX only: Shows a login form with fields for username and password.&lt;br /&gt;
;PBX and OAuth2: Shows both and lets the user decide.&lt;br /&gt;
&lt;br /&gt;
== Tracing and logging ==&lt;br /&gt;
The following trace flags can be activated at [[{{NAMESPACE}}:Maintenance/Diagnostics/Tracing | Maintenance/Diagnostics/Tracing]].&lt;br /&gt;
&lt;br /&gt;
;OAuth2&lt;br /&gt;
: fetching the OpenID configuration&lt;br /&gt;
: processing of incoming id_tokens&lt;br /&gt;
: communication between the OAuth2 module and the PBX&lt;br /&gt;
&lt;br /&gt;
;PBX: communication between the PBX and the myApps client&lt;br /&gt;
&lt;br /&gt;
;HTTP Client&lt;br /&gt;
: the HTTPS communication for fetching the OpenID configuration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally, you can enable the following trace flags at the myApps client.&lt;br /&gt;
;Browser Console&lt;br /&gt;
: login-flow and possible errors from the client perspective&lt;br /&gt;
&lt;br /&gt;
== Alarms and Events ==&lt;br /&gt;
* an event is generated on every id_token which cannot be parsed or verified&lt;br /&gt;
* an alarm is generated if the Open ID configuration cannot be fetched or is invalid&lt;br /&gt;
&lt;br /&gt;
== Test page ==&lt;br /&gt;
&lt;br /&gt;
You can also use the test page at &#039;&#039;Services/OAuth2/Test&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== id_token ==&lt;br /&gt;
The OpenID server redirects to the PBX after a successfull login. This redirect contains two form variables:&lt;br /&gt;
* id_token&lt;br /&gt;
* state: this is just echoed from the initial authorization URL to be able to link the login in myApps to the id_token&lt;br /&gt;
&lt;br /&gt;
An id_token is a JSON Web Token in the following format:&lt;br /&gt;
&lt;br /&gt;
base64url(JSON header).base64url(JSON payload).base64url(binary signature)&lt;br /&gt;
&lt;br /&gt;
=== decoded header example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;typ&amp;quot;: &amp;quot;JWT&amp;quot;,&lt;br /&gt;
  &amp;quot;alg&amp;quot;: &amp;quot;RS256&amp;quot;,&lt;br /&gt;
  &amp;quot;x5t&amp;quot;: &amp;quot;VtIJQ2e2n7_Nmui0Bk7veW5IUPQ&amp;quot;,&lt;br /&gt;
  &amp;quot;kid&amp;quot;: &amp;quot;VtIJQ2e2n7_Nmui0Bk7veW5IUPQ&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== decoded payload example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;aud&amp;quot;: &amp;quot;8e4e2791-8583-4141-ce5b-a16f048758d9&amp;quot;,&lt;br /&gt;
  &amp;quot;iss&amp;quot;: &amp;quot;https://adfs.domain.com/adfs&amp;quot;,&lt;br /&gt;
  &amp;quot;iat&amp;quot;: 1663142781,&lt;br /&gt;
  &amp;quot;nbf&amp;quot;: 1663142781,&lt;br /&gt;
  &amp;quot;exp&amp;quot;: 1663146381,&lt;br /&gt;
  &amp;quot;auth_time&amp;quot;: 1663138217,&lt;br /&gt;
  &amp;quot;nonce&amp;quot;: &amp;quot;123456&amp;quot;,&lt;br /&gt;
  &amp;quot;sub&amp;quot;: &amp;quot;wtj0QFR+Y2vsjTJXCclEZ4vtQKIEZKIOSpPRvxxLIxY=&amp;quot;,&lt;br /&gt;
  &amp;quot;upn&amp;quot;: &amp;quot;username@domain.com&amp;quot;,&lt;br /&gt;
  &amp;quot;unique_name&amp;quot;: &amp;quot;DOMAIN\\username&amp;quot;,&lt;br /&gt;
  &amp;quot;sid&amp;quot;: &amp;quot;S-1-5-11-864245398-616249376-725345543-3105&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== signature ===&lt;br /&gt;
The signature is binary. The signature is verified by calculating the SHA256 hash of &amp;quot;base64url(header).base64url(payload)&amp;quot; and generation of an RSA public key of the &#039;&#039;&#039;n&#039;&#039;&#039; and &#039;&#039;&#039;e&#039;&#039;&#039; properties of the OpenID key with the &#039;&#039;&#039;kid&#039;&#039;&#039; retrieved inside the header JSON. With this rsa key and the hash the binary signature is verified.&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_Let%27s_Encrypt&amp;diff=70727</id>
		<title>Reference14r1:Concept Let&#039;s Encrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_Let%27s_Encrypt&amp;diff=70727"/>
		<updated>2024-01-31T11:54:57Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Devices certificate configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Let%27s%20Encrypt]]&lt;br /&gt;
&lt;br /&gt;
Certificates are automatically generated for innovaphone gateways and App Platforms.&lt;br /&gt;
&lt;br /&gt;
== Applies to ==&lt;br /&gt;
* innovaphone gateways from version 14r1&lt;br /&gt;
* innovaphone App Platform with version 14r1 apps (image version 110036 or higher)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
* Each configured innovaphone client requests a new certificate &#039;&#039;&#039;30&#039;&#039;&#039; days before it&#039;s current certificate expires.&lt;br /&gt;
* Therefor an app websocket connection is opened to the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
* The client sends a certificate signing request to the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
* The Connector for Let&#039;s Encrypt App Service itself communitates via HTTPs and [https://en.wikipedia.org/wiki/JSON_Web_Token JWT] with Let&#039;s Encrypt to request a new certificate.&lt;br /&gt;
* Let&#039;s Encrypt triggers an HTTP challenge for every DNS entry where the token for the DNS entry is verified.&lt;br /&gt;
** the HTTP challenge always works &#039;&#039;&#039;without&#039;&#039;&#039; HTTPS on Port 80 on a subpath of &#039;&#039;&#039;/.well-known/acme-challenge/&#039;&#039;&#039;, e.g. http://mydns.com/.well-known/acme-challenge/1290378712893z12983&lt;br /&gt;
* After successfull HTTP challenges for every DNS name, the new certificate is send back to the client.&lt;br /&gt;
* The certificate is installed X days before the old certificate expires, while X can be configured in the PBX Manager Plugin.&lt;br /&gt;
&lt;br /&gt;
=== Flow without Reverse Proxy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:letsencrypt-flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Flow with Reverse Proxy ===&lt;br /&gt;
[[Image:letsencrypt-flow-rp.png]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
=== ACMEv2 compliant certification service ===&lt;br /&gt;
&lt;br /&gt;
Our Connector for Let&#039;s Encrypt App Service uses the ACMEv2 protocol. So in general every ACMEv2 compliant service could be used.&amp;lt;br/&amp;gt;&lt;br /&gt;
Officially tested is Let&#039;s Encrypt itself with this URL: https://acme-v02.api.letsencrypt.org&lt;br /&gt;
&lt;br /&gt;
=== Gateways and App Platform ===&lt;br /&gt;
* Firmware from version 14r1 or later&lt;br /&gt;
* innovaphone App Platform with App Platform Manager version 14r1 or higher and image version 110036 or higher&lt;br /&gt;
* innovaphone App Connector for Let&#039;s Encrypt version 14r1 or higher&lt;br /&gt;
* working DNS configuration&lt;br /&gt;
&lt;br /&gt;
=== Reverse-Proxy ===&lt;br /&gt;
&lt;br /&gt;
* Port 80 must be available from WAN (external DNS should be correct for every DNS name, which gets a Let&#039;s Encrypt certificate) to the Reverse-Proxy, as the HTTP challenge uses this port to verify the token. (The ACMEv2 protocol doesn&#039;t allow another port!)&lt;br /&gt;
* The Reverse-Proxy automatically forwards incoming requests to &amp;lt;code&amp;gt;/.well-known/acme-challenge/&amp;lt;/code&amp;gt; to the Connector for Let&#039;s Encrypt App before the local ruleset is checked. The App checks if the challenge can be verified.&lt;br /&gt;
** If this is not possible, because the App doesn&#039;t know anything about this request, the Reverse-Proxy takes care about the request by its normal configured ruleset.&lt;br /&gt;
** This means: if a 3rd-party device behind the Reverse-Proxy tries to generate a Let&#039;s Encrypt certificate by themselves (without the Connector for Let&#039;s Encrypt App) you have to create a rule for the Path &amp;quot;&#039;&#039;&#039;/.well-known/acme-challenge/&#039;&#039;&#039;&amp;quot; in your Reverse-proxy rules.&lt;br /&gt;
** Conclusion: If you want to use the automatic forwarding you have to connect the Reverse-Proxy as the first device to the app. Otherwise, devices behind Reverse-Proxy (mostly the PBX) can&#039;t obtain a certificate.&lt;br /&gt;
* The App Platform must be able to communicate with the Let&#039;s Encrypt URLs.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* You can configure up to &#039;&#039;&#039;100&#039;&#039;&#039; DNS entries for a single device. More DNS entries are not supported by Let&#039;s Encrypt.&amp;lt;br/&amp;gt;&lt;br /&gt;
* You cannot configure DNS entries with wildcards. Such wildcard entries require the so called DNS challenge mechanism which is not supported by our Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Connector for Let&#039;s Encrypt PBX Manager Plugin ===&lt;br /&gt;
Configure the [[Reference14r1:Concept_App_Service_Let%27s_Encrypt#Let.27s_Encypt_Config | PBX Manager Plugin]] of the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone Gateways ===&lt;br /&gt;
Configure the [[Reference14r1:Services/Letsencrypt | Let&#039;s Encrypt service]] on every gateway which shall get a Let&#039;s Encrypt certificate.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone App Platform ===&lt;br /&gt;
Configure Let&#039;s Encrypt in the settings of the App Platform Manager on every App Platform which shall get a Let&#039;s Encrypt certificate.&lt;br /&gt;
&lt;br /&gt;
=== RP ===&lt;br /&gt;
If your gateways and/or App Platforms are behind an innovaphone reverse proxy, you must configure the [[Reference14r1:Services/Letsencrypt | Let&#039;s Encrypt service]] here too.&amp;lt;br/&amp;gt;&lt;br /&gt;
You must configure all DNS names which are used by the individual devices behind the RP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The RP will request a certificate with multiple SAN entries while every individual device will request an own certificate with a single SAN entry (or still multiple if a single device shall have multiple DNS entries).&lt;br /&gt;
&lt;br /&gt;
=== Devices certificate configuration ===&lt;br /&gt;
If you want to rollout the Let&#039;s Encrypt root certificates to your devices, configure the URL for Let&#039;s Encrypt root certificates in a certificates configuration (App Devices -&amp;gt; Domains -&amp;gt; your domain -&amp;gt; Device Configurations) which will then ensure that always the latest root certificates are available in the trust list of your devices.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can find this URL in the [[Reference14r1:Apps/PbxManager/App_Connector_for_Let&#039;s_Encrypt | PBX Manager Plugin]].&lt;br /&gt;
&lt;br /&gt;
== Tracing and logging ==&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
The following trace flags can be activated at [[{{NAMESPACE}}:Maintenance/Diagnostics/Tracing | Maintenance/Diagnostics/Tracing]].&lt;br /&gt;
&lt;br /&gt;
;Let&#039;s Encrypt&lt;br /&gt;
: communication between gateway and the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
: processing of incoming id_tokens&lt;br /&gt;
&lt;br /&gt;
;HTTP Client&lt;br /&gt;
: the HTTPS communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
&lt;br /&gt;
=== App Platform ===&lt;br /&gt;
&lt;br /&gt;
Enable these trace flags for diagnostics:&lt;br /&gt;
&lt;br /&gt;
==== App Platform Manager ====&lt;br /&gt;
;App&lt;br /&gt;
: requests of new certificates&lt;br /&gt;
;AppWebsocket&lt;br /&gt;
: communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
;Websocket Client&lt;br /&gt;
: communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
&lt;br /&gt;
==== Connector for Let&#039;s Encrypt App Service ====&lt;br /&gt;
;App&lt;br /&gt;
: app logs&lt;br /&gt;
;HttpClient&lt;br /&gt;
: communication with Let&#039;s Encrypt itself&lt;br /&gt;
;AppWebsocket&lt;br /&gt;
: communication with the clients&lt;br /&gt;
&lt;br /&gt;
== Alarms and Events ==&lt;br /&gt;
* an event is generated for every failed certificate creation by the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
* an alarm is generated on the corresponding device as long as the certificate creation fails&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference14r1:Services/Letsencrypt]]&lt;br /&gt;
* [[Reference14r1:Concept_App_Service_Connector_for_Let%27s_Encrypt]]&lt;br /&gt;
* [[Reference14r1:Apps/PbxManager/App_Connector_for_Let%27s_Encrypt]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_Let%27s_Encrypt&amp;diff=70726</id>
		<title>Reference14r1:Concept Let&#039;s Encrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_Let%27s_Encrypt&amp;diff=70726"/>
		<updated>2024-01-31T11:54:20Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Devices certificate configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Let%27s%20Encrypt]]&lt;br /&gt;
&lt;br /&gt;
Certificates are automatically generated for innovaphone gateways and App Platforms.&lt;br /&gt;
&lt;br /&gt;
== Applies to ==&lt;br /&gt;
* innovaphone gateways from version 14r1&lt;br /&gt;
* innovaphone App Platform with version 14r1 apps (image version 110036 or higher)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
* Each configured innovaphone client requests a new certificate &#039;&#039;&#039;30&#039;&#039;&#039; days before it&#039;s current certificate expires.&lt;br /&gt;
* Therefor an app websocket connection is opened to the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
* The client sends a certificate signing request to the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
* The Connector for Let&#039;s Encrypt App Service itself communitates via HTTPs and [https://en.wikipedia.org/wiki/JSON_Web_Token JWT] with Let&#039;s Encrypt to request a new certificate.&lt;br /&gt;
* Let&#039;s Encrypt triggers an HTTP challenge for every DNS entry where the token for the DNS entry is verified.&lt;br /&gt;
** the HTTP challenge always works &#039;&#039;&#039;without&#039;&#039;&#039; HTTPS on Port 80 on a subpath of &#039;&#039;&#039;/.well-known/acme-challenge/&#039;&#039;&#039;, e.g. http://mydns.com/.well-known/acme-challenge/1290378712893z12983&lt;br /&gt;
* After successfull HTTP challenges for every DNS name, the new certificate is send back to the client.&lt;br /&gt;
* The certificate is installed X days before the old certificate expires, while X can be configured in the PBX Manager Plugin.&lt;br /&gt;
&lt;br /&gt;
=== Flow without Reverse Proxy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:letsencrypt-flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Flow with Reverse Proxy ===&lt;br /&gt;
[[Image:letsencrypt-flow-rp.png]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
=== ACMEv2 compliant certification service ===&lt;br /&gt;
&lt;br /&gt;
Our Connector for Let&#039;s Encrypt App Service uses the ACMEv2 protocol. So in general every ACMEv2 compliant service could be used.&amp;lt;br/&amp;gt;&lt;br /&gt;
Officially tested is Let&#039;s Encrypt itself with this URL: https://acme-v02.api.letsencrypt.org&lt;br /&gt;
&lt;br /&gt;
=== Gateways and App Platform ===&lt;br /&gt;
* Firmware from version 14r1 or later&lt;br /&gt;
* innovaphone App Platform with App Platform Manager version 14r1 or higher and image version 110036 or higher&lt;br /&gt;
* innovaphone App Connector for Let&#039;s Encrypt version 14r1 or higher&lt;br /&gt;
* working DNS configuration&lt;br /&gt;
&lt;br /&gt;
=== Reverse-Proxy ===&lt;br /&gt;
&lt;br /&gt;
* Port 80 must be available from WAN (external DNS should be correct for every DNS name, which gets a Let&#039;s Encrypt certificate) to the Reverse-Proxy, as the HTTP challenge uses this port to verify the token. (The ACMEv2 protocol doesn&#039;t allow another port!)&lt;br /&gt;
* The Reverse-Proxy automatically forwards incoming requests to &amp;lt;code&amp;gt;/.well-known/acme-challenge/&amp;lt;/code&amp;gt; to the Connector for Let&#039;s Encrypt App before the local ruleset is checked. The App checks if the challenge can be verified.&lt;br /&gt;
** If this is not possible, because the App doesn&#039;t know anything about this request, the Reverse-Proxy takes care about the request by its normal configured ruleset.&lt;br /&gt;
** This means: if a 3rd-party device behind the Reverse-Proxy tries to generate a Let&#039;s Encrypt certificate by themselves (without the Connector for Let&#039;s Encrypt App) you have to create a rule for the Path &amp;quot;&#039;&#039;&#039;/.well-known/acme-challenge/&#039;&#039;&#039;&amp;quot; in your Reverse-proxy rules.&lt;br /&gt;
** Conclusion: If you want to use the automatic forwarding you have to connect the Reverse-Proxy as the first device to the app. Otherwise, devices behind Reverse-Proxy (mostly the PBX) can&#039;t obtain a certificate.&lt;br /&gt;
* The App Platform must be able to communicate with the Let&#039;s Encrypt URLs.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* You can configure up to &#039;&#039;&#039;100&#039;&#039;&#039; DNS entries for a single device. More DNS entries are not supported by Let&#039;s Encrypt.&amp;lt;br/&amp;gt;&lt;br /&gt;
* You cannot configure DNS entries with wildcards. Such wildcard entries require the so called DNS challenge mechanism which is not supported by our Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Connector for Let&#039;s Encrypt PBX Manager Plugin ===&lt;br /&gt;
Configure the [[Reference14r1:Concept_App_Service_Let%27s_Encrypt#Let.27s_Encypt_Config | PBX Manager Plugin]] of the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone Gateways ===&lt;br /&gt;
Configure the [[Reference14r1:Services/Letsencrypt | Let&#039;s Encrypt service]] on every gateway which shall get a Let&#039;s Encrypt certificate.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone App Platform ===&lt;br /&gt;
Configure Let&#039;s Encrypt in the settings of the App Platform Manager on every App Platform which shall get a Let&#039;s Encrypt certificate.&lt;br /&gt;
&lt;br /&gt;
=== RP ===&lt;br /&gt;
If your gateways and/or App Platforms are behind an innovaphone reverse proxy, you must configure the [[Reference14r1:Services/Letsencrypt | Let&#039;s Encrypt service]] here too.&amp;lt;br/&amp;gt;&lt;br /&gt;
You must configure all DNS names which are used by the individual devices behind the RP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The RP will request a certificate with multiple SAN entries while every individual device will request an own certificate with a single SAN entry (or still multiple if a single device shall have multiple DNS entries).&lt;br /&gt;
&lt;br /&gt;
=== Devices certificate configuration ===&lt;br /&gt;
If you want to rollout the Let&#039;s Encrypt root certificates to your devices, configure the URL for Let&#039;s Encrypt root certificates in a certificates configuration (App Devices -&amp;gt; Domains -&amp;gt; your Domain -&amp;gt; Device Configurations) which will then ensure that always the latest root certificates are available in the trust list of your devices.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can find this URL in the [[Reference14r1:Apps/PbxManager/App_Connector_for_Let&#039;s_Encrypt | PBX Manager Plugin]].&lt;br /&gt;
&lt;br /&gt;
== Tracing and logging ==&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
The following trace flags can be activated at [[{{NAMESPACE}}:Maintenance/Diagnostics/Tracing | Maintenance/Diagnostics/Tracing]].&lt;br /&gt;
&lt;br /&gt;
;Let&#039;s Encrypt&lt;br /&gt;
: communication between gateway and the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
: processing of incoming id_tokens&lt;br /&gt;
&lt;br /&gt;
;HTTP Client&lt;br /&gt;
: the HTTPS communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
&lt;br /&gt;
=== App Platform ===&lt;br /&gt;
&lt;br /&gt;
Enable these trace flags for diagnostics:&lt;br /&gt;
&lt;br /&gt;
==== App Platform Manager ====&lt;br /&gt;
;App&lt;br /&gt;
: requests of new certificates&lt;br /&gt;
;AppWebsocket&lt;br /&gt;
: communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
;Websocket Client&lt;br /&gt;
: communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
&lt;br /&gt;
==== Connector for Let&#039;s Encrypt App Service ====&lt;br /&gt;
;App&lt;br /&gt;
: app logs&lt;br /&gt;
;HttpClient&lt;br /&gt;
: communication with Let&#039;s Encrypt itself&lt;br /&gt;
;AppWebsocket&lt;br /&gt;
: communication with the clients&lt;br /&gt;
&lt;br /&gt;
== Alarms and Events ==&lt;br /&gt;
* an event is generated for every failed certificate creation by the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
* an alarm is generated on the corresponding device as long as the certificate creation fails&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference14r1:Services/Letsencrypt]]&lt;br /&gt;
* [[Reference14r1:Concept_App_Service_Connector_for_Let%27s_Encrypt]]&lt;br /&gt;
* [[Reference14r1:Apps/PbxManager/App_Connector_for_Let%27s_Encrypt]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_Let%27s_Encrypt&amp;diff=70725</id>
		<title>Reference14r1:Concept Let&#039;s Encrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference14r1:Concept_Let%27s_Encrypt&amp;diff=70725"/>
		<updated>2024-01-31T11:49:41Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Reverse-Proxy */ - hint to connect Reverse-Proxy fist with the app&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Concept|Let%27s%20Encrypt]]&lt;br /&gt;
&lt;br /&gt;
Certificates are automatically generated for innovaphone gateways and App Platforms.&lt;br /&gt;
&lt;br /&gt;
== Applies to ==&lt;br /&gt;
* innovaphone gateways from version 14r1&lt;br /&gt;
* innovaphone App Platform with version 14r1 apps (image version 110036 or higher)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
* Each configured innovaphone client requests a new certificate &#039;&#039;&#039;30&#039;&#039;&#039; days before it&#039;s current certificate expires.&lt;br /&gt;
* Therefor an app websocket connection is opened to the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
* The client sends a certificate signing request to the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
* The Connector for Let&#039;s Encrypt App Service itself communitates via HTTPs and [https://en.wikipedia.org/wiki/JSON_Web_Token JWT] with Let&#039;s Encrypt to request a new certificate.&lt;br /&gt;
* Let&#039;s Encrypt triggers an HTTP challenge for every DNS entry where the token for the DNS entry is verified.&lt;br /&gt;
** the HTTP challenge always works &#039;&#039;&#039;without&#039;&#039;&#039; HTTPS on Port 80 on a subpath of &#039;&#039;&#039;/.well-known/acme-challenge/&#039;&#039;&#039;, e.g. http://mydns.com/.well-known/acme-challenge/1290378712893z12983&lt;br /&gt;
* After successfull HTTP challenges for every DNS name, the new certificate is send back to the client.&lt;br /&gt;
* The certificate is installed X days before the old certificate expires, while X can be configured in the PBX Manager Plugin.&lt;br /&gt;
&lt;br /&gt;
=== Flow without Reverse Proxy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:letsencrypt-flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Flow with Reverse Proxy ===&lt;br /&gt;
[[Image:letsencrypt-flow-rp.png]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
=== ACMEv2 compliant certification service ===&lt;br /&gt;
&lt;br /&gt;
Our Connector for Let&#039;s Encrypt App Service uses the ACMEv2 protocol. So in general every ACMEv2 compliant service could be used.&amp;lt;br/&amp;gt;&lt;br /&gt;
Officially tested is Let&#039;s Encrypt itself with this URL: https://acme-v02.api.letsencrypt.org&lt;br /&gt;
&lt;br /&gt;
=== Gateways and App Platform ===&lt;br /&gt;
* Firmware from version 14r1 or later&lt;br /&gt;
* innovaphone App Platform with App Platform Manager version 14r1 or higher and image version 110036 or higher&lt;br /&gt;
* innovaphone App Connector for Let&#039;s Encrypt version 14r1 or higher&lt;br /&gt;
* working DNS configuration&lt;br /&gt;
&lt;br /&gt;
=== Reverse-Proxy ===&lt;br /&gt;
&lt;br /&gt;
* Port 80 must be available from WAN (external DNS should be correct for every DNS name, which gets a Let&#039;s Encrypt certificate) to the Reverse-Proxy, as the HTTP challenge uses this port to verify the token. (The ACMEv2 protocol doesn&#039;t allow another port!)&lt;br /&gt;
* The Reverse-Proxy automatically forwards incoming requests to &amp;lt;code&amp;gt;/.well-known/acme-challenge/&amp;lt;/code&amp;gt; to the Connector for Let&#039;s Encrypt App before the local ruleset is checked. The App checks if the challenge can be verified.&lt;br /&gt;
** If this is not possible, because the App doesn&#039;t know anything about this request, the Reverse-Proxy takes care about the request by its normal configured ruleset.&lt;br /&gt;
** This means: if a 3rd-party device behind the Reverse-Proxy tries to generate a Let&#039;s Encrypt certificate by themselves (without the Connector for Let&#039;s Encrypt App) you have to create a rule for the Path &amp;quot;&#039;&#039;&#039;/.well-known/acme-challenge/&#039;&#039;&#039;&amp;quot; in your Reverse-proxy rules.&lt;br /&gt;
** Conclusion: If you want to use the automatic forwarding you have to connect the Reverse-Proxy as the first device to the app. Otherwise, devices behind Reverse-Proxy (mostly the PBX) can&#039;t obtain a certificate.&lt;br /&gt;
* The App Platform must be able to communicate with the Let&#039;s Encrypt URLs.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* You can configure up to &#039;&#039;&#039;100&#039;&#039;&#039; DNS entries for a single device. More DNS entries are not supported by Let&#039;s Encrypt.&amp;lt;br/&amp;gt;&lt;br /&gt;
* You cannot configure DNS entries with wildcards. Such wildcard entries require the so called DNS challenge mechanism which is not supported by our Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Connector for Let&#039;s Encrypt PBX Manager Plugin ===&lt;br /&gt;
Configure the [[Reference14r1:Concept_App_Service_Let%27s_Encrypt#Let.27s_Encypt_Config | PBX Manager Plugin]] of the Connector for Let&#039;s Encrypt App Service.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone Gateways ===&lt;br /&gt;
Configure the [[Reference14r1:Services/Letsencrypt | Let&#039;s Encrypt service]] on every gateway which shall get a Let&#039;s Encrypt certificate.&lt;br /&gt;
&lt;br /&gt;
=== innovaphone App Platform ===&lt;br /&gt;
Configure Let&#039;s Encrypt in the settings of the App Platform Manager on every App Platform which shall get a Let&#039;s Encrypt certificate.&lt;br /&gt;
&lt;br /&gt;
=== RP ===&lt;br /&gt;
If your gateways and/or App Platforms are behind an innovaphone reverse proxy, you must configure the [[Reference14r1:Services/Letsencrypt | Let&#039;s Encrypt service]] here too.&amp;lt;br/&amp;gt;&lt;br /&gt;
You must configure all DNS names which are used by the individual devices behind the RP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The RP will request a certificate with multiple SAN entries while every individual device will request an own certificate with a single SAN entry (or still multiple if a single device shall have multiple DNS entries).&lt;br /&gt;
&lt;br /&gt;
=== Devices certificate configuration ===&lt;br /&gt;
If you want to rollout the Let&#039;s Encrypt root certificates to your devices, configure the URL for Let&#039;s Encrypt root certificates in a certificates configuration which will then ensure that always the latest root certificates are available in the trust list of your devices.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can find this URL in the [[Reference14r1:Apps/PbxManager/App_Connector_for_Let&#039;s_Encrypt | PBX Manager Plugin]].&lt;br /&gt;
&lt;br /&gt;
== Tracing and logging ==&lt;br /&gt;
=== Gateways ===&lt;br /&gt;
The following trace flags can be activated at [[{{NAMESPACE}}:Maintenance/Diagnostics/Tracing | Maintenance/Diagnostics/Tracing]].&lt;br /&gt;
&lt;br /&gt;
;Let&#039;s Encrypt&lt;br /&gt;
: communication between gateway and the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
: processing of incoming id_tokens&lt;br /&gt;
&lt;br /&gt;
;HTTP Client&lt;br /&gt;
: the HTTPS communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
&lt;br /&gt;
=== App Platform ===&lt;br /&gt;
&lt;br /&gt;
Enable these trace flags for diagnostics:&lt;br /&gt;
&lt;br /&gt;
==== App Platform Manager ====&lt;br /&gt;
;App&lt;br /&gt;
: requests of new certificates&lt;br /&gt;
;AppWebsocket&lt;br /&gt;
: communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
;Websocket Client&lt;br /&gt;
: communication with the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
&lt;br /&gt;
==== Connector for Let&#039;s Encrypt App Service ====&lt;br /&gt;
;App&lt;br /&gt;
: app logs&lt;br /&gt;
;HttpClient&lt;br /&gt;
: communication with Let&#039;s Encrypt itself&lt;br /&gt;
;AppWebsocket&lt;br /&gt;
: communication with the clients&lt;br /&gt;
&lt;br /&gt;
== Alarms and Events ==&lt;br /&gt;
* an event is generated for every failed certificate creation by the Connector for Let&#039;s Encrypt App Service&lt;br /&gt;
* an alarm is generated on the corresponding device as long as the certificate creation fails&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Reference14r1:Services/Letsencrypt]]&lt;br /&gt;
* [[Reference14r1:Concept_App_Service_Connector_for_Let%27s_Encrypt]]&lt;br /&gt;
* [[Reference14r1:Apps/PbxManager/App_Connector_for_Let%27s_Encrypt]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=67607</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=67607"/>
		<updated>2023-05-25T05:37:29Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: Give visibility-entries the flag &amp;#039;visible&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Disable all forkings with app rcc at node &#039;Testnode&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@node=&amp;quot;Testnode&amp;quot;]/fork[@app=&amp;quot;rcc&amp;quot;][not(@off)] -&amp;gt; + @off = true&lt;br /&gt;
&lt;br /&gt;
=== Give visibility-entries the flag &#039;visible&#039; ===&lt;br /&gt;
This is a helpful job for migrations from V12 to set this in V13 new flag.&lt;br /&gt;
 /user[not(pseudo)][@e164]/allow[not(@visible)] -&amp;gt; + @visible = true&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto_talk:CH_-_Plus_Vier_Eins_-_IPTelefonie_SIP-Provider_(2023)&amp;diff=67086</id>
		<title>Howto talk:CH - Plus Vier Eins - IPTelefonie SIP-Provider (2023)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto_talk:CH_-_Plus_Vier_Eins_-_IPTelefonie_SIP-Provider_(2023)&amp;diff=67086"/>
		<updated>2023-04-18T09:15:55Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: my fault - comment deleted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto_talk:CH_-_Plus_Vier_Eins_-_IPTelefonie_SIP-Provider_(2023)&amp;diff=66851</id>
		<title>Howto talk:CH - Plus Vier Eins - IPTelefonie SIP-Provider (2023)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto_talk:CH_-_Plus_Vier_Eins_-_IPTelefonie_SIP-Provider_(2023)&amp;diff=66851"/>
		<updated>2023-04-03T12:12:37Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: New page: There is a eror in description. It will relased with V13r3sr4 and not with V13r3sr3.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is a eror in description. It will relased with V13r3sr4 and not with V13r3sr3.&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto12r1:Avoid_Multiple_Callbacks&amp;diff=66704</id>
		<title>Howto12r1:Avoid Multiple Callbacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto12r1:Avoid_Multiple_Callbacks&amp;diff=66704"/>
		<updated>2023-03-29T08:22:12Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Known Problems / Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you call a group number, several phones or terminals ring at the same time. A similar function can also be created using a queue. If such a group call is not answered, the missed call is displayed on all the terminals. This applies to all types of terminals: an innovaphone IP telephone, an IP DECT telephone, an IP telephone from a third party or an analogue telephone connected via an adapter. Missed calls are also displayed simultaneously in the various myApps clients: the phone app, the softphone app including the mobile client, the RCC app or the switchboard app. If one of these participants calls back, the other members of the group are often unaware of this and call back independently, unaware of the callback that has already taken place. This is not only a waste of time, but also leads to unwanted reactions from the person being called. For example, the caller cannot understand why, after calling a single number, they are now being called back several times and by different people. The problem of multiple callbacks is exacerbated in the age of mobile and distributed workplaces. There are software solutions that try to solve this problem. However, such solutions are difficult or impossible to use in some workplaces and scenarios. For example, physical telephones are not considered at all, and it is impossible to cancel missed calls on an analogue phone. The proposed solution solves this problem, works fully automatically, does not require any user interaction or training and is device independent, i.e. it works with any phone or client. Here is how it works.&lt;br /&gt;
&lt;br /&gt;
==Applies to==&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX V12 or higher &lt;br /&gt;
&lt;br /&gt;
The feature requires no license.&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
The user calls the missed call as usual from the callback list of the phone or application. The first user in the group who calls back is immediately connected to the caller. If the called user is busy and is called back again by the same user, this is done immediately. So for the first recalled, everything is as usual.&lt;br /&gt;
If another (the second and all others) user of the called group calls back a voice announcement &amp;quot;The callback has already been made by the participant&amp;quot; followed by the caller&#039;s number and the prompt &amp;quot; Wait to call back anyway&amp;quot;. If the participant does not hang up, he will be connected to the caller after two seconds. In this case, he automatically becomes the status of the &amp;quot;first&amp;quot; caller, so he can recall again without a warning (while the other group members now receive a warning).&lt;br /&gt;
&lt;br /&gt;
==How it works==&lt;br /&gt;
The group (or queue) is not called directly, but to reach the group number you must call first a XML. This XML manipulates the number of the caller and adds an prefix. Then writes this number in a file and now connects to the group number (or queue).&lt;br /&gt;
If this number is now called back from the call list, a reality a second XML is called because of then previously prefix. This 2nd XML checks whether this is the first callback to this number and if so, the call is transfered to the caller immediately, if not, the warning message is played and if the call is up after 2 seconds the connection is made to the destination and the new recaller stored in a file.&lt;br /&gt;
&lt;br /&gt;
Example: The group call number should be &amp;quot;9&amp;quot;, actually the number &amp;quot;81&amp;quot; is assigned to the group and the number &amp;quot;9&amp;quot; to the XML. If a call comes from the number &amp;quot;01234&amp;quot; to &amp;quot;9&amp;quot;, the XML remembers this number and adds the prefix &amp;quot;88&amp;quot;. So the call list doesn&#039;t say &amp;quot;01234&amp;quot; but &amp;quot;8801234&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If this number is called, the call comes to the second XML with the number &amp;quot;88&amp;quot;. This second XML recognizes &amp;quot;01234&amp;quot; as the called number, saves the phone number of the callback and connects to this number. If a second user calls back the &amp;quot;8801234&amp;quot;, the second XML recognizes that a user has already called back and plays the warning.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
All files are copied into a myApps directory (Files App). The necessary subdirectories are created automatically. Two VM objects are now created in the PBX, one for incoming calls (IN) and one for callback (OUT). The first receives the number of the group (or the WQ) and the second the desired Prefix. Enter the parameter &amp;quot;$_pbxcoder=g711a&amp;quot; in the URL of the XML. In our previous example, the VM object pointing to the &amp;quot;MMcallbackIN.xml&amp;quot; file would be assigned the number &amp;quot;9&amp;quot; and the VM object pointing to the &amp;quot;MMcallbackOUT.xml&amp;quot; file would be assigned the number &amp;quot;88&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Open now the first XML (“MMcallbackIN.xml”) with a text editor and edit line 5. The number of the group is specified under “value”.&lt;br /&gt;
(in the example above the &amp;quot;81&amp;quot;, i.e. &amp;lt;assign out=&amp;quot;$Group&amp;quot; value=&amp;quot;81&amp;quot; /&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
In line 6, the prefix code is specified (in the example above this is &amp;quot;88&amp;quot;, i.e. &amp;lt;assign out=&amp;quot;$CBxml&amp;quot; value=&amp;quot;88&amp;quot; /&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note: If the phone number of the caller is transferred from the PBX to the XML without a leading zero (just try it), you can add the trunk access code here, so in the example instead of &amp;quot;88&amp;quot; there would simply be &amp;quot;880&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Country and language customization==&lt;br /&gt;
The package contains only german language data in dthe .g711a format. Therefore you have to specify the corresponding fixed codec in the URL, e.g.&lt;br /&gt;
http://xxx.zz.yy.ww/DRIVE/CF0/MCB/MMcallbackOUT.xml?$_pbxcoder=g711a&lt;br /&gt;
This is only required for &amp;quot;OUT XML&amp;quot; because &amp;quot;IN XML&amp;quot; does not reflect any language data.&lt;br /&gt;
&lt;br /&gt;
If you have to play messages in another language (or the content should be different), proceed as follows:&lt;br /&gt;
&lt;br /&gt;
Create the voice file &amp;quot;Track100.wav&amp;quot; with the content &amp;quot;The callback has already been processed by the subscriber&amp;quot; and the voice file &amp;quot;Track101.wav&amp;quot; with the content &amp;quot;Please Wait to call back anyway.” Then create the files with the announcement zero to nine “0.wav” to “9.wav”. &lt;br /&gt;
&lt;br /&gt;
All of these files are now to be transcoded and imported using the conversion tool from wav to g711.&lt;br /&gt;
Note: the prompts 0-9 can be found in the voicemail application.&lt;br /&gt;
&lt;br /&gt;
==Known Problems / Limitations==&lt;br /&gt;
• The caller&#039;s phone number is changed by the XML, so it is not possible to resolve the external caller&#039;s name from a phonebook or it is necessary to save the phone number with and without the area code.&lt;br /&gt;
&lt;br /&gt;
• Only en-bloc dialling is possible, but this is the case anyway when dialling from call lists.&lt;br /&gt;
&lt;br /&gt;
• If a call is answered and called back (e.g. with redial), the mechanism described also takes place. So there is no distinction between missed and answered calls; if a participant who called the group is called back, the other group members receive the warning.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto12r1:Avoid_Multiple_Callbacks&amp;diff=66703</id>
		<title>Howto12r1:Avoid Multiple Callbacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto12r1:Avoid_Multiple_Callbacks&amp;diff=66703"/>
		<updated>2023-03-29T07:10:07Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you call a group number, several phones or terminals ring at the same time. A similar function can also be created using a queue. If such a group call is not answered, the missed call is displayed on all the terminals. This applies to all types of terminals: an innovaphone IP telephone, an IP DECT telephone, an IP telephone from a third party or an analogue telephone connected via an adapter. Missed calls are also displayed simultaneously in the various myApps clients: the phone app, the softphone app including the mobile client, the RCC app or the switchboard app. If one of these participants calls back, the other members of the group are often unaware of this and call back independently, unaware of the callback that has already taken place. This is not only a waste of time, but also leads to unwanted reactions from the person being called. For example, the caller cannot understand why, after calling a single number, they are now being called back several times and by different people. The problem of multiple callbacks is exacerbated in the age of mobile and distributed workplaces. There are software solutions that try to solve this problem. However, such solutions are difficult or impossible to use in some workplaces and scenarios. For example, physical telephones are not considered at all, and it is impossible to cancel missed calls on an analogue phone. The proposed solution solves this problem, works fully automatically, does not require any user interaction or training and is device independent, i.e. it works with any phone or client. Here is how it works.&lt;br /&gt;
&lt;br /&gt;
==Applies to==&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX V12 or higher &lt;br /&gt;
&lt;br /&gt;
The feature requires no license.&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
The user calls the missed call as usual from the callback list of the phone or application. The first user in the group who calls back is immediately connected to the caller. If the called user is busy and is called back again by the same user, this is done immediately. So for the first recalled, everything is as usual.&lt;br /&gt;
If another (the second and all others) user of the called group calls back a voice announcement &amp;quot;The callback has already been made by the participant&amp;quot; followed by the caller&#039;s number and the prompt &amp;quot; Wait to call back anyway&amp;quot;. If the participant does not hang up, he will be connected to the caller after two seconds. In this case, he automatically becomes the status of the &amp;quot;first&amp;quot; caller, so he can recall again without a warning (while the other group members now receive a warning).&lt;br /&gt;
&lt;br /&gt;
==How it works==&lt;br /&gt;
The group (or queue) is not called directly, but to reach the group number you must call first a XML. This XML manipulates the number of the caller and adds an prefix. Then writes this number in a file and now connects to the group number (or queue).&lt;br /&gt;
If this number is now called back from the call list, a reality a second XML is called because of then previously prefix. This 2nd XML checks whether this is the first callback to this number and if so, the call is transfered to the caller immediately, if not, the warning message is played and if the call is up after 2 seconds the connection is made to the destination and the new recaller stored in a file.&lt;br /&gt;
&lt;br /&gt;
Example: The group call number should be &amp;quot;9&amp;quot;, actually the number &amp;quot;81&amp;quot; is assigned to the group and the number &amp;quot;9&amp;quot; to the XML. If a call comes from the number &amp;quot;01234&amp;quot; to &amp;quot;9&amp;quot;, the XML remembers this number and adds the prefix &amp;quot;88&amp;quot;. So the call list doesn&#039;t say &amp;quot;01234&amp;quot; but &amp;quot;8801234&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If this number is called, the call comes to the second XML with the number &amp;quot;88&amp;quot;. This second XML recognizes &amp;quot;01234&amp;quot; as the called number, saves the phone number of the callback and connects to this number. If a second user calls back the &amp;quot;8801234&amp;quot;, the second XML recognizes that a user has already called back and plays the warning.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
All files are copied into a myApps directory (Files App). The necessary subdirectories are created automatically. Two VM objects are now created in the PBX, one for incoming calls (IN) and one for callback (OUT). The first receives the number of the group (or the WQ) and the second the desired Prefix. Enter the parameter &amp;quot;$_pbxcoder=g711a&amp;quot; in the URL of the XML. In our previous example, the VM object pointing to the &amp;quot;MMcallbackIN.xml&amp;quot; file would be assigned the number &amp;quot;9&amp;quot; and the VM object pointing to the &amp;quot;MMcallbackOUT.xml&amp;quot; file would be assigned the number &amp;quot;88&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Open now the first XML (“MMcallbackIN.xml”) with a text editor and edit line 5. The number of the group is specified under “value”.&lt;br /&gt;
(in the example above the &amp;quot;81&amp;quot;, i.e. &amp;lt;assign out=&amp;quot;$Group&amp;quot; value=&amp;quot;81&amp;quot; /&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
In line 6, the prefix code is specified (in the example above this is &amp;quot;88&amp;quot;, i.e. &amp;lt;assign out=&amp;quot;$CBxml&amp;quot; value=&amp;quot;88&amp;quot; /&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note: If the phone number of the caller is transferred from the PBX to the XML without a leading zero (just try it), you can add the trunk access code here, so in the example instead of &amp;quot;88&amp;quot; there would simply be &amp;quot;880&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Country and language customization==&lt;br /&gt;
The package contains only german language data in dthe .g711a format. Therefore you have to specify the corresponding fixed codec in the URL, e.g.&lt;br /&gt;
http://xxx.zz.yy.ww/DRIVE/CF0/MCB/MMcallbackOUT.xml?$_pbxcoder=g711a&lt;br /&gt;
This is only required for &amp;quot;OUT XML&amp;quot; because &amp;quot;IN XML&amp;quot; does not reflect any language data.&lt;br /&gt;
&lt;br /&gt;
If you have to play messages in another language (or the content should be different), proceed as follows:&lt;br /&gt;
&lt;br /&gt;
Create the voice file &amp;quot;Track100.wav&amp;quot; with the content &amp;quot;The callback has already been processed by the subscriber&amp;quot; and the voice file &amp;quot;Track101.wav&amp;quot; with the content &amp;quot;Please Wait to call back anyway.” Then create the files with the announcement zero to nine “0.wav” to “9.wav”. &lt;br /&gt;
&lt;br /&gt;
All of these files are now to be transcoded and imported using the conversion tool from wav to g711.&lt;br /&gt;
Note: the prompts 0-9 can be found in the voicemail application.&lt;br /&gt;
&lt;br /&gt;
==Known Problems / Limitations==&lt;br /&gt;
• The caller&#039;s phone number is changed by the XML, so it is not possible to resolve the external caller&#039;s name from a phonebook or it is necessary to save the phone number with and without the area code.&lt;br /&gt;
&lt;br /&gt;
• Only en-bloc dialing is possible, but this is the case anyway when dialing from call lists.&lt;br /&gt;
&lt;br /&gt;
• If a call is answered and called back (e.g. with redial), the mechanism described also takes place. So there is no distinction between missed and answered calls; if a participant who called the group is called back, the other group members receive the warning.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto12r1:Avoid_Multiple_Callbacks&amp;diff=66702</id>
		<title>Howto12r1:Avoid Multiple Callbacks</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto12r1:Avoid_Multiple_Callbacks&amp;diff=66702"/>
		<updated>2023-03-29T07:07:37Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Operation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you call a group number, several phones or terminals ring at the same time. A similar function can also be created using a queue. If such a group call is not answered, the missed call is displayed on all the terminals. This applies to all types of terminals: an innovaphone IP telephone, an IP DECT telephone, an IP telephone from a third party or an analogue telephone connected via an adapter. Missed calls are also displayed simultaneously in the various myApps clients: the phone app, the softphone app including the mobile client, the RCC app or the switchboard app. If one of these participants calls back, the other members of the group are often unaware of this and call back independently, unaware of the callback that has already taken place. This is not only a waste of time, but also leads to unwanted reactions from the person being called. For example, the caller cannot understand why, after calling a single number, they are now being called back several times and by different people. The problem of multiple callbacks is exacerbated in the age of mobile and distributed workplaces. There are software solutions that try to solve this problem. However, such solutions are difficult or impossible to use in some workplaces and scenarios. For example, physical telephones are not considered at all, and it is impossible to cancel missed calls on an analogue phone. The proposed solution solves this problem, works fully automatically, does not require any user interaction or training and is device independent, i.e. it works with any phone or client. Here is how it works.&lt;br /&gt;
&lt;br /&gt;
==Applies to==&lt;br /&gt;
&lt;br /&gt;
innovaphone PBX V12 or higher &lt;br /&gt;
&lt;br /&gt;
The feature requires no license.&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
The user calls the missed call as usual from the callback list of the phone or application. The first user in the group who calls back is immediately connected to the caller. If the called user is busy and is called back again by the same user, this is done immediately. So for the first recalled, everything is as usual.&lt;br /&gt;
If another (the second and all others) user of the called group calls back a voice announcement &amp;quot;The callback has already been made by the participant&amp;quot; followed by the caller&#039;s number and the prompt &amp;quot; Wait to call back anyway&amp;quot;. If the participant does not hang up, he will be connected to the caller after two seconds. In this case, he automatically becomes the status of the &amp;quot;first&amp;quot; caller, so he can recall again without a warning (while the other group members now receive a warning).&lt;br /&gt;
&lt;br /&gt;
==How it works==&lt;br /&gt;
The group (or queue) is not called directly, but to reach the group number you must call first a XML. This XML manipulates the number of the caller and adds an prefix. Then writes this number in a file and now connects to the group number (or queue).&lt;br /&gt;
If this number is now called back from the call list, a reality a second XML is called because of then previously prefix. This 2nd XML checks whether this is the first callback to this number and if so, the call is transfered to the caller immediately, if not, the warning message is played and if the call is up after 2 seconds the connection is made to the destination and the new recaller stored in a file.&lt;br /&gt;
&lt;br /&gt;
Example: The group call number should be &amp;quot;9&amp;quot;, actually the number &amp;quot;81&amp;quot; is assigned to the group and the number &amp;quot;9&amp;quot; to the XML. If a call comes from the number &amp;quot;01234&amp;quot; to &amp;quot;9&amp;quot;, the XML remembers this number and adds the prefix &amp;quot;88&amp;quot;. So the call list doesn&#039;t say &amp;quot;01234&amp;quot; but &amp;quot;8801234&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If this number is called, the call comes to the second XML with the number &amp;quot;88&amp;quot;. This second XML recognizes &amp;quot;01234&amp;quot; as the called number, saves the phone number of the callback and connects to this number. If a second user calls back the &amp;quot;8801234&amp;quot;, the second XML recognizes that a user has already called back and plays the warning.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
All files are copied into a myApps directory (Files App). The necessary subdirectories are created automatically. Two VM objects are now created in the PBX, one for the incoming calls (IN) and one for the callback (OUT). The first receives the number of the group (or the WQ), the second the desired Prefix. Enter the parameter &amp;quot;$_pbxcoder=g711a&amp;quot; in the URL of the XML. In our previous example, the VM object pointing to the &amp;quot;MMcallbackIN.xml&amp;quot; file would be assigned the number &amp;quot;9&amp;quot; and the VM object pointing to the &amp;quot;MMcallbackOUT.xml&amp;quot; file would be assigned the number &amp;quot;88&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Open now the first XML (“MMcallbackIN.xml”) with a text editor and edit line 5. The number of the group is specified under “value”.&lt;br /&gt;
(in the example above the &amp;quot;81&amp;quot;, i.e. &amp;lt;assign out=&amp;quot;$Group&amp;quot; value=&amp;quot;81&amp;quot; /&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
In line 6, the prefix code is specified (in the example above this is &amp;quot;88&amp;quot;, i.e. &amp;lt;assign out=&amp;quot;$CBxml&amp;quot; value=&amp;quot;88&amp;quot; /&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note: If the phone number of the caller is transferred from the PBX to the XML without a leading zero (just try it), you can add the trunk access code here, so in the example instead of &amp;quot;88&amp;quot; there would simply be &amp;quot;880&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Country and language customization==&lt;br /&gt;
The package contains only german language data in dthe .g711a format. Therefore you have to specify the corresponding fixed codec in the URL, e.g.&lt;br /&gt;
http://xxx.zz.yy.ww/DRIVE/CF0/MCB/MMcallbackOUT.xml?$_pbxcoder=g711a&lt;br /&gt;
This is only required for &amp;quot;OUT XML&amp;quot; because &amp;quot;IN XML&amp;quot; does not reflect any language data.&lt;br /&gt;
&lt;br /&gt;
If you have to play messages in another language (or the content should be different), proceed as follows:&lt;br /&gt;
&lt;br /&gt;
Create the voice file &amp;quot;Track100.wav&amp;quot; with the content &amp;quot;The callback has already been processed by the subscriber&amp;quot; and the voice file &amp;quot;Track101.wav&amp;quot; with the content &amp;quot;Please Wait to call back anyway.” Then create the files with the announcement zero to nine “0.wav” to “9.wav”. &lt;br /&gt;
&lt;br /&gt;
All of these files are now to be transcoded and imported using the conversion tool from wav to g711.&lt;br /&gt;
Note: the prompts 0-9 can be found in the voicemail application.&lt;br /&gt;
&lt;br /&gt;
==Known Problems / Limitations==&lt;br /&gt;
• The caller&#039;s phone number is changed by the XML, so it is not possible to resolve the external caller&#039;s name from a phonebook or it is necessary to save the phone number with and without the area code.&lt;br /&gt;
&lt;br /&gt;
• Only en-bloc dialing is possible, but this is the case anyway when dialing from call lists.&lt;br /&gt;
&lt;br /&gt;
• If a call is answered and called back (e.g. with redial), the mechanism described also takes place. So there is no distinction between missed and answered calls; if a participant who called the group is called back, the other group members receive the warning.&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65958</id>
		<title>Howto:Gigaset-Provisioning-App - Gigaset - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65958"/>
		<updated>2023-01-23T12:45:32Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Display Name mandatory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gigaset-logo.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
==Product Name==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace CompanyName &amp;amp; ProductName by real names and add URL to productpage --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com Gigaset] Gigaset-Provisioning-App&lt;br /&gt;
&lt;br /&gt;
==Certification Status==&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check, app availablity in innovaphone-appstore &amp;amp; operational check --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on appstore --&amp;gt;&lt;br /&gt;
{{Template:Compat_Status_referral_product_new|type=App}}&lt;br /&gt;
&lt;br /&gt;
This App has been listed December 2022.&lt;br /&gt;
&lt;br /&gt;
==Category==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by innovaphone upon document check --&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_Terminal_Devices}}&lt;br /&gt;
[[Category:3rdParty_Terminal_Devices|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
==Vendor==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Place optional company logo. Don&#039;t change logo size. --&amp;gt;&lt;br /&gt;
[[Image:Gigaset-LOGO.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Give some introducting words about the vendor itself. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
With innovative communication solutions from Gigaset professional, your organisation can unlock its true potential and stay ahead of the competition. &lt;br /&gt;
Our cutting-edge telephony technology is delivered by a community of dedicated partners that can help you create a complete communications solution rather than a multitude of products. &lt;br /&gt;
With Gigaset professional, you gain access to an open platform designed for its user-friendliness, flexibility and outstanding performance, while offering seamless compatibility with leading on-premise telephony systems and cloud-based service providers.&lt;br /&gt;
&amp;lt;!-- For further information refer to vendor website via link --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com/pro/en_en/ Gigaset - Pro]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- place optional product logo or functional overwiew. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;Gigaset-Provisioning App supports:&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;DECT IP PRO&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&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;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N870&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N870.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N870 N870]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N670&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N670_Mini_Multicell_EN.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Singlecell and Mini-Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	3&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	8&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N670 N670]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give description about the main product purpose. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gigaset Provisioning App integrates the Gigaset Single-, MiniMulti and Multicell Systems into the innovaphone PBX environment.&lt;br /&gt;
After the initial setup, user and phonebook management can be done from the innovaphone myApps environment, &lt;br /&gt;
so that no further activities need to be performed on the Gigaset system.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give functional description about the application. Use formattings if needed --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Preferred format is a short list of functions/buzz words offered by the product --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Add / Remove Gigaset handset&lt;br /&gt;
* Configure the Phonebook on Gigaset Environment&lt;br /&gt;
&lt;br /&gt;
With the Gigaset Provisioning App it is possible to automatically add and remove DECT devices via IPUI provisioning on the Gigaset Nx70 IP DECT.&lt;br /&gt;
In addition, the LDAP configuration can be provisioned.&lt;br /&gt;
&lt;br /&gt;
== Provided APIs ==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- name APIs which product provides - if any --&amp;gt; &lt;br /&gt;
&amp;lt;!-- e.g. some of these https://sdk.innovaphone.com/13r2/doc/reference.htm#APIs --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Websocket&lt;br /&gt;
* AdminApi&lt;br /&gt;
* TableUsers&lt;br /&gt;
* Services&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give information about costs and licensing model. Use formattings if needed --&amp;gt;&lt;br /&gt;
No license is required for this app&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, name any system requirements / technical requirements. For example, if the function of the free app requires the use of software for which a fee is charged. --&amp;gt;&lt;br /&gt;
None (at least knowledge about installing an App on the AP Platform and adding the App Object via PBX Manager)&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present or outdated innovaphone FW is used, no certificate will be given at all --&amp;gt;&lt;br /&gt;
===Compatible innovaphone firmware versions===&lt;br /&gt;
&amp;lt;!-- List compatible major innovaphone firmware versions. Several listings are valid --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
&lt;br /&gt;
===Application versions used for interop testing===&lt;br /&gt;
&amp;lt;!-- Give used versions for testing of both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace 3rd-Pty-Application by real name --&amp;gt;&lt;br /&gt;
* Gigaset Provisioning-App - 13R3 136017&lt;br /&gt;
* Gigaset Provisioning-App - 13R2 132017&lt;br /&gt;
&amp;lt;!-- adjust tested innovaphone FW --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
* Gigaset Nx70 V2.49.1&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Describe configuration steps to be done for both innovaphone and 3rd-pty application --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It is required to provide a PDF-formatted config document. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the App===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gigaset - Provisoning - App===&lt;br /&gt;
&lt;br /&gt;
As an admin, create the environment settings in the Gigaset Provisioning App.&lt;br /&gt;
For the innovaphone PBX, enter the domain, the IP address of the PBX or the FQDN and the PBX password.&lt;br /&gt;
For the Gigaset Nx70 IP DECT Pro, enter the MAC ID (MAC address plus 4-digit code, can be found on the web UI under Status or on the integrator&#039;s box), &lt;br /&gt;
the IP address of the integrator and the admin password and select the DECT frequency. &lt;br /&gt;
If the Admin Password does not match the one assigned, it would be overwritten in the next step, during the 1st provisioning with the one entered here.&lt;br /&gt;
&lt;br /&gt;
Under Phonebook settings you can activate the sync of the standard LDAP directory of the innovaphone PBX (PBX0). &lt;br /&gt;
or alternatively enter all parameters manually according to the LDAP server used.&lt;br /&gt;
Please enter the IP address, port and previously created access data for the innovaphone LDAP.&lt;br /&gt;
&lt;br /&gt;
Click on the Save icon to save the entered configuration. The app generates a provisioning path from the data.&lt;br /&gt;
This path does not change as long as you do not change the MAC-ID.&lt;br /&gt;
Copy this path and paste it on the Gigaset Integrator under Settings --&amp;gt; System --&amp;gt; Provisioning and configuration.&lt;br /&gt;
Execute the first provisioning via the button &amp;quot;Start Auto Configuration&amp;quot; and log out of the web interface, &lt;br /&gt;
because as long as you are logged in, no provisioning can be performed by the app!&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_Admin.png]]&lt;br /&gt;
&lt;br /&gt;
===Add Devices to User===&lt;br /&gt;
&lt;br /&gt;
Now create new end devices as usual via UserAdmin or the Profile app. Select &amp;quot;Gigaset&amp;quot; in the manufacturer selection field and then enter the IPUI of the handset instead of the MAC address.&lt;br /&gt;
You can find the IPUI of the handset on the box, in the battery compartment or by switching to the menu on the handset with the right button and typing &amp;quot;*#06#&amp;quot;.&lt;br /&gt;
Now the IPUI is displayed in the top line.&lt;br /&gt;
&lt;br /&gt;
After you have saved the new handset, Gigaset Provisioning will automatically transfer the account to the integrator and start the login window for 5 minutes.&lt;br /&gt;
Now you can register the new handset with the default PIN &amp;quot;0000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger provisioning again, e.g. to open the login window again, press the Save button in the Admin area of the Gigaset Provisioning app again.&lt;br /&gt;
The successful transfer is indicated by a message.&lt;br /&gt;
If the provisioning was not successful, this is also displayed.&lt;br /&gt;
This can have 2 reasons, either you are still logged in on the integrator in the background &lt;br /&gt;
or you have changed the admin password on the integrator in the meantime and have not stored the new one in the settings of the app.&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_User.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Know Restrictions==&lt;br /&gt;
===Display Name mandatory===&lt;br /&gt;
The app does not use the Long Name if Display Name is empty as commonly known from Innovaphone. If there is no Display Name the number will be used at the Gigaset. The phone book replication is working with Display Name too.&lt;br /&gt;
&lt;br /&gt;
===Option Reverse Proxy will not be set automatically by provisioning===&lt;br /&gt;
If the clients should register over a Reverse Proxy you need to set this option manually. It&#039;s necessary to use RTP over the TURN because this option of V13r3 only works for devices registered over a Reverse Proxy (PBX - Config - General - Media relay endpoints - TURN = checked).&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
Gigaset Communications GmbH &amp;lt;br&amp;gt;&lt;br /&gt;
Frankenstraße 2&amp;lt;br&amp;gt;&lt;br /&gt;
46395 Bocholt&lt;br /&gt;
&lt;br /&gt;
Tel: +49 2871 91-0 &amp;lt;br&amp;gt;&lt;br /&gt;
E-Mail: de.pro@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
+49 (89) 8780 6575 + PIN Code&amp;lt;br&amp;gt;&lt;br /&gt;
support@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Become a partner&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
https://gigasetportal.force.com/Partner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;App Feature Request&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Dennis Zimmermann&amp;lt;br&amp;gt;&lt;br /&gt;
Technical Sales Manager&amp;lt;br&amp;gt;&lt;br /&gt;
dennis.zimmermann@gigaset.com&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Related Articles == --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65957</id>
		<title>Howto:Gigaset-Provisioning-App - Gigaset - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65957"/>
		<updated>2023-01-23T12:43:46Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Option Reverse Proxy will not be set automatically by provisioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gigaset-logo.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
==Product Name==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace CompanyName &amp;amp; ProductName by real names and add URL to productpage --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com Gigaset] Gigaset-Provisioning-App&lt;br /&gt;
&lt;br /&gt;
==Certification Status==&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check, app availablity in innovaphone-appstore &amp;amp; operational check --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on appstore --&amp;gt;&lt;br /&gt;
{{Template:Compat_Status_referral_product_new|type=App}}&lt;br /&gt;
&lt;br /&gt;
This App has been listed December 2022.&lt;br /&gt;
&lt;br /&gt;
==Category==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by innovaphone upon document check --&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_Terminal_Devices}}&lt;br /&gt;
[[Category:3rdParty_Terminal_Devices|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
==Vendor==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Place optional company logo. Don&#039;t change logo size. --&amp;gt;&lt;br /&gt;
[[Image:Gigaset-LOGO.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Give some introducting words about the vendor itself. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
With innovative communication solutions from Gigaset professional, your organisation can unlock its true potential and stay ahead of the competition. &lt;br /&gt;
Our cutting-edge telephony technology is delivered by a community of dedicated partners that can help you create a complete communications solution rather than a multitude of products. &lt;br /&gt;
With Gigaset professional, you gain access to an open platform designed for its user-friendliness, flexibility and outstanding performance, while offering seamless compatibility with leading on-premise telephony systems and cloud-based service providers.&lt;br /&gt;
&amp;lt;!-- For further information refer to vendor website via link --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com/pro/en_en/ Gigaset - Pro]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- place optional product logo or functional overwiew. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;Gigaset-Provisioning App supports:&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;DECT IP PRO&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&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;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N870&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N870.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N870 N870]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N670&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N670_Mini_Multicell_EN.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Singlecell and Mini-Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	3&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	8&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N670 N670]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give description about the main product purpose. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gigaset Provisioning App integrates the Gigaset Single-, MiniMulti and Multicell Systems into the innovaphone PBX environment.&lt;br /&gt;
After the initial setup, user and phonebook management can be done from the innovaphone myApps environment, &lt;br /&gt;
so that no further activities need to be performed on the Gigaset system.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give functional description about the application. Use formattings if needed --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Preferred format is a short list of functions/buzz words offered by the product --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Add / Remove Gigaset handset&lt;br /&gt;
* Configure the Phonebook on Gigaset Environment&lt;br /&gt;
&lt;br /&gt;
With the Gigaset Provisioning App it is possible to automatically add and remove DECT devices via IPUI provisioning on the Gigaset Nx70 IP DECT.&lt;br /&gt;
In addition, the LDAP configuration can be provisioned.&lt;br /&gt;
&lt;br /&gt;
== Provided APIs ==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- name APIs which product provides - if any --&amp;gt; &lt;br /&gt;
&amp;lt;!-- e.g. some of these https://sdk.innovaphone.com/13r2/doc/reference.htm#APIs --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Websocket&lt;br /&gt;
* AdminApi&lt;br /&gt;
* TableUsers&lt;br /&gt;
* Services&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give information about costs and licensing model. Use formattings if needed --&amp;gt;&lt;br /&gt;
No license is required for this app&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, name any system requirements / technical requirements. For example, if the function of the free app requires the use of software for which a fee is charged. --&amp;gt;&lt;br /&gt;
None (at least knowledge about installing an App on the AP Platform and adding the App Object via PBX Manager)&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present or outdated innovaphone FW is used, no certificate will be given at all --&amp;gt;&lt;br /&gt;
===Compatible innovaphone firmware versions===&lt;br /&gt;
&amp;lt;!-- List compatible major innovaphone firmware versions. Several listings are valid --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
&lt;br /&gt;
===Application versions used for interop testing===&lt;br /&gt;
&amp;lt;!-- Give used versions for testing of both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace 3rd-Pty-Application by real name --&amp;gt;&lt;br /&gt;
* Gigaset Provisioning-App - 13R3 136017&lt;br /&gt;
* Gigaset Provisioning-App - 13R2 132017&lt;br /&gt;
&amp;lt;!-- adjust tested innovaphone FW --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
* Gigaset Nx70 V2.49.1&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Describe configuration steps to be done for both innovaphone and 3rd-pty application --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It is required to provide a PDF-formatted config document. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the App===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gigaset - Provisoning - App===&lt;br /&gt;
&lt;br /&gt;
As an admin, create the environment settings in the Gigaset Provisioning App.&lt;br /&gt;
For the innovaphone PBX, enter the domain, the IP address of the PBX or the FQDN and the PBX password.&lt;br /&gt;
For the Gigaset Nx70 IP DECT Pro, enter the MAC ID (MAC address plus 4-digit code, can be found on the web UI under Status or on the integrator&#039;s box), &lt;br /&gt;
the IP address of the integrator and the admin password and select the DECT frequency. &lt;br /&gt;
If the Admin Password does not match the one assigned, it would be overwritten in the next step, during the 1st provisioning with the one entered here.&lt;br /&gt;
&lt;br /&gt;
Under Phonebook settings you can activate the sync of the standard LDAP directory of the innovaphone PBX (PBX0). &lt;br /&gt;
or alternatively enter all parameters manually according to the LDAP server used.&lt;br /&gt;
Please enter the IP address, port and previously created access data for the innovaphone LDAP.&lt;br /&gt;
&lt;br /&gt;
Click on the Save icon to save the entered configuration. The app generates a provisioning path from the data.&lt;br /&gt;
This path does not change as long as you do not change the MAC-ID.&lt;br /&gt;
Copy this path and paste it on the Gigaset Integrator under Settings --&amp;gt; System --&amp;gt; Provisioning and configuration.&lt;br /&gt;
Execute the first provisioning via the button &amp;quot;Start Auto Configuration&amp;quot; and log out of the web interface, &lt;br /&gt;
because as long as you are logged in, no provisioning can be performed by the app!&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_Admin.png]]&lt;br /&gt;
&lt;br /&gt;
===Add Devices to User===&lt;br /&gt;
&lt;br /&gt;
Now create new end devices as usual via UserAdmin or the Profile app. Select &amp;quot;Gigaset&amp;quot; in the manufacturer selection field and then enter the IPUI of the handset instead of the MAC address.&lt;br /&gt;
You can find the IPUI of the handset on the box, in the battery compartment or by switching to the menu on the handset with the right button and typing &amp;quot;*#06#&amp;quot;.&lt;br /&gt;
Now the IPUI is displayed in the top line.&lt;br /&gt;
&lt;br /&gt;
After you have saved the new handset, Gigaset Provisioning will automatically transfer the account to the integrator and start the login window for 5 minutes.&lt;br /&gt;
Now you can register the new handset with the default PIN &amp;quot;0000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger provisioning again, e.g. to open the login window again, press the Save button in the Admin area of the Gigaset Provisioning app again.&lt;br /&gt;
The successful transfer is indicated by a message.&lt;br /&gt;
If the provisioning was not successful, this is also displayed.&lt;br /&gt;
This can have 2 reasons, either you are still logged in on the integrator in the background &lt;br /&gt;
or you have changed the admin password on the integrator in the meantime and have not stored the new one in the settings of the app.&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_User.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Know Restrictions==&lt;br /&gt;
===Display Name mandatory===&lt;br /&gt;
The app does not use the Long Name if Display Name is empty as commonly known from Innovaphone. If there is no Display Name the number will be used.&lt;br /&gt;
&lt;br /&gt;
===Option Reverse Proxy will not be set automatically by provisioning===&lt;br /&gt;
If the clients should register over a Reverse Proxy you need to set this option manually. It&#039;s necessary to use RTP over the TURN because this option of V13r3 only works for devices registered over a Reverse Proxy (PBX - Config - General - Media relay endpoints - TURN = checked).&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
Gigaset Communications GmbH &amp;lt;br&amp;gt;&lt;br /&gt;
Frankenstraße 2&amp;lt;br&amp;gt;&lt;br /&gt;
46395 Bocholt&lt;br /&gt;
&lt;br /&gt;
Tel: +49 2871 91-0 &amp;lt;br&amp;gt;&lt;br /&gt;
E-Mail: de.pro@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
+49 (89) 8780 6575 + PIN Code&amp;lt;br&amp;gt;&lt;br /&gt;
support@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Become a partner&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
https://gigasetportal.force.com/Partner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;App Feature Request&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Dennis Zimmermann&amp;lt;br&amp;gt;&lt;br /&gt;
Technical Sales Manager&amp;lt;br&amp;gt;&lt;br /&gt;
dennis.zimmermann@gigaset.com&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Related Articles == --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65956</id>
		<title>Howto:Gigaset-Provisioning-App - Gigaset - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65956"/>
		<updated>2023-01-23T12:42:53Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Display Name mandantory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gigaset-logo.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
==Product Name==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace CompanyName &amp;amp; ProductName by real names and add URL to productpage --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com Gigaset] Gigaset-Provisioning-App&lt;br /&gt;
&lt;br /&gt;
==Certification Status==&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check, app availablity in innovaphone-appstore &amp;amp; operational check --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on appstore --&amp;gt;&lt;br /&gt;
{{Template:Compat_Status_referral_product_new|type=App}}&lt;br /&gt;
&lt;br /&gt;
This App has been listed December 2022.&lt;br /&gt;
&lt;br /&gt;
==Category==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by innovaphone upon document check --&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_Terminal_Devices}}&lt;br /&gt;
[[Category:3rdParty_Terminal_Devices|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
==Vendor==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Place optional company logo. Don&#039;t change logo size. --&amp;gt;&lt;br /&gt;
[[Image:Gigaset-LOGO.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Give some introducting words about the vendor itself. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
With innovative communication solutions from Gigaset professional, your organisation can unlock its true potential and stay ahead of the competition. &lt;br /&gt;
Our cutting-edge telephony technology is delivered by a community of dedicated partners that can help you create a complete communications solution rather than a multitude of products. &lt;br /&gt;
With Gigaset professional, you gain access to an open platform designed for its user-friendliness, flexibility and outstanding performance, while offering seamless compatibility with leading on-premise telephony systems and cloud-based service providers.&lt;br /&gt;
&amp;lt;!-- For further information refer to vendor website via link --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com/pro/en_en/ Gigaset - Pro]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- place optional product logo or functional overwiew. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;Gigaset-Provisioning App supports:&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;DECT IP PRO&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&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;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N870&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N870.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N870 N870]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N670&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N670_Mini_Multicell_EN.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Singlecell and Mini-Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	3&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	8&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N670 N670]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give description about the main product purpose. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gigaset Provisioning App integrates the Gigaset Single-, MiniMulti and Multicell Systems into the innovaphone PBX environment.&lt;br /&gt;
After the initial setup, user and phonebook management can be done from the innovaphone myApps environment, &lt;br /&gt;
so that no further activities need to be performed on the Gigaset system.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give functional description about the application. Use formattings if needed --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Preferred format is a short list of functions/buzz words offered by the product --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Add / Remove Gigaset handset&lt;br /&gt;
* Configure the Phonebook on Gigaset Environment&lt;br /&gt;
&lt;br /&gt;
With the Gigaset Provisioning App it is possible to automatically add and remove DECT devices via IPUI provisioning on the Gigaset Nx70 IP DECT.&lt;br /&gt;
In addition, the LDAP configuration can be provisioned.&lt;br /&gt;
&lt;br /&gt;
== Provided APIs ==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- name APIs which product provides - if any --&amp;gt; &lt;br /&gt;
&amp;lt;!-- e.g. some of these https://sdk.innovaphone.com/13r2/doc/reference.htm#APIs --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Websocket&lt;br /&gt;
* AdminApi&lt;br /&gt;
* TableUsers&lt;br /&gt;
* Services&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give information about costs and licensing model. Use formattings if needed --&amp;gt;&lt;br /&gt;
No license is required for this app&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, name any system requirements / technical requirements. For example, if the function of the free app requires the use of software for which a fee is charged. --&amp;gt;&lt;br /&gt;
None (at least knowledge about installing an App on the AP Platform and adding the App Object via PBX Manager)&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present or outdated innovaphone FW is used, no certificate will be given at all --&amp;gt;&lt;br /&gt;
===Compatible innovaphone firmware versions===&lt;br /&gt;
&amp;lt;!-- List compatible major innovaphone firmware versions. Several listings are valid --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
&lt;br /&gt;
===Application versions used for interop testing===&lt;br /&gt;
&amp;lt;!-- Give used versions for testing of both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace 3rd-Pty-Application by real name --&amp;gt;&lt;br /&gt;
* Gigaset Provisioning-App - 13R3 136017&lt;br /&gt;
* Gigaset Provisioning-App - 13R2 132017&lt;br /&gt;
&amp;lt;!-- adjust tested innovaphone FW --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
* Gigaset Nx70 V2.49.1&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Describe configuration steps to be done for both innovaphone and 3rd-pty application --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It is required to provide a PDF-formatted config document. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the App===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gigaset - Provisoning - App===&lt;br /&gt;
&lt;br /&gt;
As an admin, create the environment settings in the Gigaset Provisioning App.&lt;br /&gt;
For the innovaphone PBX, enter the domain, the IP address of the PBX or the FQDN and the PBX password.&lt;br /&gt;
For the Gigaset Nx70 IP DECT Pro, enter the MAC ID (MAC address plus 4-digit code, can be found on the web UI under Status or on the integrator&#039;s box), &lt;br /&gt;
the IP address of the integrator and the admin password and select the DECT frequency. &lt;br /&gt;
If the Admin Password does not match the one assigned, it would be overwritten in the next step, during the 1st provisioning with the one entered here.&lt;br /&gt;
&lt;br /&gt;
Under Phonebook settings you can activate the sync of the standard LDAP directory of the innovaphone PBX (PBX0). &lt;br /&gt;
or alternatively enter all parameters manually according to the LDAP server used.&lt;br /&gt;
Please enter the IP address, port and previously created access data for the innovaphone LDAP.&lt;br /&gt;
&lt;br /&gt;
Click on the Save icon to save the entered configuration. The app generates a provisioning path from the data.&lt;br /&gt;
This path does not change as long as you do not change the MAC-ID.&lt;br /&gt;
Copy this path and paste it on the Gigaset Integrator under Settings --&amp;gt; System --&amp;gt; Provisioning and configuration.&lt;br /&gt;
Execute the first provisioning via the button &amp;quot;Start Auto Configuration&amp;quot; and log out of the web interface, &lt;br /&gt;
because as long as you are logged in, no provisioning can be performed by the app!&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_Admin.png]]&lt;br /&gt;
&lt;br /&gt;
===Add Devices to User===&lt;br /&gt;
&lt;br /&gt;
Now create new end devices as usual via UserAdmin or the Profile app. Select &amp;quot;Gigaset&amp;quot; in the manufacturer selection field and then enter the IPUI of the handset instead of the MAC address.&lt;br /&gt;
You can find the IPUI of the handset on the box, in the battery compartment or by switching to the menu on the handset with the right button and typing &amp;quot;*#06#&amp;quot;.&lt;br /&gt;
Now the IPUI is displayed in the top line.&lt;br /&gt;
&lt;br /&gt;
After you have saved the new handset, Gigaset Provisioning will automatically transfer the account to the integrator and start the login window for 5 minutes.&lt;br /&gt;
Now you can register the new handset with the default PIN &amp;quot;0000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger provisioning again, e.g. to open the login window again, press the Save button in the Admin area of the Gigaset Provisioning app again.&lt;br /&gt;
The successful transfer is indicated by a message.&lt;br /&gt;
If the provisioning was not successful, this is also displayed.&lt;br /&gt;
This can have 2 reasons, either you are still logged in on the integrator in the background &lt;br /&gt;
or you have changed the admin password on the integrator in the meantime and have not stored the new one in the settings of the app.&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_User.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Know Restrictions==&lt;br /&gt;
===Display Name mandatory===&lt;br /&gt;
The app does not use the Long Name if Display Name is empty as commonly known from Innovaphone. If there is no Display Name the number will be used.&lt;br /&gt;
&lt;br /&gt;
===Option Reverse Proxy will not be set automatically by provisioning===&lt;br /&gt;
If the clients should register over a Reverse Proxy you need to set this option manually. It&#039;s necessary to use RTP over the TURN because this option of V13r3 only works for devices registered over a Reverse Proxy (PBX - Config - General - Media relay endpoints) TURN = checked).&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
Gigaset Communications GmbH &amp;lt;br&amp;gt;&lt;br /&gt;
Frankenstraße 2&amp;lt;br&amp;gt;&lt;br /&gt;
46395 Bocholt&lt;br /&gt;
&lt;br /&gt;
Tel: +49 2871 91-0 &amp;lt;br&amp;gt;&lt;br /&gt;
E-Mail: de.pro@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
+49 (89) 8780 6575 + PIN Code&amp;lt;br&amp;gt;&lt;br /&gt;
support@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Become a partner&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
https://gigasetportal.force.com/Partner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;App Feature Request&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Dennis Zimmermann&amp;lt;br&amp;gt;&lt;br /&gt;
Technical Sales Manager&amp;lt;br&amp;gt;&lt;br /&gt;
dennis.zimmermann@gigaset.com&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Related Articles == --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65955</id>
		<title>Howto:Gigaset-Provisioning-App - Gigaset - Partner App</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Gigaset-Provisioning-App_-_Gigaset_-_Partner_App&amp;diff=65955"/>
		<updated>2023-01-23T12:41:57Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: added Known Restrictions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gigaset-logo.png||200px|right]]&lt;br /&gt;
&lt;br /&gt;
==Product Name==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace CompanyName &amp;amp; ProductName by real names and add URL to productpage --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com Gigaset] Gigaset-Provisioning-App&lt;br /&gt;
&lt;br /&gt;
==Certification Status==&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check, app availablity in innovaphone-appstore &amp;amp; operational check --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- do not remove comment. Will be added by innovaphone upon document check &amp;amp; app availablity on appstore --&amp;gt;&lt;br /&gt;
{{Template:Compat_Status_referral_product_new|type=App}}&lt;br /&gt;
&lt;br /&gt;
This App has been listed December 2022.&lt;br /&gt;
&lt;br /&gt;
==Category==&lt;br /&gt;
&amp;lt;!-- Do not change this section and do not remove comments. Will be set by innovaphone upon document check --&amp;gt;&lt;br /&gt;
[[Category:Partner_Apps|{{PAGENAME}}]]&lt;br /&gt;
{{Category:3rdParty_Terminal_Devices}}&lt;br /&gt;
[[Category:3rdParty_Terminal_Devices|{{PAGENAME}}]]&lt;br /&gt;
&lt;br /&gt;
==Vendor==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Place optional company logo. Don&#039;t change logo size. --&amp;gt;&lt;br /&gt;
[[Image:Gigaset-LOGO.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Give some introducting words about the vendor itself. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
With innovative communication solutions from Gigaset professional, your organisation can unlock its true potential and stay ahead of the competition. &lt;br /&gt;
Our cutting-edge telephony technology is delivered by a community of dedicated partners that can help you create a complete communications solution rather than a multitude of products. &lt;br /&gt;
With Gigaset professional, you gain access to an open platform designed for its user-friendliness, flexibility and outstanding performance, while offering seamless compatibility with leading on-premise telephony systems and cloud-based service providers.&lt;br /&gt;
&amp;lt;!-- For further information refer to vendor website via link --&amp;gt;&lt;br /&gt;
[https://www.gigaset.com/pro/en_en/ Gigaset - Pro]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- place optional product logo or functional overwiew. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;Gigaset-Provisioning App supports:&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;DECT IP PRO&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&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;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N870&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N870.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20000&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	6000&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N870 N870]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=3px&amp;gt;N670&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;[[Image:N670_Mini_Multicell_EN.png‎|250px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
- IP DECT Singlecell and Mini-Multicell System&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number basestations:	3&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number handsets:	20&amp;lt;br&amp;gt;&lt;br /&gt;
- max. number parallel Calls:	8&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;for further information see:&amp;lt;br&amp;gt;&lt;br /&gt;
[https://teamwork.gigaset.com/gigawiki/display/GPPPO/N670 N670]&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!-- Give description about the main product purpose. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- At max 3 sentences, no novels. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gigaset Provisioning App integrates the Gigaset Single-, MiniMulti and Multicell Systems into the innovaphone PBX environment.&lt;br /&gt;
After the initial setup, user and phonebook management can be done from the innovaphone myApps environment, &lt;br /&gt;
so that no further activities need to be performed on the Gigaset system.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give functional description about the application. Use formattings if needed --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Preferred format is a short list of functions/buzz words offered by the product --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Add / Remove Gigaset handset&lt;br /&gt;
* Configure the Phonebook on Gigaset Environment&lt;br /&gt;
&lt;br /&gt;
With the Gigaset Provisioning App it is possible to automatically add and remove DECT devices via IPUI provisioning on the Gigaset Nx70 IP DECT.&lt;br /&gt;
In addition, the LDAP configuration can be provisioned.&lt;br /&gt;
&lt;br /&gt;
== Provided APIs ==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- name APIs which product provides - if any --&amp;gt; &lt;br /&gt;
&amp;lt;!-- e.g. some of these https://sdk.innovaphone.com/13r2/doc/reference.htm#APIs --&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Websocket&lt;br /&gt;
* AdminApi&lt;br /&gt;
* TableUsers&lt;br /&gt;
* Services&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Give information about costs and licensing model. Use formattings if needed --&amp;gt;&lt;br /&gt;
No license is required for this app&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&amp;lt;!-- Optional topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If applicable, name any system requirements / technical requirements. For example, if the function of the free app requires the use of software for which a fee is charged. --&amp;gt;&lt;br /&gt;
None (at least knowledge about installing an App on the AP Platform and adding the App Object via PBX Manager)&lt;br /&gt;
&lt;br /&gt;
==Versions==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- If not present or outdated innovaphone FW is used, no certificate will be given at all --&amp;gt;&lt;br /&gt;
===Compatible innovaphone firmware versions===&lt;br /&gt;
&amp;lt;!-- List compatible major innovaphone firmware versions. Several listings are valid --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
&lt;br /&gt;
===Application versions used for interop testing===&lt;br /&gt;
&amp;lt;!-- Give used versions for testing of both innovaphone and 3rd-pty product --&amp;gt;&lt;br /&gt;
&amp;lt;!-- replace 3rd-Pty-Application by real name --&amp;gt;&lt;br /&gt;
* Gigaset Provisioning-App - 13R3 136017&lt;br /&gt;
* Gigaset Provisioning-App - 13R2 132017&lt;br /&gt;
&amp;lt;!-- adjust tested innovaphone FW --&amp;gt;&lt;br /&gt;
* innovaphone V13r2 SR19&lt;br /&gt;
* innovaphone V13r3 Beta5&lt;br /&gt;
* Gigaset Nx70 V2.49.1&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&amp;lt;!-- Mandatory topic. --&amp;gt; &lt;br /&gt;
&amp;lt;!-- Describe configuration steps to be done for both innovaphone and 3rd-pty application --&amp;gt;&lt;br /&gt;
&amp;lt;!-- It is required to provide a PDF-formatted config document. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the App===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Gigaset - Provisoning - App===&lt;br /&gt;
&lt;br /&gt;
As an admin, create the environment settings in the Gigaset Provisioning App.&lt;br /&gt;
For the innovaphone PBX, enter the domain, the IP address of the PBX or the FQDN and the PBX password.&lt;br /&gt;
For the Gigaset Nx70 IP DECT Pro, enter the MAC ID (MAC address plus 4-digit code, can be found on the web UI under Status or on the integrator&#039;s box), &lt;br /&gt;
the IP address of the integrator and the admin password and select the DECT frequency. &lt;br /&gt;
If the Admin Password does not match the one assigned, it would be overwritten in the next step, during the 1st provisioning with the one entered here.&lt;br /&gt;
&lt;br /&gt;
Under Phonebook settings you can activate the sync of the standard LDAP directory of the innovaphone PBX (PBX0). &lt;br /&gt;
or alternatively enter all parameters manually according to the LDAP server used.&lt;br /&gt;
Please enter the IP address, port and previously created access data for the innovaphone LDAP.&lt;br /&gt;
&lt;br /&gt;
Click on the Save icon to save the entered configuration. The app generates a provisioning path from the data.&lt;br /&gt;
This path does not change as long as you do not change the MAC-ID.&lt;br /&gt;
Copy this path and paste it on the Gigaset Integrator under Settings --&amp;gt; System --&amp;gt; Provisioning and configuration.&lt;br /&gt;
Execute the first provisioning via the button &amp;quot;Start Auto Configuration&amp;quot; and log out of the web interface, &lt;br /&gt;
because as long as you are logged in, no provisioning can be performed by the app!&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_Admin.png]]&lt;br /&gt;
&lt;br /&gt;
===Add Devices to User===&lt;br /&gt;
&lt;br /&gt;
Now create new end devices as usual via UserAdmin or the Profile app. Select &amp;quot;Gigaset&amp;quot; in the manufacturer selection field and then enter the IPUI of the handset instead of the MAC address.&lt;br /&gt;
You can find the IPUI of the handset on the box, in the battery compartment or by switching to the menu on the handset with the right button and typing &amp;quot;*#06#&amp;quot;.&lt;br /&gt;
Now the IPUI is displayed in the top line.&lt;br /&gt;
&lt;br /&gt;
After you have saved the new handset, Gigaset Provisioning will automatically transfer the account to the integrator and start the login window for 5 minutes.&lt;br /&gt;
Now you can register the new handset with the default PIN &amp;quot;0000&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger provisioning again, e.g. to open the login window again, press the Save button in the Admin area of the Gigaset Provisioning app again.&lt;br /&gt;
The successful transfer is indicated by a message.&lt;br /&gt;
If the provisioning was not successful, this is also displayed.&lt;br /&gt;
This can have 2 reasons, either you are still logged in on the integrator in the background &lt;br /&gt;
or you have changed the admin password on the integrator in the meantime and have not stored the new one in the settings of the app.&lt;br /&gt;
&lt;br /&gt;
[[Image:innovaphone_GigasetApp_User.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Know Restrictions==&lt;br /&gt;
===Display Name mandantory===&lt;br /&gt;
The app does not use the Long Name if Display Name is empty as commonly known from Innovaphone. If there is no Display Name the number will be used.&lt;br /&gt;
&lt;br /&gt;
===Option Reverse Proxy will not be set automatically by provisioning===&lt;br /&gt;
If the clients should register over a Reverse Proxy you need to set this option manually. It&#039;s necessary to use RTP over the TURN because this option of V13r3 only works for devices registered over a Reverse Proxy (PBX - Config - General - Media relay endpoints) TURN = checked).&lt;br /&gt;
&lt;br /&gt;
==Contact==&lt;br /&gt;
Gigaset Communications GmbH &amp;lt;br&amp;gt;&lt;br /&gt;
Frankenstraße 2&amp;lt;br&amp;gt;&lt;br /&gt;
46395 Bocholt&lt;br /&gt;
&lt;br /&gt;
Tel: +49 2871 91-0 &amp;lt;br&amp;gt;&lt;br /&gt;
E-Mail: de.pro@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Support&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
+49 (89) 8780 6575 + PIN Code&amp;lt;br&amp;gt;&lt;br /&gt;
support@gigaset.com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Become a partner&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
https://gigasetportal.force.com/Partner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;App Feature Request&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Dennis Zimmermann&amp;lt;br&amp;gt;&lt;br /&gt;
Technical Sales Manager&amp;lt;br&amp;gt;&lt;br /&gt;
dennis.zimmermann@gigaset.com&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == Related Articles == --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference9:Maintenance/Upload/DRAM&amp;diff=64685</id>
		<title>Reference9:Maintenance/Upload/DRAM</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference9:Maintenance/Upload/DRAM&amp;diff=64685"/>
		<updated>2022-12-23T21:54:14Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Known Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function allows you to upload a new &#039;&#039;&#039;firmware&#039;&#039;&#039; version into the DRAM of the VoIP device. The new firmware is started immediately after upload. &lt;br /&gt;
&lt;br /&gt;
The firmware loaded to DRAM is active until the next reset, power cycle or trap.&lt;br /&gt;
&lt;br /&gt;
This function can be used to test new firmware.&lt;br /&gt;
&lt;br /&gt;
=== Known Problems ===&lt;br /&gt;
&lt;br /&gt;
If you use IP200A, IP230, IP240, IP302, IP305, IP22, IP24 or IP28 you have to set the unit into the Bootcode Mode. You can find the Bootcode Mode under the reset tab. If you did not set the bootcode mode, the device trap.&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto13r3:Firmware_Upgrade_V13r2_V13r3&amp;diff=64649</id>
		<title>Howto13r3:Firmware Upgrade V13r2 V13r3</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto13r3:Firmware_Upgrade_V13r2_V13r3&amp;diff=64649"/>
		<updated>2022-12-22T07:00:52Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Flash Memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FIXME|reason=This article is still work in progress}}&lt;br /&gt;
== Applies To ==&lt;br /&gt;
This information applies to:&lt;br /&gt;
&lt;br /&gt;
* All 13r3 capable innovaphone devices&lt;br /&gt;
: For a general overview of the upgrade process and a list of supported devices with 13r3, see [[Howto:Firmware Upgrade]]&lt;br /&gt;
&lt;br /&gt;
== Migration Policy ==&lt;br /&gt;
Here is how you upgrade a system to 13r3 from 13r2.  For hints on upgrading a system to 13r2 see [[Howto:V13_Firmware_Upgrade_V13r1_V13r2]].&lt;br /&gt;
&lt;br /&gt;
=== Single AP/Single PBX===&lt;br /&gt;
* Create a new update job in devices and select 13r3 as major version&lt;br /&gt;
&lt;br /&gt;
===Shared AP/Several PBX&#039;es===&lt;br /&gt;
We generally recommend to upgrade the entire system (endpoints, PBXs, AP) in &#039;&#039;one shot&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If this is not possible for any reason, the recommended sequence is:&lt;br /&gt;
# update the master PBX&lt;br /&gt;
# update the slave PBX and all its endpoints location by location&lt;br /&gt;
# update the App Platform to the latest build (currently 110019)&lt;br /&gt;
# update all Apps&lt;br /&gt;
# perform the configuration changes described below&lt;br /&gt;
&lt;br /&gt;
Note that during the update time frame, some App data such as Reporting and Recording may be incomplete.&lt;br /&gt;
&lt;br /&gt;
We recommend to review all the configuration changes described below before you begin the update.&lt;br /&gt;
&lt;br /&gt;
== Configuration Changes ==&lt;br /&gt;
In 13r3 we have introduced some new features which are automatically configured if you use the installer to setup your new 13r3 from scratch. If you upgrade an existing installation, you have to configure the following settings manually.&lt;br /&gt;
&lt;br /&gt;
=== Default SRTP key exchange value in device configuration of Phones/Interfaces ===&lt;br /&gt;
Before v13r3, the default value for SRTP key exchange was SDES-DTLS - with v13r3 it changes to the more secure DTLS-SDES. Therefore innovaphone devices now use DTLS instead - if the called endpoint has this preference. To make sure the more secure key exchange is used, we recommend adjusting the &#039;&#039;SRTP key exchange setting&#039;&#039; in the Devices App, &#039;&#039;Device Configuration&#039;&#039; for &#039;&#039;[Phone]&#039;&#039; and &#039;&#039;[Analog phone/fax]&#039;&#039;. An exception to this recommendation is if you are using old phone models (IP110A, IP240A) or gateway models (IP24, IP22) in your setup - as these may have CPU performance issues in the connection setup phase. In that case, use &#039;&#039;&#039;SDES-DTLS&#039;&#039;&#039; as value for the &#039;&#039;SRTP key exchange&#039;&#039; for all devices, not only for the old phone models.&lt;br /&gt;
&lt;br /&gt;
===Group Fax===&lt;br /&gt;
The fax object has to be configured as external resource of a group fax object in 13r3. It is therefore &#039;&#039;&#039;mandatory&#039;&#039;&#039; to assign the fax object as an external resource to all group fax objects after the upgrade.&lt;br /&gt;
&lt;br /&gt;
Also, with 13r3, group faxes can have their own international fax number and company name, so you should fill in these fields, or else the fax header will be empty.&lt;br /&gt;
&lt;br /&gt;
===Contacts App | User drop-down menu for sharing address books===&lt;br /&gt;
With 13r3, personal address books can be created and shared with users/groups. To have a search and drop-down menu in the sharing step, you have to activate the &amp;quot;Admin&amp;quot; option at the &amp;quot;ContactsApi&amp;quot; app object (tab &amp;quot;App&amp;quot;) over the Advanced UI. Otherwise, no results will be shown, and you have to enter the correct h323 name of a user.&lt;br /&gt;
&lt;br /&gt;
===Improved Conference Rooms===&lt;br /&gt;
* The &#039;&#039;Web Access allowed&#039;&#039; checkbox in the conference app has to be set in order to access the Conference Web Access UI.&lt;br /&gt;
: To be able create HTTP links for external participants, the conferencing App is required.&lt;br /&gt;
* Update the [[Reference13r3:PBX/Objects/Conference/Announcement_types#Sample_Announcement_Files | announcements]] for your conference rooms, to include also the &#039;&#039;Web Access announcements&#039;&#039;. &lt;br /&gt;
* it is recommended to use a second Turn-Server listening on TCP port 443 as a fallback option for external conference participants, with local firewalls not allowing access to your standard Turn-server. Configure this second Turn-Server in [[Reference13r3:IP4/General/STUN#TURN_Extern | IP4/General/STUN -&amp;gt; Turn Extern]] [[User:Sga|Sga]] TBD: info zu inno Turn Fallback server&lt;br /&gt;
* 13r3 adds a search-API for the Conference Rooms, allowing users to search for Conference room names from their Phone, Softphone or RCC App. Each conference object provides its own search API which is named like &#039;&#039;&amp;lt;Name-of-conference-object&amp;gt;.search&#039;&#039; and access to it can be granted using the App-Section of a PBX-object. The PBX-Manager Plugin for Conferences offers also an option to add the rights for all conference rooms and their search-APIs to the Config-User and/or Config-Admin template.&lt;br /&gt;
&lt;br /&gt;
=== NTLM/OAuth===&lt;br /&gt;
13r3 introduces OAuth2 Windows Authentication for myApps. If your are currently using NTLM/Netlogon for authentication, you might want to consider upgrading it OAuth2, since this authentication mechanisms is more secure. See [[Reference13r3:Concept OAuth2 Windows Authentication]] for details. &lt;br /&gt;
In 13r3 only Microsoft AD FS is supported as OpenID Server.&lt;br /&gt;
&lt;br /&gt;
===HTTP-Proxy===&lt;br /&gt;
13r3 introduces [[Reference13r3:Concept_myApps_platform_services#HTTP_proxy_support | HTTP-Proxy]] support for myApps. Now, myApps follows by default the OS-settings regarding HTTP-Proxy. This might affect existing setups when updating from 13r2 to 13r3. We recommend to check before a 13r3 update if an HTTP-Proxy is used and if so, test before the update for interop problems between myApps and the used HTTP-Proxy.&lt;br /&gt;
&lt;br /&gt;
===Physical Location===&lt;br /&gt;
The Softphone App supports in 13r3 the determination of the Physical Location. Similar to an IP-Phone, this is determined automatically based on HTTP-Redirects of the myApps PBX-login process. If you use PBX-objects with activated &amp;quot;Local&amp;quot; option (often this is a Trunk Line object), the determined physical location might lead to a different behavior when calling these objects. If this leads to unwanted call flows, you can either adjust the initial myApps registration PBX or configure the Physical location manually at the Softphone.&lt;br /&gt;
&lt;br /&gt;
== Application Platform and its applications ==&lt;br /&gt;
===App Platform image===&lt;br /&gt;
&lt;br /&gt;
It is not mandatory but recommended to [[Reference13r3:Concept_App_Platform#Update_of_the_App_Platform_itself | update the App Platform image]] to the latest version to receive a newer kernel and updated Linux packages.&lt;br /&gt;
&lt;br /&gt;
===Recordings App===&lt;br /&gt;
Please follow the procedure described in the [[Reference13r3:Concept_App_Service_Recordings#Upgrade_from_V13r2_to_V13r3_Recordings_App | Recordings App concept article]].&lt;br /&gt;
&lt;br /&gt;
===Reports App===&lt;br /&gt;
The Reports App will improve missed calls queries by adding a new database index during the first start after an update. Depending on the size of the reporting database, this database adjustment can take some minutes and results also in high CPU-load and missed CDRs during that time.&lt;br /&gt;
&lt;br /&gt;
=== App Service Queues, Switchboard App ===&lt;br /&gt;
To allow monitoring of all queues by all switchboard users, configure a group (e.g. with the name &#039;&#039;queues&#039;&#039;) in the PBX and assign it as &#039;&#039;&#039;Static&#039;&#039;&#039; to all Waiting Queues used by the Switchboard App and assign it also as &#039;&#039;&#039;Static&#039;&#039;&#039; and &#039;&#039;&#039;Active&#039;&#039;&#039; to all Switchboard Users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apps new in 13r3===&lt;br /&gt;
New Apps will not be installed automatically by the 13r2 to 13r3 upgrade. The installation description of new 13r3 apps is usually in the concept article. New apps are:&lt;br /&gt;
* [[Reference13r3:Concept_App_Service_Connector_for_kuando®#Configuration | Connector for kuando®]]&lt;br /&gt;
* [[Reference13r3:Concept_App_Service_Connector_for_Microsoft_365 | innovaphone myApps Connector for Microsoft 365]]&lt;br /&gt;
&lt;br /&gt;
== Changes visible to end customers ==&lt;br /&gt;
Listed here are changes that should be communicated by resellers to end users prior to a 13r3 upgrade, as the change will be visible/audible in the behaviour of the application/device.&lt;br /&gt;
===Rework of Phone &amp;amp; Softphone UI===&lt;br /&gt;
Several feature and UI improvements, see &#039;Features&#039; in [[Reference13r3:Concept_App_SoftphoneApp#Features | Reference13r3:Concept App SoftphoneApp ]] and [[Reference13r3:Concept Multi-Video-Conference]].&lt;br /&gt;
&lt;br /&gt;
===CallForwarding in Profile App===&lt;br /&gt;
Added configuration option on call diversions: call forwardings depending on &#039;&#039;myApps online&#039;&#039; and &#039;&#039;Presence&#039;&#039; state. This can be switched on or off by the user in the Profile App.&lt;br /&gt;
&lt;br /&gt;
===Focus App===&lt;br /&gt;
The &amp;quot;App focus&amp;quot; can be used to define a default app for the user. It is started and shown automatically when myApps is loaded. When closing other apps, the app is shown instead of the home screen. Users can activate (default) or deactivate the Focus function in their myApps Client settings (hamburger menu). See &#039;Features&#039; in [[Reference13r3:Concept_myApps#Features | Reference13r3:Concept myApps]]&lt;br /&gt;
&lt;br /&gt;
===Pin Apps===&lt;br /&gt;
Apps can be pinned to the main window. Pinned apps are always running and can&#039;t be closed. They are also started automatically when the myApps client is loaded. This setting is locally stored per-client. So you can pin different apps on your computer and your smartphone.  See &#039;Features&#039; in [[Reference13r3:Concept_myApps#Features | Reference13r3:Concept myApps]]&lt;br /&gt;
&lt;br /&gt;
=== Fax App ===&lt;br /&gt;
The [[Reference13r3:Concept_App_Service_Fax#Mail_Configuration | Mail Configuration]] section of the Fax App offers in 13r3 additional options:&lt;br /&gt;
* Transmission confirmations&lt;br /&gt;
* Transmission reports for outgoing fax jobs as PDF&lt;br /&gt;
* Error notifications for outgoing fax jobs&lt;br /&gt;
&lt;br /&gt;
==Hardware Restrictions==&lt;br /&gt;
For a list of devices with no/restricted support in 13r3, see the [[Howto:Firmware_Upgrade#Version_13r3 | Firmware Upgrade article]].&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
===Boolean App===&lt;br /&gt;
Following the update to 13r3, it is not possible to edit Boolean Apps using the myApps client (except when using the myApps client in a web browser). To resolve this issue, you will need to delete the approxy folder for all users who use the boolean app. You can locate this folder in the following directory: %USERPROFILE%\AppData\Local\innovaphone\myApps.&lt;br /&gt;
Reload or restart myApps afterwards.&lt;br /&gt;
&lt;br /&gt;
=== Resources 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.&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 | the specs ]] 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;
==== RAM ====&lt;br /&gt;
As a rough rule of thumb, a 13r3 release will consume the same amount of RAM compared to a v13r2 firmware.&lt;br /&gt;
&lt;br /&gt;
==== Flash Memory ====&lt;br /&gt;
As a rough rule of thumb, a v13r3 release will consume ~ 0.5 MB flash more compared to a v13r2 firmware.&lt;br /&gt;
&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 v13r3.  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 the 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 (Web GUI ends up in a &#039;&#039;Firmwareupdate failed:no space&#039;&#039; / Update client end in a &#039;&#039;Error 0x00130001 Major FLASHMAN0 no space&#039;&#039; event) please open a support case with your current configuration file.&lt;br /&gt;
&lt;br /&gt;
==== Conferences ====&lt;br /&gt;
Since Conferences now use [[Reference13r3:Concept_Multi-Video-Conference | multiple video streams]] to display each conference participant (in 13r1 &amp;amp; 13r2 only the video stream of the speaker was shown), the number of concurrent video streams used in a single conference increased dramatically. Please review this [[Reference13r3:Concept_Multi-Video-Conference#Bandwidth_Consideration | bandwidth considerations]]. As a result, a device hosting a multivideo conference on its CONF or SCNF interface has a higher CPU load in 13r3 than in 13r2.&lt;br /&gt;
&lt;br /&gt;
[[Image:13r3_conference_bandwidth.png|700px|Estimated Conference bandwidth requirements]]&lt;br /&gt;
&lt;br /&gt;
The graph shows the bandwidth needed for a device running the CONF interface to participate in a conference. The values shown are for when all participants are in gallery mode (which is the worst case scenario) and in fullscreen presentation mode (which is the best case scenario). In general, the actual bandwidth needed will fall somewhere between these two extremes. To calculate the CPU requirements for the device, you can use the following formula: CPU% = Bandwidth (in Mbps) / x, where x is 0.42 for a xx10 device, 0.56 for a xx11 device, and 3.6 for a xx13 device. For example, if you are hosting a conference with 10 participants on a xx11 device in gallery mode, the upstream and downstream bandwidth would be 25 Mbps. Using the formula, you can calculate the CPU requirements as follows: CPU% = 25 Mbps / 0.56 = 44.64%. This means that the device should have at least 45% free CPU capacity to handle the conference.&lt;br /&gt;
&lt;br /&gt;
From the client&#039;s perspective, the worst case values for upstream bandwidth (when presenting) would be 1 Mbps, and for downstream bandwidth (when in a gallery mode conference with 20 participants) would be 5 Mbps.&lt;br /&gt;
&lt;br /&gt;
== Related Articles ==&lt;br /&gt;
*[[Howto:Firmware_Upgrade]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64585</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64585"/>
		<updated>2022-12-16T13:40:25Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Disable all forkings with app rcc at node &amp;#039;Testnode&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Disable all forkings with app rcc at node &#039;Testnode&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164][@node=&amp;quot;Testnode&amp;quot;]/fork[@app=&amp;quot;rcc&amp;quot;][not(@off)] -&amp;gt; + @off = true&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64584</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64584"/>
		<updated>2022-12-16T13:38:06Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Securing it with boolean object &amp;#039;alwaystrue&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64583</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64583"/>
		<updated>2022-12-15T16:44:26Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Give all phones without app the app phone */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Securing it with boolean object &#039;alwaystrue&#039; ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64582</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64582"/>
		<updated>2022-12-15T16:37:46Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Give all phones without app the app phone */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
 /user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
 /user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
 /user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all phones without app the app phone ===&lt;br /&gt;
/user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)][not(@app)] -&amp;gt; + @app=phone&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; + @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
 /user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
=== Securing it with boolean object &#039;alwaystrue&#039; ===&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
 /user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64549</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64549"/>
		<updated>2022-12-10T12:03:19Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /*Give Reverse Proxy flag*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
/user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
/user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Search all user with template &amp;quot;Config User&amp;quot; and remove password ===&lt;br /&gt;
/user[@config=&amp;quot;Config User&amp;quot;]  -&amp;gt; - @pwd - @pwdx&lt;br /&gt;
&lt;br /&gt;
=== Give all user devices the flag &#039;Reverse Proxy&#039; ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; @trusted=true&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with boolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64545</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64545"/>
		<updated>2022-12-09T21:22:26Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Set a cfnr to 88 for all users with &amp;#039;T&amp;#039; as first letter in name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
/user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
/user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with bolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64544</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64544"/>
		<updated>2022-12-09T21:22:12Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Remove the Flag &amp;#039;TLS only&amp;#039; from all user devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
/user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
/user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; - @tls&lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; +cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with bolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64543</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64543"/>
		<updated>2022-12-09T21:19:56Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /*CFNR for users by name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
/user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
/user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; -@tls &lt;br /&gt;
&lt;br /&gt;
=== Set a cfnr to 88 for all users with &#039;T&#039; as first letter in name ===&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; +cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
==== Securing it with bolean object &#039;alwaystrue&#039; ====&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]  -&amp;gt; + cd/@type = cfnr&amp;lt;br/&amp;gt;&lt;br /&gt;
/user[not(pseudo) and starts-with(@cn, &amp;quot;T&amp;quot;)]/cd[not(ep)] -&amp;gt; + @bool =  alwaystrue &amp;amp; + ep/@e164 = 88&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64542</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64542"/>
		<updated>2022-12-09T13:14:25Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Search all users with number ===&lt;br /&gt;
/user[not(pseudo)][@e164]&lt;br /&gt;
&lt;br /&gt;
=== Search all user devices with Innovaphone MAC as hardware ID ===&lt;br /&gt;
/user/device[starts-with(@hw,&amp;quot;009033&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; -@tls &lt;br /&gt;
&lt;br /&gt;
=== Activate Flag &#039;TURN&#039; for all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; +@trusted=true&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64541</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64541"/>
		<updated>2022-12-09T13:09:25Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Links*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; -@tls &lt;br /&gt;
&lt;br /&gt;
=== Activate Flag &#039;TURN&#039; for all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; +@trusted=true&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64540</id>
		<title>Reference13r2:Apps/PbxManager/Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=64540"/>
		<updated>2022-12-09T13:02:19Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PBX Manager Explorer is a tool to search and modify the PBX objects configuration based on xpath expressions.&lt;br /&gt;
&lt;br /&gt;
Care should be taken to apply any changes with the OK buttons. These changes come into effect immediately and cannot be reverted. It is good practise to save a backup of the configuration before applying any modification.&lt;br /&gt;
&lt;br /&gt;
Clicking OK if there is no change is also not advised. It creates an unnecessary write operation.&lt;br /&gt;
&lt;br /&gt;
== The search input ==&lt;br /&gt;
&lt;br /&gt;
The search input is used for an xpath expression to filter the objects. Any object, for which an non-empty set is returned, is selected. If the search input is left empty, the expression &amp;quot;/user&amp;quot; is used, which selects all objects.&lt;br /&gt;
&lt;br /&gt;
An example, which selects all objects with a long name starting With &amp;quot;A&amp;quot; would be&lt;br /&gt;
&lt;br /&gt;
 /user[starts-with(@cn, &amp;quot;A&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
== Add ==&lt;br /&gt;
&lt;br /&gt;
To modify the data, an expression to add a tag or attribute can be added, by clicking on the plus icon. For example the expression&lt;br /&gt;
&lt;br /&gt;
 device/@hw = hw0&lt;br /&gt;
&lt;br /&gt;
adds a &amp;quot;device&amp;quot; tag with the attribute &amp;quot;hw&amp;quot; set to hw0&lt;br /&gt;
&lt;br /&gt;
== Del ==&lt;br /&gt;
&lt;br /&gt;
By clicking on the minus icon an expression to remove a tag or attribut may be specified&lt;br /&gt;
&lt;br /&gt;
== Display of current configuration ==&lt;br /&gt;
&lt;br /&gt;
In the first window below the expressions, the current configuration for each selected object is displayed&lt;br /&gt;
&lt;br /&gt;
== Preview of changed configuration ==&lt;br /&gt;
&lt;br /&gt;
In the window below the configuration is display as if the changes where applied&lt;br /&gt;
&lt;br /&gt;
== Operations ==&lt;br /&gt;
&lt;br /&gt;
=== OK ===&lt;br /&gt;
&lt;br /&gt;
applies the change to the current object&lt;br /&gt;
&lt;br /&gt;
=== OK(all) ===&lt;br /&gt;
&lt;br /&gt;
applies the change to all objects&lt;br /&gt;
&lt;br /&gt;
=== Skip ===&lt;br /&gt;
&lt;br /&gt;
skips the current object&lt;br /&gt;
&lt;br /&gt;
=== Cancel ===&lt;br /&gt;
&lt;br /&gt;
Cancels the operation. The changes already applied with OK are not reversed&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Remove the Flag &#039;TLS only&#039; from all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[@tls=&amp;quot;true&amp;quot;]  -&amp;gt; -@tls &lt;br /&gt;
&lt;br /&gt;
=== Activate Flag &#039;TURN&#039; for all user devices ===&lt;br /&gt;
/user[not(pseudo)][@e164]/device[not(@trusted)]  -&amp;gt; +@trusted=true&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:DE_-_Deutsche_Telekom_-_CompanyFlex_TCP_SIP-Provider_(2020)&amp;diff=63684</id>
		<title>Howto:DE - Deutsche Telekom - CompanyFlex TCP SIP-Provider (2020)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:DE_-_Deutsche_Telekom_-_CompanyFlex_TCP_SIP-Provider_(2020)&amp;diff=63684"/>
		<updated>2022-10-11T05:09:07Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Multi Location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
{{Template:SIP_TEST_STATUS_complete|update=November 19th, 2020|url=https://geschaeftskunden.telekom.de/internet-dsl/tarife/festnetz-internet-dsl/companyflex|productname=CompanyFlex Complete TCP|providername=Deutsche_Telekom}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;internal&amp;gt;Provider SBC: BroadWorks&amp;lt;/internal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: For security reasons, Telekom limits all of your SIP Trunks, CompanyFlex connection allows several TCP sessions, but there are limits on messages per second based on a source IP address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== {{SIP_TEST_ISSUES_MR_TITLE}} ===&lt;br /&gt;
{{SIP_TEST_ISSUES_MR_INTRO}}&lt;br /&gt;
; CLIR : {{SIP_TEST_FACT_CLIR}}&lt;br /&gt;
; EARLY MEDIA INBOUND : {{SIP_TEST_FACT_EARLY MEDIA INBOUND}}&lt;br /&gt;
; FAX T38 ONNET : {{SIP_TEST_FACT_FAX T38 ONNET}}&lt;br /&gt;
; FAX T38 : {{SIP_TEST_FACT_FAX T38}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{{SIP_TEST_FACTS_LIST}} [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_180_RINGING_FAILS|180_RINGING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_BASIC_CALL_FAILS|BASIC_CALL]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CLIR_FAILS|CLIR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CLNS_ONNET_FAILS|CLNS_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CLNS_FAILS|CLNS]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CONN_NR_DIFF_FAILS|CONN_NR_DIFF]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CONN_NR_INCOMING_FAILS|CONN_NR_INCOMING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CONN_NR_FAILS|CONN_NR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_DTMF_FAILS|DTMF]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_EARLY_MEDIA_INBOUND_FAILS|EARLY_MEDIA_INBOUND]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_AUDIO_FAILS|FAX_AUDIO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_T38_ONNET_FAILS|FAX_T38_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_T38_FAILS|FAX_T38]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_T38ANDAUDIO_FAILS|FAX_T38ANDAUDIO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711A_ONNET_FAILS|G711A_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711A_FAILS|G711A]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711U_ONNET_FAILS|G711U_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711U_FAILS|G711U]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G722_ONNET_FAILS|G722_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G722_FAILS|G722]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G729_ONNET_FAILS|G729_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G729_FAILS|G729]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_HOLD_RETRIEVE_FAILS|HOLD_RETRIEVE]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_IP_FRAGMENTATION_FAILS|IP_FRAGMENTATION]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_LARGE_SIP_MESSAGES_FAILS|LARGE_SIP_MESSAGES]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_MOBILITY_FAILS|MOBILITY]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_OPUS_NB_FAILS|OPUS_NB]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_OPUS_WB_FAILS|OPUS_WB]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_RALERT_DISC_FAILS|RALERT_DISC]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REDIR_302_FAILS|REDIR_302]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REDIR_DIVHDR_FAILS|REDIR_DIVHDR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REDIR_HISTHDR_FAILS|REDIR_HISTHDR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REVERSE_MEDIA_FAILS|REVERSE_MEDIA]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SDP_ICE_FAILS|SDP_ICE]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SDP_RTCP_MUX_FAILS|SDP_RTCP_MUX]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SDP_VIDEO_FAILS|SDP_VIDEO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SIP_INFO_FAILS|SIP_INFO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SRTP_INCOMING_FAILS|SRTP_INCOMING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SRTP_INTERNAL_FAILS|SRTP_INTERNAL]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SRTP_OUTGOING_FAILS|SRTP_OUTGOING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SUBSCRIBER_NR_FAILS|SUBSCRIBER_NR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_BLIND_FAILS|XFER_BLIND]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_CONS_ALERT_FAILS|XFER_CONS_ALERT]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_CONS_EXT_FAILS|XFER_CONS_EXT]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_CONS_FAILS|XFER_CONS]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test Results ==&lt;br /&gt;
{{SIP_TEST_TESTRESULT_ONLYMR_INTRO}}&lt;br /&gt;
=== {{SIP_TEST_RESULTS_MR_TITLE}} ===&lt;br /&gt;
; Registration : {{Template:SIP_Profile_Test_Registration_TCP_no_UDP}}&lt;br /&gt;
&lt;br /&gt;
; NAT Traversal : {{Template:SIP_Profile_Test_NAT_a_no_c}} &lt;br /&gt;
&lt;br /&gt;
; DTMF (RFC2833) : {{Template:SIP_Profile_Test_DTMF_RFC2833_yes}}&lt;br /&gt;
&lt;br /&gt;
; Session Timer : {{Template:SIP_Profile_Test_EXPIRES_yes}}&lt;br /&gt;
&lt;br /&gt;
; Redundancy : {{Template:SIP_Profile_Test_REDUNDANCY_no}}&lt;br /&gt;
&lt;br /&gt;
; Correct signalling of Ringing-state : {{Template:SIP_Profile_Test_RINGING_yes}}&lt;br /&gt;
&lt;br /&gt;
; CLIR : {{Template:SIP_Profile_Test_CLIR_no}}&lt;br /&gt;
&lt;br /&gt;
; Clip No Screening (CLNS) : {{Template:SIP_Profile_Test_CLNS_yes}} {{Template:SIP_Profile_Test_CLNS_clns_302_not_recommended}}&lt;br /&gt;
&lt;br /&gt;
; COLP : {{Template:SIP_Profile_Test_COLP_out_yes_in_yes}} {{Template:SIP_Profile_Test_COLP_diff_no}}&lt;br /&gt;
&lt;br /&gt;
; Early-Media : {{Template:SIP_Profile_Test_EARLY_MEDIA_INBOUND_no}}&lt;br /&gt;
&lt;br /&gt;
; Fax : {{Template:SIP_Profile_Test_AUDIOFAX_PSTN_yes}}&lt;br /&gt;
: {{Template:SIP_Profile_Test_T38_PSTN_no_onnet_no_fallback_yes}}&lt;br /&gt;
&lt;br /&gt;
; Codecs : supported to/from PSTN: G711A&lt;br /&gt;
: supported onnet (VoIP to VoIP): G711A, G711U and G722&lt;br /&gt;
&lt;br /&gt;
; IP-Fragmentation : {{Template:SIP_Profile_Test_FRAGMENTATION_yes}}&lt;br /&gt;
&lt;br /&gt;
; Large SIP messages : {{Template:SIP_Profile_Test_LARGE_MESSAGES_yes}}&lt;br /&gt;
&lt;br /&gt;
; Reverse Media Negotiation : {{Template:SIP_Profile_Test_REV_MEDIA_NEG_yes}}&lt;br /&gt;
&lt;br /&gt;
; Mobility Calls :  {{Template:SIP_Profile_Test_MobilityCall_no_with_MediaRelay}}&lt;br /&gt;
&lt;br /&gt;
; SRTP : {{Template:SIP_Profile_Test_SRTP_no}}&lt;br /&gt;
&lt;br /&gt;
; Dialing of Subscriber Numbers : {{Template:SIP_Profile_Test_SUBSCRIBER_NR_no}}&lt;br /&gt;
&lt;br /&gt;
; Call Transfer : {{Template:SIP_Profile_Test_CALL_TRANSFER_ok}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
Use profile &#039;&#039;DE-Deutsche_Telekom-CompanyFlex_TCP&#039;&#039; in &#039;&#039;Gateway/Interfaces/SIP&#039;&#039; to configure this SIP provider.&lt;br /&gt;
&lt;br /&gt;
Please note the following configuration hints:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;Dialling of subscriber numbers not possible, &#039;Dialing Location&#039; must be configured without &#039;Area Code&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{SIP_TEST_V12_HINT}}&lt;br /&gt;
&lt;br /&gt;
==Multi Location==&lt;br /&gt;
It&#039;s possible to have different MSNs and DDIs from different locations on the same trunk. But this is limited to 60 number objects. A number object is an MSN or the first DDI digit. So a complete DDI block from 0 to 9 (0-99 or 0-999) is counted as 10 number objects.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
{{SIP_TEST_PREFACE}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Compat|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty SIP Provider|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:DE_-_Deutsche_Telekom_-_CompanyFlex_TLS_SIP-Provider_(2020)&amp;diff=63683</id>
		<title>Howto:DE - Deutsche Telekom - CompanyFlex TLS SIP-Provider (2020)</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:DE_-_Deutsche_Telekom_-_CompanyFlex_TLS_SIP-Provider_(2020)&amp;diff=63683"/>
		<updated>2022-10-11T05:08:19Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Multi Location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
{{Template:SIP_TEST_STATUS_complete|update=November 19th, 2020|url=https://geschaeftskunden.telekom.de/internet-dsl/tarife/festnetz-internet-dsl/companyflex|productname=CompanyFlex_TLS|providername=Deutsche_Telekom}}&lt;br /&gt;
&amp;lt;internal&amp;gt;Provider SBC: BroadWorks&amp;lt;/internal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== {{SIP_TEST_ISSUES_MR_TITLE}} ===&lt;br /&gt;
{{SIP_TEST_ISSUES_MR_INTRO}}&lt;br /&gt;
; CLIR : {{SIP_TEST_FACT_CLIR}}&lt;br /&gt;
; EARLY MEDIA INBOUND : {{SIP_TEST_FACT_EARLY MEDIA INBOUND}}&lt;br /&gt;
; FAX T38 ONNET : {{SIP_TEST_FACT_FAX T38 ONNET}}&lt;br /&gt;
; FAX T38 : {{SIP_TEST_FACT_FAX T38}}&lt;br /&gt;
; FAX T38ANDAUDIO : {{SIP_TEST_FACT_FAX T38ANDAUDIO}}&lt;br /&gt;
; SDP VIDEO : {{SIP_TEST_FACT_SDP VIDEO}}&lt;br /&gt;
; SIP INFO : {{SIP_TEST_FACT_SIP INFO}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;{{SIP_TEST_FACTS_LIST}} [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_180_RINGING_FAILS|180_RINGING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_BASIC_CALL_FAILS|BASIC_CALL]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CLIR_FAILS|CLIR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CLNS_ONNET_FAILS|CLNS_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CLNS_FAILS|CLNS]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CONN_NR_DIFF_FAILS|CONN_NR_DIFF]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CONN_NR_INCOMING_FAILS|CONN_NR_INCOMING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_CONN_NR_FAILS|CONN_NR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_DTMF_FAILS|DTMF]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_EARLY_MEDIA_INBOUND_FAILS|EARLY_MEDIA_INBOUND]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_AUDIO_FAILS|FAX_AUDIO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_T38_ONNET_FAILS|FAX_T38_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_T38_FAILS|FAX_T38]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_FAX_T38ANDAUDIO_FAILS|FAX_T38ANDAUDIO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711A_ONNET_FAILS|G711A_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711A_FAILS|G711A]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711U_ONNET_FAILS|G711U_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G711U_FAILS|G711U]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G722_ONNET_FAILS|G722_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G722_FAILS|G722]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G729_ONNET_FAILS|G729_ONNET]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_G729_FAILS|G729]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_HOLD_RETRIEVE_FAILS|HOLD_RETRIEVE]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_IP_FRAGMENTATION_FAILS|IP_FRAGMENTATION]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_LARGE_SIP_MESSAGES_FAILS|LARGE_SIP_MESSAGES]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_MOBILITY_FAILS|MOBILITY]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_OPUS_NB_FAILS|OPUS_NB]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_OPUS_WB_FAILS|OPUS_WB]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_RALERT_DISC_FAILS|RALERT_DISC]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REDIR_302_FAILS|REDIR_302]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REDIR_DIVHDR_FAILS|REDIR_DIVHDR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REDIR_HISTHDR_FAILS|REDIR_HISTHDR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_REVERSE_MEDIA_FAILS|REVERSE_MEDIA]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SDP_ICE_FAILS|SDP_ICE]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SDP_RTCP_MUX_FAILS|SDP_RTCP_MUX]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SDP_VIDEO_FAILS|SDP_VIDEO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SIP_INFO_FAILS|SIP_INFO]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SRTP_INCOMING_FAILS|SRTP_INCOMING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SRTP_INTERNAL_FAILS|SRTP_INTERNAL]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SRTP_OUTGOING_FAILS|SRTP_OUTGOING]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_SUBSCRIBER_NR_FAILS|SUBSCRIBER_NR]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_BLIND_FAILS|XFER_BLIND]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_CONS_ALERT_FAILS|XFER_CONS_ALERT]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_CONS_EXT_FAILS|XFER_CONS_EXT]], [[Template:SIP_TEST_FACT_DESCRIPTION_TEST_XFER_CONS_FAILS|XFER_CONS]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test Results ==&lt;br /&gt;
{{SIP_TEST_TESTRESULT_ONLYMR_INTRO}}&lt;br /&gt;
=== {{SIP_TEST_RESULTS_MR_TITLE}} ===&lt;br /&gt;
; Registration : {{Template:SIP_Profile_Test_Registration_TCP_no_UDP}}&lt;br /&gt;
&lt;br /&gt;
; NAT Traversal : {{Template:SIP_Profile_Test_NAT_a_no_c}} &lt;br /&gt;
&lt;br /&gt;
; DTMF (RFC2833) : {{Template:SIP_Profile_Test_DTMF_RFC2833_yes}}&lt;br /&gt;
&lt;br /&gt;
; Session Timer : {{Template:SIP_Profile_Test_EXPIRES_yes}}&lt;br /&gt;
&lt;br /&gt;
; Redundancy : {{Template:SIP_Profile_Test_REDUNDANCY_no}}&lt;br /&gt;
&lt;br /&gt;
; Correct signalling of Ringing-state : {{Template:SIP_Profile_Test_RINGING_yes}}&lt;br /&gt;
&lt;br /&gt;
; CLIR : {{Template:SIP_Profile_Test_CLIR_no}}&lt;br /&gt;
&lt;br /&gt;
; Clip No Screening (CLNS) : {{Template:SIP_Profile_Test_CLNS_yes}} {{Template:SIP_Profile_Test_CLNS_clns_302_not_recommended}}&lt;br /&gt;
&lt;br /&gt;
; COLP : {{Template:SIP_Profile_Test_COLP_out_yes_in_yes}} {{Template:SIP_Profile_Test_COLP_diff_no}}&lt;br /&gt;
&lt;br /&gt;
; Early-Media : {{Template:SIP_Profile_Test_EARLY_MEDIA_INBOUND_no}}&lt;br /&gt;
&lt;br /&gt;
; Fax : {{Template:SIP_Profile_Test_AUDIOFAX_PSTN_yes}}&lt;br /&gt;
: {{Template:SIP_Profile_Test_T38_PSTN_no_onnet_no_fallback_no}}&lt;br /&gt;
&lt;br /&gt;
; Codecs : supported to/from PSTN: G711A&lt;br /&gt;
: supported onnet (VoIP to VoIP): G711A, G711U and G722&lt;br /&gt;
&lt;br /&gt;
; IP-Fragmentation : {{Template:SIP_Profile_Test_FRAGMENTATION_yes}}&lt;br /&gt;
&lt;br /&gt;
; Large SIP messages : {{Template:SIP_Profile_Test_LARGE_MESSAGES_yes}}&lt;br /&gt;
&lt;br /&gt;
; Reverse Media Negotiation : {{Template:SIP_Profile_Test_REV_MEDIA_NEG_yes}}&lt;br /&gt;
&lt;br /&gt;
; Mobility Calls :  {{Template:SIP_Profile_Test_MobilityCall_no_with_MediaRelay}}&lt;br /&gt;
&lt;br /&gt;
; SRTP : {{Template:SIP_Profile_Test_SRTP_yes}}&lt;br /&gt;
&lt;br /&gt;
; Dialing of Subscriber Numbers : {{Template:SIP_Profile_Test_SUBSCRIBER_NR_no}}&lt;br /&gt;
&lt;br /&gt;
; Call Transfer : {{Template:SIP_Profile_Test_CALL_TRANSFER_ok}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
Use profile &#039;&#039;DE-Deutsche_Telekom-CompanyFlex_TLS&#039;&#039; in &#039;&#039;Gateway/Interfaces/SIP&#039;&#039; to configure this SIP provider.&lt;br /&gt;
&lt;br /&gt;
Please note the following configuration hints:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;If you intend to use SIPS (SIP/TLS) registration, you need to add the &#039; TeleSec ServerPass Class 2 CA&#039; certificate to the trust list of your SBC&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;Dialling of subscriber numbers not possible, &#039;Dialing Location&#039; must be configured without &#039;Area Code&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{SIP_TEST_V12_HINT}}&lt;br /&gt;
&lt;br /&gt;
==Multi Location==&lt;br /&gt;
It&#039;s possible to have different MSNs and DDIs from different locations on the same trunk. But this is limited to 60 number objects. A number object is an MSN or the first DDI digit. So a complete DDI block from 0 to 9 (0-99 or 0-999) is counted as 10 number objects.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
{{SIP_TEST_PREFACE}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Compat|{{PAGENAME}}]]&lt;br /&gt;
[[Category:3rdParty SIP Provider|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=61727</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=61727"/>
		<updated>2022-04-13T11:20:52Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Known Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:3rdPartyGoldfischglas 03.png|right]]&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Service Contacts#Upload Data by HTTP Post|Concept App Service Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
==Setting up LibreOffice==&lt;br /&gt;
* Depending on your security settings for executing macros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the visible sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the columns as they are. At hidden row 2 is the headline as used in export for debugging reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there is a few information needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers, and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the descriptions of the setting values and a notice on every cell which describes the value with a few words. At column B you have to enter the values and you will find a notice with a short German description.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Off course this can also be hidden, but not with the latest version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know your improvements.&lt;br /&gt;
Here it is important, that the row 1 is not modified, because this is not touched by the macro. So to make it a little safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in German. You don&#039;t need this sheet, so there was no need to translate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will be saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now, the clipboard will be filled with an empty cell and the document will be saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creates a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be addressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the script is deleting the import.utf8 and itself to prevent files with the credentials and contacts at the folder. The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the macro now you see the data-file upload.utf8 and the script-file uploader.cmd in the workspace and you can analyse both files and run uploader.cmd.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, you can uncomment this to get some messages by running the macro.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the current sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear in the settings there is a little security risk. Maybe in the next version there comes a password request if the value is empty, but you know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, it is up to you to check everything.&lt;br /&gt;
* Naturally, because of the use of Windows scripts it will only work on Windows.&lt;br /&gt;
* You need at least 2 contacts lines, otherwise the upload fails, but you can improve it too&lt;br /&gt;
* Of course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Service Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=61726</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=61726"/>
		<updated>2022-04-13T11:19:31Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Known Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:3rdPartyGoldfischglas 03.png|right]]&lt;br /&gt;
==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Service Contacts#Upload Data by HTTP Post|Concept App Service Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
==Setting up LibreOffice==&lt;br /&gt;
* Depending on your security settings for executing macros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the visible sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the columns as they are. At hidden row 2 is the headline as used in export for debugging reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there is a few information needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers, and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the descriptions of the setting values and a notice on every cell which describes the value with a few words. At column B you have to enter the values and you will find a notice with a short German description.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Off course this can also be hidden, but not with the latest version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know your improvements.&lt;br /&gt;
Here it is important, that the row 1 is not modified, because this is not touched by the macro. So to make it a little safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in German. You don&#039;t need this sheet, so there was no need to translate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will be saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now, the clipboard will be filled with an empty cell and the document will be saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creates a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be addressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the script is deleting the import.utf8 and itself to prevent files with the credentials and contacts at the folder. The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the macro now you see the data-file upload.utf8 and the script-file uploader.cmd in the workspace and you can analyse both files and run uploader.cmd.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, you can uncomment this to get some messages by running the macro.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the current sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear in the settings there is a little security risk. Maybe in the next version there comes a password request if the value is empty, but you know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, it is up to you to check everything.&lt;br /&gt;
* Naturally, because of the use of Windows scripts it will only work on Windows.&lt;br /&gt;
* You need at least 2 contacts-lines, otherwise the upload fails (this is somewhere in the script)&lt;br /&gt;
* Of course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Service Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform&amp;diff=60730</id>
		<title>Reference13r1:Concept App Platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Reference13r1:Concept_App_Platform&amp;diff=60730"/>
		<updated>2022-01-07T17:20:51Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Database */ hint for problems after restart pgsql&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
* V13 uses [https://buildroot.org/ buildroot]&lt;br /&gt;
* this is an own (innovaphone) collection of packages&lt;br /&gt;
* For further information see: [https://buildroot.org/docs.html Buildroot Documentations]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* V13 or up&lt;br /&gt;
* Gateway (arm): IPx10 (with CF card) or IPx11 (with mSATA SSD) &lt;br /&gt;
* Virtual (x86_64)&lt;br /&gt;
** HyperV with [https://docs.microsoft.com/de-de/windows-server/virtualization/hyper-v/deploy/upgrade-virtual-machine-version-in-hyper-v-on-windows-or-windows-server#supported-virtual-machine-configuration-versions VM-configuration Version] 6.2 (minimum: Windows 10 or Windows Server 2016)&lt;br /&gt;
** VMWare&lt;br /&gt;
&lt;br /&gt;
== Default credentials ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;During INSTALL, the default passwords are replaced with the global Admin PW!&#039;&#039;&#039;&lt;br /&gt;
* SSH-Login with &#039;&#039;&#039;admin&#039;&#039;&#039; and &#039;&#039;&#039;ipapps&#039;&#039;&#039;&lt;br /&gt;
* root login with &#039;&#039;&#039;root&#039;&#039;&#039; and &#039;&#039;&#039;iplinux&#039;&#039;&#039; (the root login is not directly possible, you have to login as admin first and use the command &#039;&#039;su root&#039;&#039;)&lt;br /&gt;
* manager App (web login) &#039;&#039;&#039;pwd&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= App Platform - arm (Gateway)=&lt;br /&gt;
&lt;br /&gt;
* The installation image has a size of ~50MB. During installation, the following partitions are created:&lt;br /&gt;
** /dev/sda1 fat32: 200MB (contains ramdisk, rootfs and kernel)&lt;br /&gt;
** /dev/sda2 ext4: depends on disk size (contains databases, log files and apps)&lt;br /&gt;
** /dev/sda3 ext4: 500MB (contains the rootfs)&lt;br /&gt;
** /dev/sda4 swap: 512MB&lt;br /&gt;
&lt;br /&gt;
When comparing potential performance of the IPxx11 platform compared to the IPxx10 platform, there are some major differences:&lt;br /&gt;
* SSDs found in the xx11 are faster and more reliable than the CF found in the xx10&lt;br /&gt;
* the available RAM for the AP (as specified in column &#039;&#039;RAM for LAP (GB) out of RAM&#039;&#039; in chapter &#039;&#039;Technical data and recommended number of users supported&#039;&#039; of [[Howto:How_to_implement_large_PBXs#Technical_data_and_recommended_number_of_users_supported|How to implement large PBXs]]) is factor 6 larger on the xx11 (1,536 GB) than on the xx10 (0,256 GB))&lt;br /&gt;
* the xx11 has gigabit Ethernet while the xx10 has 100Mbps Ethernet. The xx10 is therefore not well suited for Apps with larger network traffic, such as Recordings&lt;br /&gt;
* the CPU of the xx11 (although it runs on the same frequency) is roughly 20% faster than the xx10&lt;br /&gt;
&lt;br /&gt;
While it is hard to predict the performance of the AP in a specific scenario, we see that in a real life environment an AP running on an xx11 platform can well support 150 users. The xx10 platform is estimated to support 120 users.  Because CPU performance is the limiting factor, larger setups can be built based on the virtual machine platform (see [[#App_services_and_multi-threading|App services and multi-threading]] below).&lt;br /&gt;
&lt;br /&gt;
= App Platform - x86-64 (Virtual Machine 64bit) =&lt;br /&gt;
&lt;br /&gt;
* The default disk size is 16GB. It should be increased &#039;&#039;&#039;before&#039;&#039;&#039; the first start if needed!&lt;br /&gt;
&lt;br /&gt;
* Multiple CPUs are supported, default is one CPU&lt;br /&gt;
&lt;br /&gt;
* default RAM: 512MB&lt;br /&gt;
* static IP address, DNS, Gateway can be configured with the command &#039;&#039;&#039;setip&#039;&#039;&#039; on the console. Run &#039;&#039;&#039;setip --help&#039;&#039;&#039; to get a list of parameters. (Example: setip --addr=x.x.x.x --mask=x.x.x.x --gateway=x.x.x.x --dns1=x.x.x.x) &lt;br /&gt;
* If you have permission problems change to su user (Password is iplinux or your new admin password)  &lt;br /&gt;
* To figure out your ip address you can use the command: &#039;&#039;ip address&#039;&#039; on the console.&lt;br /&gt;
* &#039;&#039;&#039;loadkeys de&#039;&#039;&#039; can be used to change to german keyboard layout (etc.)&lt;br /&gt;
&lt;br /&gt;
* partitions:&lt;br /&gt;
** /dev/sda1 ext2: 350MB (contains ramdisk, rootfs and kernel)&lt;br /&gt;
** /dev/sda2 ext4: depends on disk size (contains databases, log files and apps)&lt;br /&gt;
** /dev/sda3 ext4: 500MB (contains the rootfs)&lt;br /&gt;
** /dev/sda4 swap: 512MB&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
==ARM Gateway==&lt;br /&gt;
&lt;br /&gt;
If you setup a Gateway with the install procedure, the App Platform is installed automatically (Https Download has to be allowed and shouldn&#039;t be blocked by any firewall.)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
You can also install it manually:&lt;br /&gt;
* Open App Platform -&amp;gt; General and &#039;&#039;&#039;Enable Linux Support&#039;&#039;&#039;. Restart the gateway.&lt;br /&gt;
* You need to enable Proxy-ARP on [[Reference13r1:IP4/ETH/IP|ETH0]] or [[Reference13r1:IP4/ETH/IP|ETH1]], so your Gateway and the Linux Appliance will share the same physical interface.&lt;br /&gt;
* Open App Platform -&amp;gt; IP and configure the IP settings of the App Platform. Restart the Gateway.&lt;br /&gt;
* Open App Platform -&amp;gt; Installation and select the given version or enter an own path to the &#039;&#039;app-platform-armel.img&#039;&#039; image file.&lt;br /&gt;
* The installation runs without any further required step.&lt;br /&gt;
&lt;br /&gt;
==Virtual machine==&lt;br /&gt;
&lt;br /&gt;
* Import the image into your server environment.&lt;br /&gt;
* Edit the disk size, if needed.&lt;br /&gt;
* Start the machine and wait until it reboots and starts again.&lt;br /&gt;
* Note: If you need to access an IP addresses available through a VPN connection from from inside the virtual machine, it could be that you need to set the network of your VM to NAT (and also add the URL for an IP to /etc/hosts)&lt;br /&gt;
&lt;br /&gt;
[https://wiki.innovaphone.com/index.php?title=Reference12r1:Concept_Innovaphone_Virtual_Appliance#Configuration More Configuration Hints regarding VM Ware]&lt;br /&gt;
&lt;br /&gt;
== Backup of the Apps ==&lt;br /&gt;
&lt;br /&gt;
Each App Service can have multiple instances and each instance has its own database. The manager app itself also has its own database.&amp;lt;br&amp;gt;&lt;br /&gt;
There are no other files which need to be backuped.&amp;lt;br&amp;gt;&lt;br /&gt;
The standard way to backup the databases is through the Devices App [[Reference13r1:Concept_App_Service_Devices#Backups]].&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An alternate way is to use a command file which is similar to the command files from the firmware.&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* &#039;&#039;&#039;times&#039;&#039;&#039; 0,12 # backup only at 0 or 12 o&#039;clock&lt;br /&gt;
* &#039;&#039;&#039;backup-instances&#039;&#039;&#039; http://user:pw@ip/path/#I-#D.dump PUT&lt;br /&gt;
** PUT and POST are supported, all instances including the manager itself are saved&lt;br /&gt;
* &#039;&#039;&#039;backup-instance&#039;&#039;&#039; http://user:pw@ip/path/#I-#D.dump apidemo example.com PUT&lt;br /&gt;
** backup a single instance with instance name and instance domain&lt;br /&gt;
* &#039;&#039;&#039;backup-manager&#039;&#039;&#039; http://user:pw@ip/path/#I-#D.dump&lt;br /&gt;
&lt;br /&gt;
===Hash parameters===&lt;br /&gt;
* #L App Platform label (neu), e.g. 10024&lt;br /&gt;
* #A App label (neu), e.g. 130004&lt;br /&gt;
* #I instance name (neu), e.g. reporting1&lt;br /&gt;
* #D instance domain (neu), e.g. innovaphone.com&lt;br /&gt;
* #m MAC address of the LAP, e.g. 00ab11eeff&lt;br /&gt;
* #d Current date and time (plain UTC without daylight saving and timezone adjustments) 20051010-170130&lt;br /&gt;
* #bn rolling backup index&lt;br /&gt;
* ## escapes a hash mark&lt;br /&gt;
&lt;br /&gt;
= App Platform Infrastructure and Concept =&lt;br /&gt;
== Webserver ==&lt;br /&gt;
The app platform includes a webserver that is highly optimized for handling many Websocket connections at a low memory footprint.&lt;br /&gt;
All apps use that webserver by registering for specific HTTP subpath. So they can all use the same HTTP/HTTPS ports - typically the standard ports.&lt;br /&gt;
&lt;br /&gt;
=== Import Custom SSL Certificate ===&lt;br /&gt;
You have to upload a PEM Certificate with the following chain structure and without password encoding.&lt;br /&gt;
&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 (certificate: your_domain_name.crt)&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 (Intermediate certificate: DigiCertCA.crt)&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 -----BEGIN CERTIFICATE-----&lt;br /&gt;
 (Root certificate: TrustedRoot.crt)&lt;br /&gt;
 -----END CERTIFICATE-----&lt;br /&gt;
 -----BEGIN RSA PRIVATE KEY-----&lt;br /&gt;
 (certificate Key: your_domain_name.key)&lt;br /&gt;
 -----END RSA PRIVATE KEY-----&lt;br /&gt;
&lt;br /&gt;
=== Known issues ===&lt;br /&gt;
*The app platform webserver can use only the default http/https ports 80/443.&lt;br /&gt;
*By design, there is no possibility to restore the default webserver certificate on the App Platform, if another certificate was once uploaded.&amp;lt;br /&amp;gt;&lt;br /&gt;
**If nevertheless needed, you must login with Putty (see [[#How_to_retrieve_files_from_the_AP | Retrieve files]]) and execute these commands as root:&lt;br /&gt;
**&#039;&#039;psql -d manager -c &amp;quot;DELETE FROM config WHERE name=&#039;webserverCertificate&#039;&amp;quot;&#039;&#039;&lt;br /&gt;
**&#039;&#039;/etc/init.d/S92manager restart&#039;&#039;&lt;br /&gt;
*The app platform webserver interprets URLs case-sensitive. In other words, &amp;lt;nowiki&amp;gt;http://&amp;lt;addr&amp;gt;/file.txt&amp;lt;/nowiki&amp;gt; is not the same as &amp;lt;nowiki&amp;gt;http://&amp;lt;addr&amp;gt;/FILE.TXT&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
The app platform creates a database for each app instance with a given password. In the installer there will be used randomly generated passwords. You can set a new database password for every instance in the Application Platform.&lt;br /&gt;
&lt;br /&gt;
The apps should store all data in that database. That makes sure that a consistent backup and restore of app instances can be done by the app platform manager.&lt;br /&gt;
In hosted scenarios, having separate databases for each instance also makes sure that the data of different customers are clearly separated and can easily be moved from one physical platform to another.&lt;br /&gt;
&lt;br /&gt;
The default configuration decline database request from extern. If you need external access you can change the PGSQL configuration (as root) in the file &#039;&#039;/mnt/sda2/pgsql/pg_hba.conf&#039;&#039;.&lt;br /&gt;
After editing pg_hba.conf, the database-service has to be restarted with the command &amp;lt;code&amp;gt;/etc/init.d/S50postgresql restart&amp;lt;/code&amp;gt;&lt;br /&gt;
(Please think about it before you do it, because a better way is to create your own local app with local database access.)&lt;br /&gt;
&lt;br /&gt;
You can find the official documentation for the pg_hba.conf here: https://www.postgresql.org/docs/11/auth-pg-hba-conf.html&lt;br /&gt;
&lt;br /&gt;
Sometimes the Apps are not proper working after this. You can wait a while until everything is working again or you go the hard way:&lt;br /&gt;
* stop the manager&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/init.d/S92manager stop&amp;lt;/code&amp;gt;&lt;br /&gt;
* restart the database-service (maybe not really necessary, but makes a good feeling)&lt;br /&gt;
**&amp;lt;code&amp;gt;/etc/init.d/S50postgresql restart&amp;lt;/code&amp;gt;&lt;br /&gt;
* start the manager&lt;br /&gt;
** &amp;lt;code&amp;gt;/etc/init.d/S92manager start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== App Platform Manager ==&lt;br /&gt;
The App Platform Manager is the central component of the App Platform. It does the following:&lt;br /&gt;
* Installing app services by downloading the binaries from an app store.&lt;br /&gt;
* Running and monitoring app services. If an app service crashes it is restarted, automatically.&lt;br /&gt;
* Management of app instances and providing them with the environment they need:&lt;br /&gt;
** A database&lt;br /&gt;
** A webserver path&lt;br /&gt;
** A password for authentication&lt;br /&gt;
* Backup and restore of app instances.&lt;br /&gt;
* Collecting debug information like tracing and crash dumps.&lt;br /&gt;
* System monitoring (CPU usage, memory usage, etc).&lt;br /&gt;
&lt;br /&gt;
== App Services ==&lt;br /&gt;
App services are runned by the App Platform Manager. They implement an interface that is used by the manager to start, stop and configure app instances. Each service runs in a separate child process of the manager.&lt;br /&gt;
&lt;br /&gt;
== App Instances ==&lt;br /&gt;
The actual functionality of an app service is provided by app instances. They run in the same process as the app service but have a distinct webserver path and their own database. There can be 0..n instances of an app service. Instances can optionally host (web) apps that can be opened in the myApps client.&lt;br /&gt;
&lt;br /&gt;
Each instance of an App service has two passwords. The instance password itself and a database password. If you want to change it you must update the password on both sides.&amp;lt;br&amp;gt;&lt;br /&gt;
The instance password must match to the password in the corresponding PBX App objects, while one instance can have different App objects.&amp;lt;br&amp;gt;&lt;br /&gt;
The database password must be just known to the manager and not outside of the App Platform.&lt;br /&gt;
&lt;br /&gt;
== Relationship between app instances and app objects in the PBX ==&lt;br /&gt;
Typically an app instance is connected to one or more app objects in a customer PBX. This is done by configuring the same parameters on both sides:&lt;br /&gt;
* URL&lt;br /&gt;
* Password&lt;br /&gt;
The password is used by the PBX for authenticating itself, users and services against the app instance.&lt;br /&gt;
&lt;br /&gt;
Some apps need a websocket connection with the PBX. When &amp;quot;websocket&amp;quot; is activated at the app object, the PBX establishes a websocket connection to the app instance and provides the APIs that are configured at the app object.&lt;br /&gt;
&lt;br /&gt;
=== Supported scenarios ===&lt;br /&gt;
It is important to understand that the concept does not do any assumptions on how PBXes and APs are correlated. So you can have&lt;br /&gt;
* One AP for one customer&lt;br /&gt;
* One AP for many customers&lt;br /&gt;
* Many APs for one customer&lt;br /&gt;
* Many APs for many customers&lt;br /&gt;
&lt;br /&gt;
Attention: The V13 installer can only configure the scenario &amp;quot;&#039;&#039;One AP for one customer&#039;&#039;&amp;quot;. If you want to have a different scenario, you have to configure it manually.&lt;br /&gt;
&lt;br /&gt;
For hosting or cloud scenarios you need special scenarios. Please refer our [[Howto:V13_Hosting| V13 Hosting]] instructions.&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
Currently we don&#039;t have redundancy for app instances or APs.&lt;br /&gt;
&lt;br /&gt;
== Update of the App Platform itself ==&lt;br /&gt;
The App Platform is build on top of buildroot and will receive updates and fixes from time to time.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can update the used build inside the Manager App by using the &#039;&#039;&#039;Update&#039;&#039;&#039; button at the top.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 It is strongly advised to make a full backup (VM) or at least backup all apps (Gateway) before you run such an update!&lt;br /&gt;
&lt;br /&gt;
== App services and multi-threading ==&lt;br /&gt;
Each App Service runs in a single process with no multi-threading, independent of the instances of the App Service. However, each instance maintains its own database connection and the database responds to this connect with the creation of a new process. Each app service therefore uses 1+&#039;&#039;n&#039;&#039;  threads (where &#039;&#039;n&#039;&#039; is the number of instances).  All communication between app service instances and their clients must pass the single-threaded web server.  On platforms with multi-threading support (i.e. VMware or Hyper-V), up to 1 + &#039;&#039;m&#039;&#039; + &#039;&#039;m&#039;&#039; * &#039;&#039;n&#039;&#039; (with &#039;&#039;m&#039;&#039; being the number of Apps and &#039;&#039;n&#039;&#039; the number of instances per App) threads can be utilized.&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
== Reboot after an image update hangs (ARM gateway) ==&lt;br /&gt;
&lt;br /&gt;
If it happens, that the AP doesn&#039;t recover after the reboot, please open the Admin UI of the corresponding gateway and take a look at App Platform -&amp;gt; General.&amp;lt;br&amp;gt;&lt;br /&gt;
If &#039;&#039;&#039;Kernel command line&#039;&#039;&#039; is set to &#039;&#039;&#039;/dev/ram0&#039;&#039;&#039;, the AP booted the ramdisk.&amp;lt;br&amp;gt;&lt;br /&gt;
Try to login with putty in this case (default credentials admin/ipapps and root/iplinux) and issue this command:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;cat /apps/install_step1.log&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If this file contains &#039;&#039;&#039;finished&#039;&#039;&#039; at the end, you can reconfigure the settings under App Platform -&amp;gt; General:&amp;lt;br&amp;gt;&lt;br /&gt;
* press &#039;&#039;&#039;Stop&#039;&#039;&#039;&lt;br /&gt;
* Initrd file: empty&lt;br /&gt;
* Kernel command line: &#039;&#039;&#039;root=/dev/sda3&#039;&#039;&#039;&lt;br /&gt;
* Ramdisk size: empty&lt;br /&gt;
* press &#039;&#039;&#039;Start&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The AP should boot and run the already updated image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tracing =&lt;br /&gt;
Each App Service has its own log file, which can be accessed through the Manager App. You can configure a log file size for each App Service.&amp;lt;br&amp;gt;&lt;br /&gt;
Each App Intance has its own trace flags. The following trace flags can be set:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Alarm client: used by the manager to send alarms to an alarm server&lt;br /&gt;
* App: logs from the App Service itself&lt;br /&gt;
* App WebSocket: logs app websocket connections (e.g. from PBX objects to an App Service or from the UI to the App Service)&lt;br /&gt;
* AppSharing: just native clients&lt;br /&gt;
* AppProxy: just native clients, logs requests which are proxied between the local webserver and the remote server&lt;br /&gt;
* Audio: just native clients&lt;br /&gt;
* Browser: just native clients&lt;br /&gt;
* Command: the command interface is used to execute shell commands, e.g. used by the manager App&lt;br /&gt;
* Config: logs config changes of an App&lt;br /&gt;
* Database: database logs&lt;br /&gt;
* DB files: database file logs&lt;br /&gt;
* DNS: DNS request logging&lt;br /&gt;
* DTLS: just native clients, DTLS request logging&lt;br /&gt;
* Ethernet: interface to get ethernet adapater infos, just manager App&lt;br /&gt;
* File: logs for file system access (synchronous), e.g. manager App&lt;br /&gt;
* Files: logs for file system access (asynchronous)&lt;br /&gt;
* HTTP client: http client logs&lt;br /&gt;
* HTTP file: logs for static HTTP files&lt;br /&gt;
* ICE: just native clients&lt;br /&gt;
* LDS: local domain sockets &lt;br /&gt;
* Media: just native clients&lt;br /&gt;
* Media channel: just native clients&lt;br /&gt;
* Process: IProcess interface logs which is used for spawning, killing processes etc.&lt;br /&gt;
* SMTP: SMTP client logs&lt;br /&gt;
* TCP: TCP logs&lt;br /&gt;
* Time: ITime interface logs&lt;br /&gt;
* TLS: TLS logs&lt;br /&gt;
* TURN: just native clients&lt;br /&gt;
* UDP: UDP logs&lt;br /&gt;
* Video: just native clients&lt;br /&gt;
* WebSocket client: logs outgoing websocket connections&lt;br /&gt;
* Webserver traffic: logs incoming HTTP traffic, which is forwarded from the webserver to the App&lt;br /&gt;
* WebDAV service: logs WebDAV requests to the App&lt;br /&gt;
* Webserver: enables webserver specific logs&lt;br /&gt;
&lt;br /&gt;
== RPCAP ==&lt;br /&gt;
&lt;br /&gt;
If you open the Manager App, click on the Manager in the left list and then on the Diagnostics button, you can enable RPCAP.&amp;lt;br&amp;gt;&lt;br /&gt;
You can add the interface in wireshark with the string:&lt;br /&gt;
 rpcap://&amp;lt;APP-Platform-IP&amp;gt;/eth0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please don&#039;t forget to disable RPCAP after your testing!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= How-Tos =&lt;br /&gt;
&lt;br /&gt;
== How to retrieve files from the AP ==&lt;br /&gt;
To retrieve files from the AP which can not be retrieved via the AP manager UI, you can connect to the AP using the SCP protocol on port 22.&lt;br /&gt;
&lt;br /&gt;
For example, in WinSCP&lt;br /&gt;
* use &#039;&#039;SCP&#039;&#039; as protocol (NB: WebDAV is not supported on most of the directories on the AP)&lt;br /&gt;
* use the &#039;&#039;DNS&#039;&#039; name or IP address of your AP (not the PBX)&lt;br /&gt;
* use user &#039;&#039;admin&#039;&#039; and the appropriate password (&#039;&#039;ipapps&#039;&#039; by default)&lt;br /&gt;
* use &#039;&#039;/home/admin&#039;&#039; as start directory&lt;br /&gt;
* use &#039;&#039;su root&#039;&#039; to be root (&#039;&#039;iplinux&#039;&#039; as default password)&lt;br /&gt;
&lt;br /&gt;
You can now copy files to &#039;&#039;/home/admin&#039;&#039; (e.g. from /var/log/apps/manager/...).&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== App Platform/Apps app not online anymore due to full disk ==&lt;br /&gt;
If the apps app is not online anymore and you can&#039;t access any apps anymore, try to login with an SSH client to see if your disk is full.&lt;br /&gt;
Login as admin and afterwards as root (su root).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* issue &#039;&#039;&#039;df -h&#039;&#039;&#039; and see the disk usage of /dev/sda2, if this is 100%, your disk is too full&lt;br /&gt;
* stop the manager&lt;br /&gt;
** /etc/init.d/S92manager stop&lt;br /&gt;
* empty the 500 MB file, which is exactly for this case here (manager must be 13r1 SR9 or higher to have this file)&lt;br /&gt;
** echo &amp;quot;&amp;quot; &amp;gt; /mnt/sda2/empty_if_no_space&lt;br /&gt;
* delete log files to recover some space&lt;br /&gt;
** rm /var/log/apps/*/*&lt;br /&gt;
** rm /var/log/core_dumps/*/*&lt;br /&gt;
* restart the postgresql server (see the output if this worked or not)&lt;br /&gt;
** /etc/init.d/S50postgresql restart&lt;br /&gt;
* restart the manager&lt;br /&gt;
** /etc/init.d/S92manager restart&lt;br /&gt;
* wait until everything is online again&lt;br /&gt;
* open the Apps app and try to find the instance which uses the most disk space and try to delete files/content from it&lt;br /&gt;
** you may want to stop all app services first to prevent more writes to the database&lt;br /&gt;
** if not possible, you can delete this instance, but you&#039;ll loose all data from this instance then!&lt;br /&gt;
* after that you can try [[Reference13r1:Concept_App_Platform#Shrink_the_physically_size_of_PostgreSQL_database_files]] to free up space&lt;br /&gt;
** If this does not work you can create a backup from the database, delete the database and import the database again.&lt;br /&gt;
* free up at least 500 MB so that the manager can create the file again&lt;br /&gt;
* delete /mnt/sda2/empty_if_no_space if you are done and restart the manager:&lt;br /&gt;
** rm /mnt/sda2/empty_if_no_space&lt;br /&gt;
** /etc/init.d/S92manager restart&lt;br /&gt;
** the manager restart automatically recreates the empty_if_no_space file if this file doesn&#039;t exist&lt;br /&gt;
&lt;br /&gt;
 Make sure, that you do &#039;&#039;&#039;not&#039;&#039;&#039; have backups configured to a local files instance while this files instance is not excluded from backups.&lt;br /&gt;
 An instance can be excluded from backups in the instance settings in the AP Manager.&lt;br /&gt;
&lt;br /&gt;
If all of this doesn&#039;t help, you can resize the file system on a VM:&lt;br /&gt;
* proceed with [[Reference13r1:Concept_App_Platform#Resizing_the_disk_of_a_Virtual_machine]]&lt;br /&gt;
&lt;br /&gt;
== Resizing the disk of a Virtual machine ==&lt;br /&gt;
&lt;br /&gt;
* stop the VM&lt;br /&gt;
* expand the disk using your VM utilities&lt;br /&gt;
* start the VM and boot from the first boot entry &#039;&#039;&#039;rescue/setup&#039;&#039;&#039;&lt;br /&gt;
* login with &#039;&#039;&#039;root&#039;&#039;&#039; and &#039;&#039;&#039;iplinux&#039;&#039;&#039;&lt;br /&gt;
* execute this command: &#039;&#039;&#039;/home/root/install_step1.sh log.txt resize&#039;&#039;&#039;&lt;br /&gt;
* the VM reboots automatically after a successful resize&lt;br /&gt;
&lt;br /&gt;
== Shrink the physically size of PostgreSQL database files ==&lt;br /&gt;
Tuples that are deleted in your databse are not physically removed from the database-file. So the claimed space on the harddisk is still in use after the delete operation. &lt;br /&gt;
If you need to free up some disk space you can force to reorganize the physically database-file on your harddisk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important: You are operating on the Database, you have to make a Backup of your Database before you do this!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Login via SSH to the APPlatform with the &#039;&#039;admin&#039;&#039; User&lt;br /&gt;
 su root&lt;br /&gt;
 /etc/init.d/S92manager stop  # not always needed, but in case of database errors recommended, of course no app is online then&lt;br /&gt;
 sudo -u postgres reindexdb -a&lt;br /&gt;
 sudo -u postgres vacuumdb -a -f&lt;br /&gt;
 /etc/init.d/S92manager restart # just execute if the manager has been stopped above&lt;br /&gt;
&lt;br /&gt;
 sudo -u postgres reindexdb -d dbname # for a single database with dbname&lt;br /&gt;
 sudo -u postgres vacuumdb -d dbname -f # for a single database with dbname&lt;br /&gt;
&lt;br /&gt;
Note: This may take some time and CDRs (or other data written to a DB) won&#039;t be received during this time. &lt;br /&gt;
&lt;br /&gt;
After the process you can check the free dispace via &amp;lt;code&amp;gt;df -h&amp;lt;/code&amp;gt;. You can check the claimed space from the database file with the command &amp;lt;code&amp;gt;du -sh /mnt/sda2/pgsql/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Change IP Addresses / DNS Names / System Name ==&lt;br /&gt;
&lt;br /&gt;
If you want to change the System Name or the DNS Name of the PBX and/or AP Platform you must change records manually &#039;&#039;&#039;in the described order&#039;&#039;&#039;!&lt;br /&gt;
You have to know the Admin password to directly Login to the AP-Plattform.&lt;br /&gt;
&lt;br /&gt;
=== App Platform ===&lt;br /&gt;
; Settings - General&lt;br /&gt;
* &#039;&#039;Devices app URL&#039;&#039;&lt;br /&gt;
* &#039;&#039;App platform DNS name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Settings - Alarms and Events&lt;br /&gt;
* &#039;&#039;URL&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; All Instances&lt;br /&gt;
* &#039;&#039;Domain&#039;&#039;&lt;br /&gt;
* &#039;&#039;Webserver path&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== PBX ===&lt;br /&gt;
Download the configuration and &#039;&#039;search/replace&#039;&#039; in the config file. Upload the config file and reboot.&lt;br /&gt;
&lt;br /&gt;
Manual:&lt;br /&gt;
* &#039;&#039;URL&#039;&#039; in all PBX Object (Apps, Voicemail ...)&lt;br /&gt;
* [[Reference9:Gateway/CDR|CDRx]]&lt;br /&gt;
* [[Reference13r1:PBX/Config/General|IP address for App Platform]] &lt;br /&gt;
* [[Reference13r1:PBX/Config/myApps|Reset Password Page]]&lt;br /&gt;
* [[Reference13r1:PBX/Config/Authentication|Verification link]]&lt;br /&gt;
&lt;br /&gt;
Depending on your change you have to activate/deactivate the Setting [[Reference13r1:PBX/Config/General|Operation without DNS]]&lt;br /&gt;
&lt;br /&gt;
=== Additional Devices / Steps ===&lt;br /&gt;
* &#039;&#039;Devices Registration URL&#039;&#039;&lt;br /&gt;
* &#039;&#039;Alarm server&#039;&#039;&lt;br /&gt;
* Reverse Proxy configuration&lt;br /&gt;
* Change &#039;&#039;Domain Name&#039;&#039; in Devices if you have also changed the system name&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;messages&#039;&#039; log file (in &#039;&#039;var/log&#039;&#039;) like&lt;br /&gt;
&lt;br /&gt;
 initial error at 1500329378: ext4_journal_start_sb:328&lt;br /&gt;
 last error at 1500329378: ext4_journal_start_sb:328&lt;br /&gt;
&lt;br /&gt;
Or you get events like &amp;quot;Broken file system&amp;quot; from your AP.&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;
If this doesn&#039;t fix your issue, you need to replace the SSD with a new one, re-install the App Platform and any applications and restore your backups.&lt;br /&gt;
&lt;br /&gt;
=== Gateway ===&lt;br /&gt;
&lt;br /&gt;
* Open the WebGUI of the gateway running your LAP and proceed to &#039;&#039;App Platform/General&#039;&#039;&lt;br /&gt;
** terminate Linux (&#039;&#039;Status/Stop&#039;&#039;)&lt;br /&gt;
** modify the Kernel command line from root=/dev/sda3 to root=/dev/ram0&lt;br /&gt;
** modify the Initrd file to ramdisk.ext2.xz&lt;br /&gt;
** modify the ramdisk size to 100000&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 (user: root, pw: iplinux)&lt;br /&gt;
** on the command prompt, use &amp;lt;code&amp;gt;e2fsck -p -f /dev/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
** on the command prompt, use &amp;lt;code&amp;gt;e2fsck -p -f /dev/sda3&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;App Platform/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/ram0&#039;&#039; to &amp;lt;code&amp;gt;root=/dev/sda3&amp;lt;/code&amp;gt;&lt;br /&gt;
** clear the Initrd file field&lt;br /&gt;
** clear the ramdisk size field&lt;br /&gt;
** start Linux again&lt;br /&gt;
:: This will run Linux on the original partition.&lt;br /&gt;
&lt;br /&gt;
=== VM ===&lt;br /&gt;
&lt;br /&gt;
Restart the VM and select the first entry in the boot menu from grub.&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/sda2&amp;lt;/code&amp;gt;&lt;br /&gt;
** on the command prompt, use &amp;lt;code&amp;gt;e2fsck -p -f /dev/sda3&amp;lt;/code&amp;gt;&lt;br /&gt;
:: this should fix any issue on the file system&lt;br /&gt;
* Reboot your VM&lt;br /&gt;
[[Category:Concept]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57937</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57937"/>
		<updated>2021-01-25T10:29:20Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
==Setting up LibreOffice==&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the visible sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevent files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the data-file upload.utf8 and the script-file uploader.cmd in the workspace and you can anlyze both files and run uploader.cmd.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running the macro.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57936</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57936"/>
		<updated>2021-01-25T10:26:48Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Macro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
==Setting up LibreOffice==&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the visible sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevent files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the script-file uploader.cmd in the workspace and you can anlyze and run it.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running it.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57935</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57935"/>
		<updated>2021-01-25T10:23:19Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Tables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
==Setting up LibreOffice==&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the visible sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevant files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the script-file uploader.cmd in the workspace and you can anlyze and run it.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running it.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57934</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57934"/>
		<updated>2021-01-25T10:22:19Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Setting up LibreOffice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
==Setting up LibreOffice==&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevant files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the script-file uploader.cmd in the workspace and you can anlyze and run it.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running it.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57933</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57933"/>
		<updated>2021-01-25T10:21:34Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Problem Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because they can edit the contacts and have only to click upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
===Setting up LibreOffice===&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevant files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the script-file uploader.cmd in the workspace and you can anlyze and run it.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running it.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57932</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57932"/>
		<updated>2021-01-25T10:19:33Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* System Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because the can edit the contacts and have only to klick upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important)&lt;br /&gt;
** tested with LibreOffice V5.4&lt;br /&gt;
** tested with OpenOffice V4.1&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
===Setting up LibreOffice===&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevant files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the script-file uploader.cmd in the workspace and you can anlyze and run it.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running it.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57931</id>
		<title>Howto:Edit and upload contacts at the ContactsApp with Libre Office</title>
		<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Howto:Edit_and_upload_contacts_at_the_ContactsApp_with_Libre_Office&amp;diff=57931"/>
		<updated>2021-01-25T07:13:01Z</updated>

		<summary type="html">&lt;p&gt;Muschelpuster: /* Known Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applies To==&lt;br /&gt;
This information applies to&lt;br /&gt;
&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Keywords: contactsApp  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem Details==&lt;br /&gt;
Up from V13 there is with the ContactsApp a nice tool for serving contacts. Unfortunately there is no Contacts-Editor, but there are some customers outside, which have no LDAP-Source and which are not so fit in handling the UTF8-Export/Import.&lt;br /&gt;
This project is a try to make it more easy for the customers, because the can edit the contacts and have only to klick upload (if you prepared everything well).&lt;br /&gt;
&lt;br /&gt;
==System Requirements==&lt;br /&gt;
* Innovaphone PBX V13 with a running AppPlattform and a running ContactsApp-Instance&lt;br /&gt;
* A Windows-PC that supports PowerShell (tested with Win10)&lt;br /&gt;
* workspace-folder with write-access on the PC with a real mounted drive (C:, D:...)&lt;br /&gt;
* the PowerShell-Script from [[Reference13r1:Concept App Contacts#Upload Data by HTTP Post|Concept App Contacts]] saved as CSV-Import.ps1 and the CURL-Ressources in the workspace-folder&lt;br /&gt;
* LibreOffice (portable or installed is not important - tested with V5.4)&lt;br /&gt;
* The ODF-Document from this article&lt;br /&gt;
&lt;br /&gt;
===Setting up LibreOffice===&lt;br /&gt;
* Depending on your security settings for executing makros you have to adjust this. Put your document-path to the trust-list (Tools -&amp;gt; Options -&amp;gt; LibreOffice -&amp;gt; Macro Security -&amp;gt; Trusted Sources).&lt;br /&gt;
&lt;br /&gt;
==Description of the ODS-file==&lt;br /&gt;
===Tables===&lt;br /&gt;
The document contains 4 sheets. The 4th sheet is hidden and there is no need to show it. You can edit the name of the sheets, but don&#039;t rearange them - the macro needs them in this order.&lt;br /&gt;
&lt;br /&gt;
====PhoneBook====&lt;br /&gt;
As you already assumed this is where you edit your contacts. You can customize row 1 and 3, but data has to start at cell A4 and keep the coloums as they are. At hidden row 2 is the headline as used in export for debuggig reasons. &lt;br /&gt;
&lt;br /&gt;
====Settings====&lt;br /&gt;
Here is where you set your environment. For starting the PowerShell-Script there are a few informations needed. This is the address (name or IP) of your App-Plattform. Then there is needed the put-user and the password, which you can set in the settings of the ContacsApp at the PBX-Manager.&lt;br /&gt;
Additional there is the PBX-Domain needed, on which your instance is running. If you upload a file, the ContacsApp saves the filename and if you upload again you have to use the same filename to update your data and prevent a double data. Here is a problem at many customers and so we write the destination name also in the settings to reduce the trouble here.&lt;br /&gt;
At column A you will find the desciptions of the setting values and a notice on every cell which descibes the value with a few words. At column B you have to enter the values and you will find a notice with a short german desciption.&lt;br /&gt;
&lt;br /&gt;
====ImportData====&lt;br /&gt;
This table will be filled by the Upload-Macro and exported. Offcourse this can also be hidden, but not with actual version of the macro. If you can improve this feel so free and do it and be so friendly and let us all know youre improvements.&lt;br /&gt;
Here it is important, that the row 1 will not modified, because this will not touched by the macro. So to make it a little bit safer it&#039;s hidden and you know, you can improve this too.&lt;br /&gt;
&lt;br /&gt;
====Hilfsdaten====&lt;br /&gt;
This is the hidden sheet and you see this will be created in german. You don&#039;t need this sheet, so there was no need to trsanslate it after creation. It calculates different valus for the macro, because it was the lazy way. Keep it hidden, it looks a little bit chaotic and don&#039;t modify it.&lt;br /&gt;
&lt;br /&gt;
===Macro===&lt;br /&gt;
Most parts of the macro are recorded, so it&#039;s not optimized to a clean programming style. But you know - you can improve it.&lt;br /&gt;
The macro jumps to cell A4 of the Phone-Book-sheet, marks all data and copy it to the clipboard. Then it jumps to the sheet Importdata and insert the clipboard-content, with the starting point A2. After this sheet will saved at the workspace with the name upload.utf8. This will be done by the &#039;Save As&#039; dialogue.&lt;br /&gt;
To rescue some ugly things which are done until now the clipboard will be filled with a empty cell and the document will saved at its original name as ODS-file.&lt;br /&gt;
Now the macro creats a cmd-file named uploader.cmd at the workspace. It writes some DOS-commands. The correct drive will be adressed and then the script jumps to the workspace-folder and starts the PowerShell-Script CSV-Import.ps1. At the end the sript is deleting the import.utf8 and itselfe to prevant files with the crendentials and contacts at the folder . The output of CSV-Import.ps1 will be saved in a file called upload.log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
There are some ways to find a problem on this solution. At first have a look at the upload.log which is located in the workspace.&lt;br /&gt;
Then you can stop the autorun of the script. Call the Macro-Editor in Libre Office Calc and edit the Basic-Macros. You will find the macro under document-makros in Module Innovaphone. It is simple named Main. Now you search for the command &#039;shell (MakroFile,4)&#039; and make it to a comment by writing rem left from the command. After running the makro now you see the script-file uploader.cmd in the workspace and you can anlyze and run it.&lt;br /&gt;
You will find some other commented lines (rem print) at the macro, yo can uncomment this to get some messages by running it.&lt;br /&gt;
&lt;br /&gt;
==Version History==&lt;br /&gt;
===V1.0===&lt;br /&gt;
The first try.&lt;br /&gt;
===V1.1===&lt;br /&gt;
* Improve the handling of the UTF8-file (removed unneeded steps)&lt;br /&gt;
* Fixing a bug with wrong saving after user saved ODS-file under new name&lt;br /&gt;
&lt;br /&gt;
==Known Problems==&lt;br /&gt;
* By running the Macro you can get a warning that only the actual sheet is saved. Don&#039;t worry about this, the macro is fixing it one step later.&lt;br /&gt;
* By running the upload you lose the content of the clipboard on your PC. &lt;br /&gt;
* Because the password is written clear at the seetings there is al little security risk. Mabye in the next version there comes a password-request if the value is empty, but yo know - you can improve it too.&lt;br /&gt;
* There is no logical check for the settings, is up to you to check everything.&lt;br /&gt;
* Naturally, because the use of Windows-scripts it will only work on Windows.&lt;br /&gt;
* Off course this solution comes without any warranty or support. If you need help ask the [https://forum.innovaphone.com Community].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
[[Image:Contacts-App-Importer.zip]]&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
[[Reference13r1:Concept App Contacts]]&lt;/div&gt;</summary>
		<author><name>Muschelpuster</name></author>
	</entry>
</feed>