Picture of cobn
Registered 9 years 54 days
cobn Thursday, 12 November 2015, 01:46 PM
Enable registration / Registrierung aktivieren
Hallo,

ich möchte per API Call eine einzelne Registrierung aktivieren bzw. deaktivieren. In der Doku sind diese Admin-Funktionen leider nicht beschrieben. Wie ist hier die Vorgehensweise.

Danke und viele Grüße

- - -

Hey,

i want to enable and disable a registration with an API call. In the documentation are no information about admin features. How can i do that?

Thank you in advance
Picture of Christoph Künkel (innovaphone)
Moderator Registered 14 years 357 days
Christoph Künkel (innovaphone) Thursday, 12 November 2015, 02:07 PM
Re: Enable registration / Registrierung aktivieren
Hallo C O,

ich bin nicht ganz sicher, was genau Sie mit "Registrierung aktivieren" meinen. Wenn es darum geht, eine entsprechende PBX Konfiguration durchzuführen, dann werden Sie in fish-help.png Using the SOAP Admin Function fündig. Wenn es darum geht, eien registrierung auf einem Telefon zu (de)aktivieren, dann eher in fish-help.png Effect arbitrary Configuration Changes using a HTTP Command Line Client or from an Update.

Ich verschiebe diesen Trhread mal in die Diskussionen.

Beste Grüße, Christoph Künkel
Picture of cobn
Registered 9 years 54 days
cobn Thursday, 12 November 2015, 02:22 PM
Re: Enable registration / Registrierung aktivieren
Hallo Christoph,

vielen Dank für die Info.

Es handelt sich konkret um die Deaktivierung einer Registrierung in einem Telefon (IP230 und IP200).

Das genannte Dokument beschreibt nur, wie man alles gesammelt ändern kann. Es soll jedoch nur eine einzige variable (die Aktivierung(Deaktivierung der Registrierung) bearbeitet werden.

Wir wollen per Request einzelne Registrierungen abschalten können, ohne alle anderen Variablen übermitteln zu müssen.

Laut Dokument gibt es dazu scheinbar auch eine Funktion (apply changes using the config change/add/rem commands), auf die jedoch nicht weiter eingegangen wird.

Viele Grüße und Danke
Picture of Christoph Künkel (innovaphone)
Moderator Registered 14 years 357 days
Christoph Künkel (innovaphone) Thursday, 12 November 2015, 03:02 PM
Re: Enable registration / Registrierung aktivieren
OK, das geht nicht mit SOAP.

Die generische Methode, ein config change Kommando zu ermitteln ist:

  • config sichern
  • gewünschte Veränderung mit dem Admin UI durchführen
  • config auf eine zweite Datei sichern
  • diffen

ich habe z.B. meine GK-Adresse auf dem Telefon geändert. Das Diff ergibt:

vorher:

config change PHONE SIG /local-cf on /trace on /prot SH323 /gk-addr 172.16.0.10 /tones 0 /enblock 10 /coder G729A,60,

nachher:

config change PHONE SIG /local-cf on /trace on /prot SH323 /gk-addr 0.0.0.0 /tones 0 /enblock 10 /coder G729A,60,

geändert hat sich also der Parameter von /gk-addr.

Das kann ich durch folgendes Kommandos erreichen:

config add PHONE SIG /gk-addr 0.0.0.0

damit das ganze in der persistenten Konfiguration abgespeichert wird noch

config write

damit es wirksam wird noch

config activate

Manche Aktivierungen erfordern einen reset. Also noch

iresetn

das ist ein reset (reset), der aber nur falls nötig gemacht werden soll (resetn) und nur, wenn das Gerät idle ist (iresetn).

Diese Kommandos können Sie per http senden (z.b. http:/1.2.3.4/!iresetn, ein GET je Kommando) oder aber einfach so in ein update script schreiben.


Nun ist Ihr Wunsch leider grad a bisserl ungeschickt wink denn: sie werden feststellen, dass es für die erste Registrierung des Telefons gar kein "disable" Häkchen gibt. Das umsetzen der GK-Adresse auf eine unmöglichen Wert (0.0.0.0) wäre da ein Workaround.

Allerdings ist es eh nicht empfehlenswert, ein Telefon ohne Registrierung rumstehen zu haben. Wenn es z.B. brennt und sich jemand bis zum Telefon durch schlägt nur um dann festzustellen,. dass er damit nicht telefonieren kann, dann gibt es hinterher sicher Ärger. Daher wäre hier die Empfehlung, die erste Registrierung immer auf einem bestimmten User zu haben (wir verwenden dazu den User "Junk") und dem einen passenden Call Filter zu geben. Das dynamische Umschalten von Registrierungen erfolgt dann mit den Usern 2 bis 6. Aber das hängt natürlich von Ihrer Anmeldung ab.

Aber selbst dann funktioniert dieser Ansatz nicht wirklich, denn Sie werden feststellen, dass die weiteren Registrierungen nicht in einer config change Zeile konfiguriert werden. Vielmehr sind diese Registrierungen in einer sogenannten VAR gespeichert. Das Diff von oben ergibt folgendes:

vorher:

vars create PHONE/USER-REG/00001 p %3creg+prot='th323'+gk-addr='172.16.7.254'+coder='G729A,60,x0k0'+lcoder='G711A,30'+h323='ckl-4'+/%3e

nachher

vars create PHONE/USER-REG/00001 p %3creg+prot='th323'+enable='0'+gk-addr='172.16.7.254'+coder='G729A,60,x0k0'+lcoder='G711A,30'+h323='ckl-4'+/%3e

Der Unterschied ist das enable='0'. Eine VAR können Sie nicht selektiv verändern. Daher müssten Sie händisch einen read/modify/write cycle implementieren:

vars dump p PHONE/USER-REG/00001

ergibt

vars create PHONE/USER-REG/00001 p %3creg+prot='th323'+enable='0'+gk-addr='172.16.7.254'+coder='G729A,60,x0k0'+lcoder='G711A,30'+h323='ckl-4'+/%3e

(sie können das nun URL-decoden, falls es Ihnen seltsam erscheint, aber ein Programm müsste das nicht wirklich tun. Wenn Sie es tun, dann sehen Sie, dass die Konfiguration ein XML String ist). Dort suchen Sie den enable Parameter und setzen den Wert wie gewünscht (bzw. fügen ihn ein, wenn nicht vorhanden). Dann senden Sie das Ergebnis wieder an das Telefon:

vars create PHONE/USER-REG/00001 p %3creg+prot='th323'+enable='1'+gk-addr='172.16.7.254'+coder='G729A,60,x0k0'+lcoder='G711A,30'+h323='ckl-4'+/%3e

Damit das wirksam wird, wieder die selbe Prozedur wie oben:

config write
config activate
iresetn


(manchmal wären übrigens manche dieser Kommandos nicht nötig, schaden tun sie aber nie!).

So das Prinzip, was genau die beste Lösung wäre, hängt natürlich von Ihrer genauen Aufgabenstellung ab.

LG, Christoph
Picture of Christoph Künkel (innovaphone)
Moderator Registered 14 years 357 days
Christoph Künkel (innovaphone) Thursday, 12 November 2015, 03:06 PM
Re: Enable registration / Registrierung aktivieren
NB: in der ersten Version des obigen Posts war ein Fehler (da fehlte dass add in config add PHONE SIG /gk-addr 0.0.0.0).
Picture of cobn
Registered 9 years 54 days
cobn Thursday, 12 November 2015, 05:45 PM
Re: Enable registration / Registrierung aktivieren
Hallo Christoph,

vielen Dank für Deine umfangreichen Erklärungen und das Workaround. Natürlich gibt es weitere Telefone im Haus, mit denen der Notruf gewählt werden kann ;)

Ich habe die erste Methode versucht und die IP des Gates ändern wollen.

Dazu gab ich folgende Daten testweise in die Adresszeile ein:

http://10.0.0.104/!config%20add%20PHONE%20SIG%20/gk-addr%200.0.0.0

...anschließend...

http://10.0.0.104/!config%20write

... und danach ...

http://10.0.0.104/!config%20activate

Das hat leider nichts geändert, auch nach einem Reset nicht.

Benutze ich anstatt "add" die "change" Methode, wird die IP geändert, alle weiteren bestehenden Einstellungen werden jedoch entfernt. Das ist natürlich zu vermeiden, da alle Einstellungen bleiben sollen und nur die IP geändert werden soll.

Viele Grüße
Alex
Picture of Christoph Künkel (innovaphone)
Moderator Registered 14 years 357 days
Christoph Künkel (innovaphone) Thursday, 12 November 2015, 06:08 PM
Re: Enable registration / Registrierung aktivieren
tja, sorry, da war mein Beispiel ungeschickt. die 0.0.0.0 erkennt das Telefon schlau als "nix" und verwirft es. Hab es eben gerade mit 1.0.0.0 versucht und das tut wie gewünscht. Probierst Du es mal?

config change module config

ersetzt in der Tat die gesamte Konfiguration für das gegebene Modul - das wolltest Du ja gerade nicht.

LG, Christoph
← You can define your color theme preference here