diff --git a/README.textile b/README.textile
index 448c64947..6d199e56a 100644
--- a/README.textile
+++ b/README.textile
@@ -1,3 +1,8 @@
+h1. Modifizierte Version evtl. für GS 3.3
+
+Eine Übersicht erhält man im Wiki unter https://github.com/marneu/GS3/wiki/Installation-der-Erweiterungen-auf-GS-3.2
+> Hinweis: Diese Version hat derzeit keinen Support von der GS3 Gemeinschaft und es kann nicht sichergestellt werden, ob die Änderungen in den GS 3 Master übernommen werden.
+
h1. Asterisk Version
Gemeinschaft in der Version 3 ist die ältere Software mit einem Asterisk-Kern. Die aktuellere Version von Gemeinschaft hat Freeswitch als Kern. Weitere Informationen dazu finden Sie auf "https://www.alternative-solution.de/gs3":https://www.alternative-solution.de/gs3
diff --git a/etc/cron.d/gs-carddav-reader-to-db b/etc/cron.d/gs-carddav-reader-to-db
new file mode 100644
index 000000000..4ade8a3a6
--- /dev/null
+++ b/etc/cron.d/gs-carddav-reader-to-db
@@ -0,0 +1,6 @@
+# Gemeinschaft
+# $Revision$
+
+# refresh cloud card phone books into the database
+
+*/17 * * * * root sleep 23; nice -n 15 /opt/gemeinschaft/sbin/gs-carddav-reader.php 1>>/dev/null 2>>/dev/null
diff --git a/misc/scripts/upgrade-pb-3.2-3.3.sql b/misc/scripts/upgrade-pb-3.2-3.3.sql
new file mode 100644
index 000000000..2a0fe8cf8
--- /dev/null
+++ b/misc/scripts/upgrade-pb-3.2-3.3.sql
@@ -0,0 +1,112 @@
+// gs 3.3 private phonebook modifications
+DROP TABLE IF EXISTS `pb_prv_previous`;
+RENAME TABLE `pb_prv` TO `pb_prv_previous`;
+
+CREATE TABLE IF NOT EXISTS `pb_prv` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `firstname` varchar(40) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `lastname` varchar(40) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+ `number` varchar(25) CHARACTER SET ascii NOT NULL DEFAULT '',
+ `ptype` varchar(16) COLLATE utf8_unicode_ci NOT NULL COMMENT 'cell,work,home',
+ `pref` int(2) unsigned NOT NULL DEFAULT '9',
+ `card_id` int(10) unsigned NOT NULL,
+ `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ KEY `uid_vcard` (`user_id`,`card_id`),
+ KEY `uid_lastname_firstname_pref` (`user_id`,`lastname`(15),`firstname`(10),`pref`,`ptype`),
+ KEY `cloud_card_id` (`card_id`),
+ KEY `uid_number_pref` (`user_id`,`number`(10),`pref`,`ptype`),
+ KEY `uid_firstname_lastname_pref` (`user_id`,`firstname`(10),`lastname`(10),`pref`,`ptype`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+INSERT INTO `pb_prv` (`id`, `user_id`, `firstname`, `lastname`, `number`)
+ SELECT `id`, `user_id`, `firstname`, `lastname`, `number` FROM `pb_prv_previous`;
+
+ALTER TABLE `pb_prv` ADD CONSTRAINT `pb_prv_ibfk_1` FOREIGN KEY (`user_id`)
+ REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT ;
+
+// import voip phone book from cloud for preparing the xml to phone functionality
+CREATE TABLE IF NOT EXISTS `pb_cloud` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) unsigned NOT NULL,
+ `url` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
+ `login` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
+ `pass` varbinary(64) NOT NULL,
+ `frequency` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1d',
+ `ctag` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
+ `last_remote_modified` datetime NOT NULL,
+ `next_poll` datetime NOT NULL,
+ `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ `message` tinytext COLLATE utf8_unicode_ci NOT NULL,
+ `error_count` tinyint(1) unsigned NOT NULL DEFAULT '0',
+ `active` tinyint(1) unsigned NOT NULL DEFAULT '1',
+ `public` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uid_url_login` (`user_id`,`url`(255),`login`),
+ KEY `next_poll` (`next_poll`),
+ KEY `uid_login_url` (`user_id`,`login`,`url`(255))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+ALTER TABLE `pb_cloud` ADD FOREIGN KEY ( `user_id` )
+ REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT ;
+
+// holds the vcards
+CREATE TABLE IF NOT EXISTS `pb_cloud_card` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cloud_id` int(10) unsigned NOT NULL,
+ `vcard_id` varchar(36) COLLATE utf8_unicode_ci NOT NULL,
+ `etag` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
+ `vcard` text COLLATE utf8_unicode_ci NOT NULL,
+ `last_modified` datetime NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `cloud_id_vcard_id` (`cloud_id`,`vcard_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+ALTER TABLE `pb_cloud_card` ADD FOREIGN KEY ( `cloud_id` )
+ REFERENCES `pb_cloud` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+ALTER TABLE `pb_prv` ADD FOREIGN KEY ( `card_id` )
+ REFERENCES `pb_cloud_card` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+
+// add categories (i.e like family, company etc.)
+CREATE TABLE IF NOT EXISTS `pb_category` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) unsigned NOT NULL,
+ `category` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
+ `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uid_catid` (`user_id`,`category`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+ALTER TABLE `pb_category` ADD FOREIGN KEY ( `user_id` )
+ REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+
+// connect a phone book entry to a category
+CREATE TABLE IF NOT EXISTS `pb_prv_category` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) unsigned NOT NULL,
+ `cat_id` int(10) unsigned NOT NULL,
+ `card_id` int(10) unsigned NOT NULL,
+ `prv_id` int(10) unsigned NOT NULL,
+ PRIMARY KEY (`id`),
+ KEY `uid_catid_cardid` (`user_id`,`cat_id`,`card_id`),
+ KEY `uid_prvid` (`user_id`,`prv_id`),
+ KEY `uid_cardid` (`user_id`,`card_id`),
+ KEY `card_id` (`card_id`),
+ KEY `prv_id` (`prv_id`),
+ KEY `catid_uid` (`cat_id`,`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+ALTER TABLE `pb_prv_category` ADD FOREIGN KEY ( `user_id` )
+ REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+ALTER TABLE `pb_prv_category` ADD FOREIGN KEY ( `cat_id` )
+ REFERENCES `pb_category` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+ALTER TABLE `pb_prv_category` ADD FOREIGN KEY ( `card_id` )
+ REFERENCES `pb_cloud_card` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+ALTER TABLE `pb_prv_category` ADD FOREIGN KEY ( `prv_id` )
+ REFERENCES `pb_prv` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
+
+// set new modules active
+INSERT INTO `group_members` VALUES (6, 3005);
+// needed dependency for public cloud entries
+INSERT INTO `users` VALUES ('1', 'public-abook', '', '', '', '', '', '1', '1', NULL, '', NULL, NULL, NULL, '');
diff --git a/opt/gemeinschaft/dialplan-scripts/dial-log-store b/opt/gemeinschaft/dialplan-scripts/dial-log-store
index d7a972ad6..25a61f07b 100755
--- a/opt/gemeinschaft/dialplan-scripts/dial-log-store
+++ b/opt/gemeinschaft/dialplan-scripts/dial-log-store
@@ -76,7 +76,7 @@ $remote_user = $rs->fetchRow();
$is_from_phonebook = false;
if (! $remote_user) {
# if there is nothing in the ast_sipfriends, check the private phonebook
- $rs = $db->execute('SELECT `firstname`, `lastname` FROM `pb_prv` WHERE `user_id`='.$uid.' AND `number`=\''. $db->escape($number) .'\'');
+ $rs = $db->execute('SELECT `firstname`, `lastname` FROM `pb_prv` WHERE (`user_id`='.$uid.' OR `user_id`=1) AND `number`=\''. $db->escape($number) .'\'');
//FIXME - probably doesn't make much sense with uncanonized phone numbers
$remote_user = $rs->fetchRow();
$is_from_phonebook = true;
@@ -103,4 +103,4 @@ $db->execute( 'INSERT INTO `dial_log` (`user_id`, `type`, `timestamp`, `number`,
-?>
\ No newline at end of file
+?>
diff --git a/opt/gemeinschaft/dialplan-scripts/in-get-callername.agi b/opt/gemeinschaft/dialplan-scripts/in-get-callername.agi
index 07b2a685a..2d9c272a8 100755
--- a/opt/gemeinschaft/dialplan-scripts/in-get-callername.agi
+++ b/opt/gemeinschaft/dialplan-scripts/in-get-callername.agi
@@ -37,7 +37,7 @@ ob_implicit_flush(1);
function search_number ( $user_id, $source, $cid , $db ) {
if ($source == 'private')
- $query = 'SELECT `firstname`, `lastname`, `number` FROM `pb_prv` WHERE `user_id`=' . $user_id . ' AND `number`= \'' . $db->escape($cid) . '\'';
+ $query = 'SELECT `firstname`, `lastname`, `number`, `ptype` FROM `pb_prv` WHERE ( `user_id`=' . $user_id . ' OR `user_id`=1 ) AND `number`= \'' . $db->escape($cid) . '\'';
else if ($source == 'public')
$query = 'SELECT `firstname`, `lastname`, `number` FROM `pb_ldap` WHERE `number`=\''. $db->escape($cid) . '\'';
@@ -49,7 +49,9 @@ function search_number ( $user_id, $source, $cid , $db ) {
$firstname = $caller['firstname'];
$lastname = $caller['lastname'];
$number = $caller['number'];
- $set = array( 'firstname' => $caller['firstname'], 'lastname' => $caller['lastname'], 'number' => $caller['number']);
+ if (isset($caller['ptype']) && !empty($caller['ptype']) ) $ptype = $caller['ptype'];
+ else $ptype = '';
+ $set = array( 'firstname' => $caller['firstname'], 'lastname' => $caller['lastname'], 'number' => $caller['number'], 'ptype' => $ptype);
$result[$number] = $set;
}
}
@@ -57,14 +59,17 @@ function search_number ( $user_id, $source, $cid , $db ) {
//direct match
if ( isset($result[$cid]) ) {
$hit = $result[$cid];
- print_name($hit['firstname'], $hit['lastname']);
+ print_name($hit['firstname'], $hit['lastname'], $hit['ptype']);
}
}
-function print_name ( $firstname, $lastname ) {
+function print_name ( $firstname, $lastname, $ptype='' ) {
$fullname = '';
- if(strlen($firstname) > 0)
- $fullname = strtoupper( substr($firstname, 0, 1) ) . '. ' . $lastname;
+ if(strlen($ptype) > 0)
+ $fullname = strtoupper( substr($firstname, 0, 1) ) . '. ' . $lastname . ' (' . $ptype .')';
+// else
+// if(strlen($firstname) > 0)
+// $fullname = strtoupper( substr($firstname, 0, 1) ) . '. ' . $lastname;
else
$fullname = $lastname;
gs_agi_set_variable('CALLERID(name)' , $fullname);
diff --git a/opt/gemeinschaft/dialplan-scripts/in-user-get-fw.agi b/opt/gemeinschaft/dialplan-scripts/in-user-get-fw.agi
index 74b4bfb79..b06d5f6fe 100755
--- a/opt/gemeinschaft/dialplan-scripts/in-user-get-fw.agi
+++ b/opt/gemeinschaft/dialplan-scripts/in-user-get-fw.agi
@@ -147,6 +147,9 @@ foreach ($forwards as $source => $arr) {
gs_agi_set_variable( '__fw_'.$source.'_'.$case, $fw['number'] );
+ /* STD/MN Variable not set, so no content will be played - WORKAROUND */
+ if ($fw['file'] === '') $fw['file']=$fw['number'].'-external.alaw';
+
gs_agi_set_variable( '__fw_file_'.$source.'_'.$case, '/opt/gemeinschaft/vm-rec/'.$fw['file'] );
if (is_array($fw['number'])) { # this is an array if we are forwarding to parallel-call
@@ -197,4 +200,4 @@ foreach ($msgs as $src => $file) {
-?>
\ No newline at end of file
+?>
diff --git a/opt/gemeinschaft/dialplan-scripts/out-route.agi b/opt/gemeinschaft/dialplan-scripts/out-route.agi
index c2ed28fc4..4bf80507a 100755
--- a/opt/gemeinschaft/dialplan-scripts/out-route.agi
+++ b/opt/gemeinschaft/dialplan-scripts/out-route.agi
@@ -228,20 +228,22 @@ WHERE `id`='. $ggrp_id
}
}
- $rs = $db->execute(
+ $rs = $db->execute(
'SELECT `type`, `name`, `dialstr`, `hw_port`, `host`, `user`
FROM `gates`
WHERE
- `grp_id`='. $ggrp_id .' AND
- `allow_out`=1
-ORDER BY RAND()
+ `grp_id`='. $ggrp_id .' AND
+ `allow_out`=1
+ORDER BY `title` LIKE CONCAT("%","'. $out_cid_num .'","%") DESC
LIMIT 9'
- );
+ );
+
//while ($gate = $rs->fetchRow()) $gates[] = $gate;
while ($gate = $rs->fetchRow()) {
$pos = 0;
$dial_arr = array();
while ($pos < strLen($gate['dialstr'])) {
+// gs_agi_verbose( $gate['dialstr'] );
$dial_vara = array();
diff --git a/opt/gemeinschaft/doc/de/docbook/datenbank-tabellen.xml b/opt/gemeinschaft/doc/de/docbook/datenbank-tabellen.xml
index ca98ff48c..338baa823 100644
--- a/opt/gemeinschaft/doc/de/docbook/datenbank-tabellen.xml
+++ b/opt/gemeinschaft/doc/de/docbook/datenbank-tabellen.xml
@@ -17,19 +17,19 @@
Tabellenstruktur eingespielt wird, ist in beschrieben.
- Die Datei asterisk.sql enth�lt hier alle zum
- Erzeugen der Tabellen n�tigen SQL-Befehle. Einige Eintr�ge (z.B. IP-Adressen
- etc.) m�ssen noch an die Installation angepa�t werden.
+ Die Datei asterisk.sql enthält hier alle zum
+ Erzeugen der Tabellen nötigen SQL-Befehle. Einige Einträge (z.B. IP-Adressen
+ etc.) müssen noch an die Installation angepaßt werden.Datenbank-StrukturIn der Datenbank asterisk werden zentral
- Laufzeitkonfiguration und Logeintr�ge vorgehalten. Auf alle Tabellen, die
+ Laufzeitkonfiguration und Logeinträge vorgehalten. Auf alle Tabellen, die
mit ast_ beginnen, wird direkt aus Asterisk
zugegriffen, wodurch auch die Struktur und Spaltennamen vorgegeben sind.
- Zus�tzliche Spalten, die f�r Asterisk keine Bedeutung haben, sind in
- diesen Tabellen mit einem f�hrenden Unterstrich (_)
+ Zusätzliche Spalten, die für Asterisk keine Bedeutung haben, sind in
+ diesen Tabellen mit einem führenden Unterstrich (_)
benannt.
@@ -37,7 +37,7 @@
Tabellenstruktur der Datenbank asteriskDie Tabellen der Datenbank werden hier alphabetisch
- aufgef�hrt.
+ aufgeführt.
ast_cdr
@@ -48,9 +48,9 @@
Konfigurationen dazu werden auf den Asterisk-Servern in der
/opt/gemeinschaft/etc/asterisk/cdr_mysql.conf
vorgenommen. Im Gegensatz zur Tabelle dial_log wird
- diese Tabelle zur Auswertung von Gesp�chsdaten verwendet (z.B.
+ diese Tabelle zur Auswertung von Gespächsdaten verwendet (z.B.
Statistik). Die Tabelle dial_log dient hingegen nur
- der Anzeige f�r den Benutzer und wird von AGI-Skripten erstellt.
+ der Anzeige für den Benutzer und wird von AGI-Skripten erstellt.
@@ -83,8 +83,8 @@
dst
- Zuletzt f�r den Anruf im Dialplan ausgef�hrte
- Ziel-Extension; Achtung: kann auch h (f�r
+ Zuletzt für den Anruf im Dialplan ausgeführte
+ Ziel-Extension; Achtung: kann auch h (für
Hangup-Extension) sein!
@@ -120,7 +120,7 @@
lastapp
- Letzte ausgef�hrte Applikation im Dialplan, z.B.:
+ Letzte ausgeführte Applikation im Dialplan, z.B.:
NoOp
@@ -129,7 +129,7 @@
lastdata
- Die dieser Applikation (s.o.) �bergebenen Argumente, z.B.:
+ Die dieser Applikation (s.o.) übergebenen Argumente, z.B.:
Finish if-to-internal-users-self-79
@@ -147,7 +147,7 @@
billsec
- Dauer des Gespr�chs in Sekunden, also ohne Klingeln o.�.
+ Dauer des Gesprächs in Sekunden, also ohne Klingeln o.ä.
(die ggf. in Rechnung zu stellende Zeit), z.B.:
29
@@ -190,7 +190,7 @@
Fehlgeschlagen. - Unbekannte Rufnummer, Stau,
- o.�.
+ o.ä.
@@ -198,8 +198,8 @@
UNKNOWN
- Unbekannt. - Keine Information �ber den Erfolg
- verf�gbar.
+ Unbekannt. - Keine Information über den Erfolg
+ verfügbar.
@@ -304,7 +304,7 @@
penalty
- Legt die Priorit�t fest, nach der die Mitglieder einer
+ Legt die Priorität fest, nach der die Mitglieder einer
Warteschlange (Agenten) angerufen werden.
@@ -346,7 +346,7 @@
musicclass
- Die Art der Wartemusik kann hiermit f�r die einzelne
+ Die Art der Wartemusik kann hiermit für die einzelne
Warteschlange (z.B. nach Musikrichtung) definiert werden.
@@ -366,7 +366,7 @@
Legt einen optionalen Kontext fest. Ein Anrufer wird durch
- Dr�cken einer einzigen Ziffer zu der entsprechenden Extension in
+ Drücken einer einzigen Ziffer zu der entsprechenden Extension in
diesem Kontext weitergeleitet.
@@ -385,7 +385,7 @@
Legt fest, ob ein Agent automatisch auf "Pause" gesetzt
- wird, wenn er einen Anruf nicht beantwortet. M�gliche Werte:
+ wird, wenn er einen Anruf nicht beantwortet. Mögliche Werte:
yes|no
@@ -396,7 +396,7 @@
Legt fest, ob das Interface des Mitglieds der Warteschlange,
welches mit dem Anrufer verbunden wird, in der Variable
- "MEMBERINTERFACE" gespeichert wird. M�gliche Werte:
+ "MEMBERINTERFACE" gespeichert wird. Mögliche Werte:
yes|no
@@ -405,9 +405,9 @@
monitor_join
- Legt fest, ob bei einem Gespr�chsmitschnitt die Audiodateien
+ Legt fest, ob bei einem Gesprächsmitschnitt die Audiodateien
der eIngehenden und der ausgehenden Richtung zu einer einzigen
- Datei zusammengemischt werden. M�gliche Werte:
+ Datei zusammengemischt werden. Mögliche Werte:
yes|no
@@ -416,7 +416,7 @@
monitor_format
- Legt fest ob und in welchem Audioformat Gespr�chsmitschnitte
+ Legt fest ob und in welchem Audioformat Gesprächsmitschnitte
gespeichert werden sollen.
@@ -424,7 +424,7 @@
NULL
- Keine Aufzeichnung der Sprachkan�le wird durchgef�hrt,
+ Keine Aufzeichnung der Sprachkanäle wird durchgeführt,
wenn kein Format definiert wurde.
@@ -483,8 +483,8 @@
Sekunden, auf welche die Ansage der Wartezeit abgerundet
- oder aufgerundet werden soll, um nicht unn�tige Pr�zision
- vorzut�uschen. Sinnvolle Werte: 0 (keine Ansage
+ oder aufgerundet werden soll, um nicht unnötige Präzision
+ vorzutäuschen. Sinnvolle Werte: 0 (keine Ansage
der Sekunden), 1, 5,
10, 15,
30.
@@ -542,7 +542,7 @@
Zeit in Sekunden, die ein Mitglied der Warteschlange nicht
- angerufen wird, nachdem er ein vorhergehendes Gespr�ch beendet
+ angerufen wird, nachdem er ein vorhergehendes Gespräch beendet
hat.
@@ -552,7 +552,7 @@
Maximale Anzahl der Anrufer, die in der Warteschlange
- gehalten werden d�rfen. Der Wert 0 steht f�r
+ gehalten werden dürfen. Der Wert 0 steht für
eine unbegrenzte Anzahl.
@@ -600,8 +600,8 @@
Das Mitglied der Warteschlange wird angeklingelt,
- dessen letztes Telefonat zeitlich am l�ngsten
- zur�ckliegt.
+ dessen letztes Telefonat zeitlich am längsten
+ zurückliegt.
@@ -618,7 +618,7 @@
random
- Ein zuf�llig ausgew�hltes Mitglied der Warteschlange
+ Ein zufällig ausgewähltes Mitglied der Warteschlange
wird angeklingelt.
@@ -629,7 +629,7 @@
Alle Mitglieder der Warteschlange werden nacheinander
angeklingelt, jedoch wird die Anfangsposition aus einem
- vorhergehenden Durchlauf ber�cksichtigt.
+ vorhergehenden Durchlauf berücksichtigt.
@@ -641,14 +641,14 @@
Legt fest ob Anrufer in eine Warteschlange aufgenommen
- werden, die keine Mitglieder enth�lt.
+ werden, die keine Mitglieder enthält.
yes
- Anrufer k�nnen in die Warteschlange aufgenommen
+ Anrufer können in die Warteschlange aufgenommen
werden, auch wenn diese keine Mitglieder definiert
hat.
@@ -658,8 +658,8 @@
no
- Anrufer k�nnen nur in die Warteschlange aufgenommen
- werden, mindestens ein Mitglied verf�gbar ist.
+ Anrufer können nur in die Warteschlange aufgenommen
+ werden, mindestens ein Mitglied verfügbar ist.
@@ -667,8 +667,8 @@
strict
- Anrufer k�nnen nur in die Warteschlange aufgenommen
- werden, wenn mindestens ein Mitglied definiert ist, mu� aber
+ Anrufer können nur in die Warteschlange aufgenommen
+ werden, wenn mindestens ein Mitglied definiert ist, muß aber
zu diesem Zeitpunkt nicht unbedingt eingeloggt sein.
@@ -720,7 +720,7 @@
Legt fest, ob QueueMemberStatus-Events im Manager-Interface
- erzeugt werden. M�gliche Werte:
+ erzeugt werden. Mögliche Werte:
yes|no
@@ -729,10 +729,10 @@
eventwhencalled
- Legt fest, ob u.a. die folgenden Events f�r das
+ Legt fest, ob u.a. die folgenden Events für das
Manager-Interface erzeugt werden: AgentCalled,
AgentDump, AgentConnect,
- AgentComplete. M�gliche Werte:
+ AgentComplete. Mögliche Werte:
yes|no
@@ -742,8 +742,8 @@
Legt fest ob dem Mitglied der Warteschlange, der das
- Gespr�ch annimmt, die Wartezeit des Anrufers angesagt werden soll,
- bevor dieser zu ihm durchgestellt wird. M�gliche Werte:
+ Gespräch annimmt, die Wartezeit des Anrufers angesagt werden soll,
+ bevor dieser zu ihm durchgestellt wird. Mögliche Werte:
yes|no
@@ -753,8 +753,8 @@
Legt fest, ob Mitglieder der Warteschlange auch dann
- angeklingelt werden ,wenn sie sich in einem Gespr�ch befinden.
- M�gliche Werte:
+ angeklingelt werden ,wenn sie sich in einem Gespräch befinden.
+ Mögliche Werte:
yes|no
@@ -774,7 +774,7 @@
Die relative Gewichtung der Warteschlangen. Ist ein Benutzer
Mitglied in mehreren Warteschlangen, kann hiermit die Reihenfolge
- der Wichtigkeit festgelegt werden. Schlangen mit h�herem Wert
+ der Wichtigkeit festgelegt werden. Schlangen mit höherem Wert
werden bevorzugt.
@@ -784,8 +784,8 @@
Bestimmt, ob der Antwort-Timeout eines Mitglieds der
- Warteschlange bei einem Besetzt- oder Leitung-�berlastet-Signal
- zur�ckgesetzt wird.
+ Warteschlange bei einem Besetzt- oder Leitung-überlastet-Signal
+ zurückgesetzt wird.
@@ -794,9 +794,9 @@
ast_sipfriends
- Die SIP Endger�te - Datenbankversion der
- sip.conf. F�r diese Tabelle existiert der View ast_sipfriends_gs,
- dieser wird von Asterisk ausgewertet, der view beschr�nkt die Tabelle um peers die f�r
+ Die SIP Endgeräte - Datenbankversion der
+ sip.conf. Für diese Tabelle existiert der View ast_sipfriends_gs,
+ dieser wird von Asterisk ausgewertet, der view beschränkt die Tabelle um peers die für
Asterisk nicht relevant sind, so zb. User auf externen Hosts (Angenturen)
@@ -813,7 +813,7 @@
name
- Der Name des Endger�tes zur Identifikation z.B. im
+ Der Name des Endgerätes zur Identifikation z.B. im
Dialplan.
@@ -822,8 +822,8 @@
secret
- Legt das Passwort fest, welches das SIP-Endger�t zur
- Anmeldung benutzten mu�.
+ Legt das Passwort fest, welches das SIP-Endgerät zur
+ Anmeldung benutzten muß.
@@ -831,7 +831,7 @@
type
- Die Art, wie der SIP-Anschluss und damit das SIP-Endger�t
+ Die Art, wie der SIP-Anschluss und damit das SIP-Endgerät
behandelt werden soll
@@ -869,7 +869,7 @@
host
- Legt fest, ob sich das SIP-Endger�t eine dynamische oder
+ Legt fest, ob sich das SIP-Endgerät eine dynamische oder
eine statische IP-Adresse verwendet.
@@ -877,7 +877,7 @@
dynamic
- Die IP-Adresse des Endger�tes ist dynamisch, seine IP
+ Die IP-Adresse des Endgerätes ist dynamisch, seine IP
ist dem System nicht bekannt.
@@ -886,8 +886,8 @@
<IP>|<hostname>
- Die IP-Adresse oder der Hostname des Endger�tes. Das
- System kann hier�ber das Endger�t erreichen, ohne dass sich
+ Die IP-Adresse oder der Hostname des Endgerätes. Das
+ System kann hierüber das Endgerät erreichen, ohne dass sich
dieses erst registrieren muss.
@@ -900,7 +900,7 @@
Legt die IP-Adresse fest, unter der das System versucht ein
- Endger�t zu erreichen, wenn es sich noch nicht registriert
+ Endgerät zu erreichen, wenn es sich noch nicht registriert
hat.
@@ -909,7 +909,7 @@
context
- Der Kontext, zu welchem das SIP-Endger�t geh�ren
+ Der Kontext, zu welchem das SIP-Endgerät gehören
soll.
@@ -918,7 +918,7 @@
callerid
- Die ID des Anrufers, die an die Gegenstelle �betragen
+ Die ID des Anrufers, die an die Gegenstelle übetragen
wird.
@@ -927,7 +927,7 @@
mailbox
- Die Nummer der Mailbox, die dem Endger�t zugeordnet
+ Die Nummer der Mailbox, die dem Endgerät zugeordnet
ist.
@@ -936,8 +936,8 @@
callgroup
- Liste numerischer IDs der Call-Groups, zu denen das Endger�t
- geh�ren soll.
+ Liste numerischer IDs der Call-Groups, zu denen das Endgerät
+ gehören soll.
@@ -945,8 +945,8 @@
pickupgroup
- Liste numerischer IDs der Call-Groups, f�r die das
- Heranholen von Gespr�chen an dieses Endger�t erlaubt ist.
+ Liste numerischer IDs der Call-Groups, für die das
+ Heranholen von Gesprächen an dieses Endgerät erlaubt ist.
@@ -955,7 +955,7 @@
Legt fest, ob und welche Channelvariable bei Anrufen von
- diesem Endger�t gesetzt werden soll.
+ diesem Endgerät gesetzt werden soll.
@@ -963,8 +963,8 @@
call-limit
- Legt die Maximale Anzahl von Gespr�chen fest, die �ber
- dieses Endger�t gef�hrt werden k�nnen.
+ Legt die Maximale Anzahl von Gesprächen fest, die über
+ dieses Endgerät geführt werden können.
@@ -973,8 +973,8 @@
Legt den Kontext fest, welcher zur Signalisierung z.B. von
- LEDs an einem SIP-Endger�t verwendet wird. In diesem Kontext
- befinden sich z.B. die "hint" Eintr�ge im Dialplan.
+ LEDs an einem SIP-Endgerät verwendet wird. In diesem Kontext
+ befinden sich z.B. die "hint" Einträge im Dialplan.
@@ -983,7 +983,7 @@
Legt fest, welcher Kontest beim ersten Registrieren eines
- SIP-Endger�tes automatisch aufgerufen wird. Als Extension wird der
+ SIP-Endgerätes automatisch aufgerufen wird. Als Extension wird der
Inhalt des Feldes name verwendet.
@@ -992,7 +992,7 @@
ipaddr
- Die aktuelle IP-Adresse des SIP-Endger�tes wird vom
+ Die aktuelle IP-Adresse des SIP-Endgerätes wird vom
Asterisk-Server in diesem Feld abgelegt.
@@ -1001,7 +1001,7 @@
port
- Die aktuelle Portnummer des SIP-Endger�tes wird vom
+ Die aktuelle Portnummer des SIP-Endgerätes wird vom
Asterisk-Server in diesem Feld abgelegt.
@@ -1010,7 +1010,7 @@
regseconds
- Zeitstempel der Registrierung des SIP-Endger�tes wird vom
+ Zeitstempel der Registrierung des SIP-Endgerätes wird vom
Asterisk-Server in diesem Feld abgelegt.
@@ -1019,7 +1019,7 @@
username
- Benutzername, wie er in der Konfiguration des SIP-Endger�tes
+ Benutzername, wie er in der Konfiguration des SIP-Endgerätes
festgelegt wurde.
@@ -1028,7 +1028,7 @@
regserver
- Name des Servers, an dem das Endger�t registriert ist, wird
+ Name des Servers, an dem das Endgerät registriert ist, wird
vom Asterisk-Server in diesem Feld abgelegt.
@@ -1037,7 +1037,7 @@
fullcontact
- Die Kontaktdaten des SIP-Endger�tes werden vom
+ Die Kontaktdaten des SIP-Endgerätes werden vom
Asterisk-Server in diesem Feld abgelegt.
@@ -1079,7 +1079,7 @@
context
- Legt fest, zu welchem Kontext die Mailbox geh�rt.
+ Legt fest, zu welchem Kontext die Mailbox gehört.
@@ -1104,7 +1104,7 @@
fullname
- Vollst�ndiger Name des Benutzers der Mailbox.
+ Vollständiger Name des Benutzers der Mailbox.
@@ -1121,8 +1121,8 @@
attach
- Legt fest, ob an die Benachrichtigung �ber eMail, eine
- Audiodatei mit der Aufnahme angeh�ngt werden soll. M�gliche Werte:
+ Legt fest, ob an die Benachrichtigung über eMail, eine
+ Audiodatei mit der Aufnahme angehängt werden soll. Mögliche Werte:
yes|no
@@ -1132,7 +1132,7 @@
Legt fest, ob nach der Benachrichtigung per eMail die
- Audiodatei gel�scht werden soll.
+ Audiodatei gelöscht werden soll.
@@ -1165,7 +1165,7 @@
regexp
- Regul�rer Ausdruck zur Definition der
+ Regulärer Ausdruck zur Definition der
Rufnummernsperre
@@ -1199,7 +1199,7 @@
case
- Legt fest, f�r welchen Fall die Anrufweiterleitung
+ Legt fest, für welchen Fall die Anrufweiterleitung
aktiviert werden soll.
@@ -1231,7 +1231,7 @@
offline
- Wenn das Endger�t des Benutzers nicht angemeldet
+ Wenn das Endgerät des Benutzers nicht angemeldet
ist.
@@ -1319,8 +1319,8 @@
active
- Legt fest, ob das Signal f�r einen weiteren, ankommenden
- Anruf, w�hrend eines bestehenden Gespr�chs gesendet wird.
+ Legt fest, ob das Signal für einen weiteren, ankommenden
+ Anruf, während eines bestehenden Gesprächs gesendet wird.
@@ -1330,7 +1330,7 @@
clirKonfiguration des Dienstmerkmals "CLIR"
- (Rufnummernunterdr�ckung)
+ (Rufnummernunterdrückung)
@@ -1346,8 +1346,8 @@
internal_restrict
- Legt fest, ob bei ausgehenden, internen Gespr�chen die
- eigene Rufnummer unterdr�ckt wird. M�gliche Werte:
+ Legt fest, ob bei ausgehenden, internen Gesprächen die
+ eigene Rufnummer unterdrückt wird. Mögliche Werte:
yes|no
@@ -1356,8 +1356,8 @@
external_restrict
- Legt fest, ob bei ausgehenden, externen Gespr�chen die
- eigene Rufnummer unterdr�ckt wird. M�gliche Werte:
+ Legt fest, ob bei ausgehenden, externen Gesprächen die
+ eigene Rufnummer unterdrückt wird. Mögliche Werte:
yes|no
@@ -1367,7 +1367,7 @@
conferences
- Konferenzr�ume
+ Konferenzräume
@@ -1392,9 +1392,9 @@
dial_log
- Liste get�tigter, erhaltener oder verpasster Anrufe. Diese Tabelle
- wird durch AGI-Skripte im Dialplan gef�llt, und die einzelnen Eintr�ge
- k�nnen auch vom Benutzer gel�scht werden.
+ Liste getätigter, erhaltener oder verpasster Anrufe. Diese Tabelle
+ wird durch AGI-Skripte im Dialplan gefüllt, und die einzelnen Einträge
+ können auch vom Benutzer gelöscht werden.
@@ -1425,7 +1425,7 @@
out
- Get�tigter Anruf
+ Getätigter Anruf
@@ -1480,7 +1480,7 @@
hosts
- Zum System geh�rende Hosts
+ Zum System gehörende Hosts
@@ -1597,14 +1597,14 @@
pb_prv
- Die pers�nlichen Telefonb�cher der Benutzer.
+ Die persönlichen Telefonbücher der Benutzer.id
- Fortlaufende Nummer der Eintr�ge.
+ Fortlaufende Nummer der Einträge.
@@ -1613,7 +1613,7 @@
ID des Benutzers (aus der Tabelle users)
- dem das Telefonbuch geh�rt.
+ dem das Telefonbuch gehört.
@@ -1638,14 +1638,14 @@
phones
- Die Endger�te.
+ Die Endgeräte.id
- Eindeutige, numerische ID des Endger�tes.
+ Eindeutige, numerische ID des Endgerätes.
@@ -1653,7 +1653,7 @@
type
- Typ des Endger�tes, z.B. snom360
+ Typ des Endgerätes, z.B. snom360
@@ -1661,7 +1661,7 @@
mac_addr
- Die MAC-Adresse des Endger�tes.
+ Die MAC-Adresse des Endgerätes.
@@ -1680,11 +1680,11 @@
Eindeutige, numerische ID eines Pseudo-Benutzers aus dem
Feld nobody_index der Tabelle
- users. Jedem Endger�t wird bei der Installation
+ users. Jedem Endgerät wird bei der Installation
ein solcher Benutzer zugewiesen, um auch dann das Telefon
- verwenden zu k�nnen, wenn sich noch kein Benutzer an diesem Ger�t
- angemeldet hat. Dies erm�glicht Notrufe, kostenlose
- Interngespr�che etc. direkt nach der Installation.
+ verwenden zu können, wenn sich noch kein Benutzer an diesem Gerät
+ angemeldet hat. Dies ermöglicht Notrufe, kostenlose
+ Interngespräche etc. direkt nach der Installation.
@@ -1733,7 +1733,7 @@
Numerische ID der Pickup-Gruppe, zu welcher der Benutzer
- geh�rt, aus der Tabelle pickupgroups.
+ gehört, aus der Tabelle pickupgroups.
@@ -1776,7 +1776,7 @@
event
- Ereignis, welches zum Eintrag ins Log gef�hrt hat.
+ Ereignis, welches zum Eintrag ins Log geführt hat.
@@ -1810,8 +1810,8 @@
caller
- Die Anrufer-ID, wie sie zum System �bertragen wurde oder
- NULL, fals keine Rufnummern�bertragung aktiviert war.
+ Die Anrufer-ID, wie sie zum System übertragen wurde oder
+ NULL, fals keine Rufnummernübertragung aktiviert war.
@@ -1861,7 +1861,7 @@
info
- Zus�tzliche Informationen (z.B.
+ Zusätzliche Informationen (z.B.
<extension>@<context>)
bei einer Weiterleitung.
@@ -1872,7 +1872,7 @@
ringtones
- Die pro Benutzer eingestellten Klingelt�ne.
+ Die pro Benutzer eingestellten Klingeltöne.
@@ -1888,7 +1888,7 @@
src
- F�r Anrufe von welcher Quelle der Klingelton gelten soll.
+ Für Anrufe von welcher Quelle der Klingelton gelten soll.
internal | external.
@@ -1897,10 +1897,10 @@
bellcore
- Die Nummer eines Standard-Klingeltons. �blicherweise
- 1 - 10 f�r
+ Die Nummer eines Standard-Klingeltons. Üblicherweise
+ 1 - 10 für
Bellcore-drX oder
- 0 f�r Silent
+ 0 für Silent
(lautlos).
@@ -1942,10 +1942,10 @@
key
- Telefon-Typ-spezifisches K�rzel der Taste. Wird aber vom
+ Telefon-Typ-spezifisches Kürzel der Taste. Wird aber vom
Provisioning-System (z.B.
- htdocs/prov/snom/settings.php) nochmal f�r
- das Telefon �bersetzt.
+ htdocs/prov/snom/settings.php) nochmal für
+ das Telefon übersetzt.
@@ -1956,6 +1956,38 @@
Eingestellte Rufnummer.
+
+
+ ptype
+
+
+ Lokation der Nummer (cell/work/home/fax etc.).
+
+
+
+
+ pref
+
+
+ Praeferenz der Nummer (1=highest, 99=lowest, default=9).
+
+
+
+
+ card_id
+
+
+ vCard ID Referenz.
+
+
+
+
+ modified
+
+
+ Zeitstemples letzter Aenderung.
+
+
@@ -1979,7 +2011,7 @@
Eindeutige alphanumerische Bezeichnung des Benutzers, z.B.
- Personalnummer o.�.
+ Personalnummer o.ä.
@@ -2020,8 +2052,8 @@
Eindeutige, numerische ID eines Pseudo-Benutzers. Diese
- speziellen Benutzer werden verwendet, wenn an einem Endger�t noch
- kein anderer Benutzer angemeldet ist. Dies erm�glicht z.B.
+ speziellen Benutzer werden verwendet, wenn an einem Endgerät noch
+ kein anderer Benutzer angemeldet ist. Dies ermöglicht z.B.
Notrufe.
@@ -2030,7 +2062,7 @@
host_id
- Numerische ID des Asterisk-Servers, an dem sich das Endger�t
+ Numerische ID des Asterisk-Servers, an dem sich das Endgerät
des Benutzer anmeldet.
@@ -2039,7 +2071,7 @@
current_ip
- Aktuelle IP des Endger�tes, welches der Benutzer aktuell
+ Aktuelle IP des Endgerätes, welches der Benutzer aktuell
verwendet.
@@ -2058,7 +2090,7 @@
users_external_numbers
- M�gliche Ausgangsrufnummern pro Benutzer zur Initiierung von
+ Mögliche Ausgangsrufnummern pro Benutzer zur Initiierung von
Anrufen.
@@ -2100,8 +2132,8 @@
internal_active
- Legt fest, ob die Anrufbeantworterfunktion f�r interne
- Gespr�che aktiviert werden soll.
+ Legt fest, ob die Anrufbeantworterfunktion für interne
+ Gespräche aktiviert werden soll.
@@ -2109,8 +2141,8 @@
external_active
- Legt fest, ob die Anrufbeantworterfunktion f�r externe
- Gespr�che aktiviert werden soll.
+ Legt fest, ob die Anrufbeantworterfunktion für externe
+ Gespräche aktiviert werden soll.
diff --git a/opt/gemeinschaft/htdocs/gui/inc/modules.php b/opt/gemeinschaft/htdocs/gui/inc/modules.php
index 3c1003123..00b75d963 100644
--- a/opt/gemeinschaft/htdocs/gui/inc/modules.php
+++ b/opt/gemeinschaft/htdocs/gui/inc/modules.php
@@ -71,7 +71,13 @@
's' => array('title' => __('Intern' ), 'id' => 3001) ),
25=>array(
'k' => 'private',
- 's' => array('title' => __('Persönlich' ), 'id' => 3002) )
+ 's' => array('title' => __('Persönlich' ), 'id' => 3002) ),
+ 35=>array(
+ 'k' => 'category' ,
+ 's' => array('title' => __('Kategorien' ), 'id' => 3006) ),
+ 45=>array(
+ 'k' => 'cloud' ,
+ 's' => array('title' => __('Cloud Sync' ), 'id' => 3005) )
);
if (gs_get_conf('GS_PB_IMPORTED_ENABLED')) {
$pos = (int)gs_get_conf('GS_PB_IMPORTED_ORDER', 9) * 10;
diff --git a/opt/gemeinschaft/htdocs/gui/mod/home_home.php b/opt/gemeinschaft/htdocs/gui/mod/home_home.php
index db74df080..6b45bf4f8 100644
--- a/opt/gemeinschaft/htdocs/gui/mod/home_home.php
+++ b/opt/gemeinschaft/htdocs/gui/mod/home_home.php
@@ -9,6 +9,8 @@
* Stefan Wintermeyer
* Philipp Kempgen
* Peter Kozak
+* STD Markus Neubauer
+* - added view for cloud books
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -297,6 +299,7 @@
?>
+
diff --git a/opt/gemeinschaft/htdocs/gui/mod/pb_category.php b/opt/gemeinschaft/htdocs/gui/mod/pb_category.php
new file mode 100644
index 000000000..9bd28e9de
--- /dev/null
+++ b/opt/gemeinschaft/htdocs/gui/mod/pb_category.php
@@ -0,0 +1,270 @@
+
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA 02110-1301, USA.
+\*******************************************************************/
+
+defined('GS_VALID') or die('No direct access.');
+include_once( GS_DIR .'lib/utf8-normalize/gs_utf_normal.php' );
+
+echo '
Hint: Categories are coming from the cloud and
+ must be changed within the cloud to really become active here.
diff --git a/opt/gemeinschaft/htdocs/gui/mod/pb_cloud.php b/opt/gemeinschaft/htdocs/gui/mod/pb_cloud.php
new file mode 100644
index 000000000..c02164c55
--- /dev/null
+++ b/opt/gemeinschaft/htdocs/gui/mod/pb_cloud.php
@@ -0,0 +1,471 @@
+
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+* MA 02110-1301, USA.
+\*******************************************************************/
+
+defined('GS_VALID') or die('No direct access.');
+include_once( GS_DIR .'lib/utf8-normalize/gs_utf_normal.php' );
+
+echo '
[2] Schedule: Defaults to '1d', also see hints before.
+ Where h=hour, d=day, m=month (Max. 2 digits plus 1 char, no blank/minutes allowed).
+ Example: 12h =~ refresh every 12 hours (~ also during night), starting with the saved time.
+ You can simply trigger a refresh using edit and save with no other changes.