<?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=Nilstrizwo</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=Nilstrizwo"/>
	<link rel="alternate" type="text/html" href="https://wiki.innovaphone.com/index.php?title=Special:Contributions/Nilstrizwo"/>
	<updated>2026-05-09T23:41:56Z</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=72240</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=72240"/>
		<updated>2024-06-26T07:40:01Z</updated>

		<summary type="html">&lt;p&gt;Nilstrizwo: /* Setting an only int cfnr for all users */&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;
=== 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;
{{Template:3rd Party Input}}&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;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Nilstrizwo</name></author>
	</entry>
	<entry>
		<id>https://wiki.innovaphone.com/index.php?title=Reference13r2:Apps/PbxManager/Explorer&amp;diff=72239</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=72239"/>
		<updated>2024-06-26T07:38:01Z</updated>

		<summary type="html">&lt;p&gt;Nilstrizwo: /* 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;
=== 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;
=== 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;
 /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;
{{Template:3rd Party Input}}&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;
== Links ==&lt;br /&gt;
[https://www.w3schools.com/xml/xpath_intro.asp XPath Tutorial (w3schools.com)]&lt;/div&gt;</summary>
		<author><name>Nilstrizwo</name></author>
	</entry>
</feed>