Wir haben nun bereits zweimal das Problem gehabt, das nach Wiedereinschalten alle Lizenzen weg sind. Das ist ärgerlich. Nach Eintragen der Baselizenz sieht man alle Lizenzen wieder und Starface muss das wieder freischalten. Im folgenden sind dann aber alle UCC Premium Rechte bei den Benutzern weg. Zur automatisierten Wiedererteilung habe ich ein PSQL Script gemacht. Darüber hinaus ergeben sich dann aber weitere Probleme, die UCC Clients verbinden sich nicht mehr richtig mit der Telefonie, der Status bleibt Offline. Witzigerweise verbindet aber der Chat. Das Problem ist dadurch zu lösen, dass man einfach irgendeine Rufnummer dem Benutzer zuordnet, speichert und dann ggf. gleich wieder entfernt.
Hier der SQL Befehl und einige Beispiele, die ich zur Herleitung zuvor verwendet habe:
Zunächst per SSH an Starface Console anmelden,
dann "psql asterisk" eingeben und folgenden Befehl ausführen:
/* Allen Benutzer mit einem WinClient als primäres Telefon das Premium UCC Recht erteilen, sofern nicht vorhanden */
insert into account2permission (accountid, permissionid)
(
select id,34 from account where
id not in (select accountid from account2permission where permissionid = 34) and
primarytelephoneid in ( select b.telephoneid from telephone a,telephonenumber2telephone b where b.telephoneid = a.id and a.telephone like '%WinClient')
);
/* Beispiele, wie man zu diesen Tabellen und Feldern kommt, im Folgenden nicht mehr relevant nach Ausführung obiges SQL Befehls, nur BEISPIELE! */
/* Alle Starface SQL Tabellen ausgeben */
SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' and table_type='BASE TABLE' ;
/* Alle UCC Windows Telefone auslesen */
select * from telephone where telephone like '%WinClient';
/* Alle Benutzer ohne das UCC Premium Rechte auslesen */
select comment,primarytelephonenumberid from account where id not in (select accountid from account2permission where permissionid = 34);
/* Ein bestimmten Benutzer suchen */
select comment,primarytelephoneid from account where comment like '%Luithle%';
comment | primarytelephoneid
-----------------------+--------------------
Trainee, Nachname | 3372
Nachname, Vorname | 3348
/* Suche Benutzer, welche keine keine UCC Premium Berechtigung hat und dessen Haupt Telefon, wenn es ein WinClient ist */
select id,comment,primarytelephoneid from account where
id not in (select accountid from account2permission where permissionid = 34) and
primarytelephoneid in ( select b.telephoneid from telephone a,telephonenumber2telephone b where b.telephoneid = a.id and a.telephone like '%WinClient');
id | comment | primarytelephoneid
------+---------------------+--------------------
1004 | Nachname, Vorname | 3356
/* Test mit der Einschränkung auf eine bestimmte Benutzer ID */
select id from account where id = 1893 and
id not in (select accountid from account2permission where permissionid = 34) and
primarytelephoneid in ( select b.telephoneid from telephone a,telephonenumber2telephone b where b.telephoneid = a.id and a.telephone like '%WinClient');
insert into account2permission (accountid, permissionid) values (
(
select id from account where id = 1893 and
id not in (select accountid from account2permission where permissionid = 34) and
primarytelephoneid in ( select b.telephoneid from telephone a,telephonenumber2telephone b where b.telephoneid = a.id and a.telephone like '%WinClient')
), 34) ;