InfoFrame: Digitaler Bilderrahmen (Anzeige von Anrufen, E-Mails, Termine, Wetter...)

habe mir den fix eingefügt, damit sind die folgenden tage auf deutsch.
dann habe ich aber trotzdem noch die de_DE locale erzeugt, wer weiß wofür es gut ist.
dafür habe ich natürlich die 3 zeilen wieder entfernt, immer noch deutsch. also funzt die deutsche locale ;) danke für die tips
nur nicht beim benzinMTS, da greift das wohl nicht bei umlauten.

-----------------------------------

edit
erledigt
 
Zuletzt bearbeitet:
Hallo,
ich habe bis jetzt einen Kodak W1020 benutzt. Bei diesem Rahmen funktioniert das WLAN nicht mehr. Unter Einstellungen fehlt der Menüpunkt "Netzwerk".
Ich habe mir jetzt einen Motorola LS1000 gekauft. Ich bekomme aber die Anzeige nicht hin.
Ich habe einen eigenen Linux-Server, der das Bild korrekt generiert und als RSS-Feed unter http://infoframe:5050 ablegt.
Für den Motorola habe ich über den DNS-Server die Adresse "http://rss.framechannel.com/" auf meinen Server umgeleitet. Das funktioniert auch.
Die Bilder werden auf dem Motorola auch angezeigt, ändern sich aber nicht.
Kann mir jemand der einen Motorola betreibt folgende Dateien schicken myfeed.rss, rss.xml, index.php?

Vielen Dank,
Ralf
 
@Spoon3er

du hattest mir mit paar zeilen geholfen die anzahl der Nachrichten auf dem Fritzbox internen AB abzufragen.

da die config ja relativ oft läuft, wird der usb-stick mit den nachrichten an der fritte oft abgefragt.
bei mir geht das immer ne zeitlang gut bis dann das verzeichnich auf dem stick nicht mehr lesbar ist und der ab nur noch intern geht.
an oder ausschalten geht dann nur noch via webif, nichtmehr per FritzVox.

geht es, das eine variable gesetzt wird die gelöscht wird, sobald die anrufe auch gelöscht sind?
und bei einem anruf auf band die variable wieder gesetzt wird? also wenn das red_light.png angezeigt wird vom CallsPlugin
 
@Spoon3er
........
geht es, das eine variable gesetzt wird die gelöscht wird, sobald die anrufe auch gelöscht sind?
und bei einem anruf auf band die variable wieder gesetzt wird? also wenn das red_light.png angezeigt wird vom CallsPlugin
Hi,
post doch bitte mal den code von damals. Wenn ich das jetzt richtig verstanden habe wird jede minute das script gestartet? "...relativ oft läuft.." ist eine "relativ vage" Aussage. :D
 
abplugin.php von dir

PHP:
<?php
$ftp_server = "xxx.xxx.x.x";
$ftp_user = "xxxx";
$ftp_pass = "yyyyy";

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    die("FTP-Verbindungsaufbau ist fehlgeschlagen!");
}

if (ftp_chdir($conn_id, "./uStor01/FRITZ/voicebox/rec")) {
//if (ftp_chdir($conn_id, "./data/tam/rec")) {     <--- ***geht leider nicht***

    $a = ftp_pwd($conn_id);
	$b = ftp_nlist($conn_id, $a);
    $result = count($b);   
	// mysql_query("REPLACE INTO if_ab SET id=1, anzahl = '$result'") or die ("nicht moeglich");
}

// Verbindung schließen
ftp_close($conn_id);
?>

und der aufruf in der weather.php btw. kann ich den aufruf nicht einfach im abplugin machen?

PHP:
                // extension to display how many calls are on fritzbox internal awnsermachine
				// big thanks to Spoon3er
				require('plugins/ABplugin.php');
				if ($result>0) {
					//$ab = ImageCreateFromPNG ( 'resources/icons/AB.png' );
					$ab = ImageCreateFromPNG ( 'resources/icons/AB1.png' );
					ImageCopy($image, $ab, 270, $yoffset-145, 0, 0, imagesx($ab), imagesy($ab));
					ImageDestroy($ab);
					imagettftextboxopt($image, 30, 0, -5, $yoffset-95, $style['textcolor'], $style['fontb'], $result, $opt);
				}
				//----------------------------------------------------------------------------

ja ich glaube jede minute läuft das.
ich mußte schon 3mal den stick von der fritzbox neu machen, weil immer wieder das verzeichnis fritz/voicebox kaputt war (nicht mehr lesbar)
seit 2 tagen ist er sogar komplett im ... wird auch am pc nicht mehr erkannt
merken tue ich es immer, wenn der ab sich nicht mehr über fritz!vox ein bzw. ausschalten lässt.

warum mußte man dafür überhaupt nen sttick haben? die fb hat doch 4mb eingebaut. reicht das nicht.
weil wenn mein stick dran ist läut die fb mit 79% energie
ohne nur 47%
 
Zuletzt bearbeitet:
Hallo zusammen

Beim Umbau meines Wohnzimmers kam ich auf eine ähnliche Anforderung. Erst suchte ich nach einer digitalen Uhr und landete dann hier im Forum. Die Idee ist genial und eigentlich auch einfach zu realisieren.
Mein Problem ist nun: Die erwähnten Samsung Modelle gibts nicht mal mehr gebraucht :(
Neue Geräte mit WLAN sind selten und daher die Frage: Welches der aktuell noch am Markt vorhanden Geräte kann man noch empfehlen (ich habe gelesen, dass bei einigen keine eigenen Bilder "gefüttert" werden können bzw. die Refresh Rate zu lang ist).
Alternative wäre wahrscheinlich ein Android Pad zu kaufen und eine eigene App zu schreiben. Dort muss man dann aber wieder auf Bildschirmschoner, Updates usw. achten.

Ideal wäre für mich ein 10 Zoll (wobei ich schon mit dem Rollei DF-15 WLAN liebäugeln würde (wenn auch gebraucht)).
Vielleicht kann mir jemand Tipps geben. Es brennt schon in meinen Fingern und ich würde gerne mit dem Projekt starten. Tipps gerne auch per PM.

Danke :p
 
Hallo, bin hier zullig auf den thread gestoßen und der macht mich jetzt direkt neugierig:)

Gibt es eine liste mit Bilderrahmen die man für die Funktion nutzen kann?

Und was muss ich dann tun wenn ich einen gefunden hätte?

Danke
 
Hallo Zusammen,
leider hat clever-tanken die Internetseite geändert. Hat da jemand schon das Benzinpreis-Plugin drauf angepasst?

Gruß xxolli
 
...
ja ich glaube jede minute läuft das.
...
warum mußte man dafür überhaupt nen sttick haben? die fb hat doch 4mb eingebaut. reicht das nicht.
weil wenn mein stick dran ist läut die fb mit 79% energie
ohne nur 47%

Wenn Du die mysql-Datenbank benutzt (sie ist ja atm auskommentiert), könntest du, bevor du zu der FRITZ!Box per ftp connectest, mit einer mysql_query abfragen ob die Anzahl =0 ist. Ist sie 0 wird das ganze übersrungen und gut.:
PHP:
<?php
$ftp_server = "xxx.xxx.x.x";
$ftp_user = "xxxx";
$ftp_pass = "yyyyy";
$result = mysql_query("SELECT anzahl FROM if_ab WHERE id=1");
$AB = mysql_result($result, 0);
if ( $AB != 0 ) {
// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    die("FTP-Verbindungsaufbau ist fehlgeschlagen!");
}

if (ftp_chdir($conn_id, "./uStor01/FRITZ/voicebox/rec")) {
//if (ftp_chdir($conn_id, "./data/tam/rec")) {     <--- ***geht leider nicht***

    $a = ftp_pwd($conn_id);
	$b = ftp_nlist($conn_id, $a);
    $result = count($b);   
	// mysql_query("REPLACE INTO if_ab SET id=1, anzahl = '$result'") or die ("nicht moeglich");
}

// Verbindung schließen
ftp_close($conn_id);
}
?>

Jetzt müsstest du noch in der CallsPlugin, falls einer auf dein Ab-Spricht, das mysql_query("REPLACE....") statement aus deinem Code einfügen. Somit würde sich die Anzahl ändern und beim nächsten mal würde das AB-script durchlaufen und die Nachrichten gezählt werden.
Beim löschen läuft das Ab-Plugin einmal durch und setzt dann im if_ab die anzahl=0. Beim nächsten query (nach einer minute) würde die anzahl aus der mysql_datenbank gelesen. Ist sie null beendet sich das script und gut.

Um den Aufruf im Ab-Plugin machen zu können müsstest du einen Eintrag in die config.ini setzen und das AB-Plugin komplett als Methode einer Klasse ip_config umschreiben... Das ist für die paar Zeilen Code nicht wirklich ratsamm.
Aufrufen kannst du es in jedem Plugin. Wichtig ist es nur, daß es minütlich ausgeführt wird, was zB im CallsPlugin nicht der Fall ist, da dieser nur bei einem Anruf triggert. Somit hättest du zB, wenn du die Nachrichten aus dem AB löscht erst nach einem Anruf wieder die richtige Anzahl an AB-Nachrichten angezeigt.

Also prinzipiell sollten 4MB für das ganz Projekt langen. probieren geht hier über studieren... :) einfach den AB auf Web-config der FRTIZ!Box auf den internen Speicher umleiten, den Infoframe Ordner auch dahin kopieren und ALLE Links in den dezugehörigen scripts ändern. Dann siehst du schon ob es klappt :)

€dith: oder elganter und wahrscheinlich auch effizienter:
Du fügst der Tabelle if_ab noch ein Spalte mit dem name zB "geaendert" hinzu.
der code am Anfang wäre dann folgender:
PHP:
<?php
$ftp_server = "xxx.xxx.x.x";
$ftp_user = "xxxx";
$ftp_pass = "yyyyy";
$result = mysql_query("SELECT geaendert FROM if_ab WHERE id=1");
$geaendert_durch = mysql_result($result, 0);
if ( $geaendert_durch == "Calls_Plugin" ) {
// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    die("FTP-Verbindungsaufbau ist fehlgeschlagen!");
}

if (ftp_chdir($conn_id, "./uStor01/FRITZ/voicebox/rec")) {
//if (ftp_chdir($conn_id, "./data/tam/rec")) {     <--- ***geht leider nicht***

    $a = ftp_pwd($conn_id);
	$b = ftp_nlist($conn_id, $a);
    $result = count($b);   
	 mysql_query("REPLACE INTO if_ab SET id=1, anzahl = '$result', geaendert='AB_Plugin'") or die ("nicht moeglich");
}

// Verbindung schließen
ftp_close($conn_id);
}
?>
Dann im CallsPlugin, nachdem was auf Band gesprochen wurde sowas in der Art:
PHP:
 $insert = mysql_query("REPLACE INTO if_ab SET id=1, geaendert='Calls_Plugin'") or die (REPLACE nicht moeglich");
......
Vielleicht kann mir jemand Tipps geben. Es brennt schon in meinen Fingern und ich würde gerne mit dem Projekt starten. Tipps gerne auch per PM.

Danke :p
Gibt es eine liste mit Bilderrahmen die man für die Funktion nutzen kann?

Danke
Ich habe einen PixStar Rahmen. Dieser funktioniert sehr gut, hat einen Samba-share und ist auch UPNP/DLNA-fähig. Kostet natürlich einiges, da wird wohl ein billiges Android-Tablet die günstigere Variante sein. Hab das Vorgängermodell und nach 3 maligen hin und her Senden zwischen Frankreich und Deutschland läuft das Ding jetzt auch ohne probleme. Nebenbei erwähnt war/ist der Support wirklich Klasse von den Teilen....
Aktuelle Rahmen mit Wifi + RSS-Reader oder sonstawas sind wirklich schwer aufzutreiben... :(

Hallo Zusammen,
leider hat clever-tanken die Internetseite geändert. Hat da jemand schon das Benzinpreis-Plugin drauf angepasst?

Gruß xxolli
Die Seite habe ich schon "zerlegt", sprich die regex fertig. Der rest ist "nur" noch fleißarbeit:
PHP:
<?php
	/* 
	/ ACHTUNG UTF-8 !!!!!!!!!!!!!!!!!!!!!!!!!!!
	*/

	
	//!include_path anpassen!!!!	
		$loc = setlocale(LC_ALL, 'de_DE.UTF8', 'de_DE', 'de', 'ge');
		$config = parse_ini_file("config.ini", true);
    $sysconfig = $config['System'];
    								
		mysql_connect($sysconfig['db_host'], $sysconfig['db_user'], $sysconfig['db_password']) or die ("Verbindung nicht möglich");
    mysql_select_db( $sysconfig['db_name']) or die ("Die Datenbank existiert nicht.");
    
// spritsorte und ort kommen spaeter aus der config.ini
    $uri="/tankstelle_liste?spritsorte=5&r=10&ort=90402";
			header("Content-type: text/html");
			$sock = fsockopen("www.clever-tanken.de", 80, $errno, $errstr, 10); // 80 = Port, 5 = Timeout
			if (!$sock) {
				return;//$title = "keine Tankstellen in $orte_fehlen gefunden";
			} else {
				fputs($sock, "GET ".$uri." HTTP/1.1\r\n");
				//------ (FD 15.01.2012) Damit Clever-tanken glaubt es handelt sich um eine Browser
				//------ löst das Problem des Diesel Einheitspreises, zumindest bei mir
				fputs($sock, "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204\r\n");
				//------
				fputs($sock, "Host: www.clever-tanken.de\r\n");
				fputs($sock, "Connection: close\r\n\r\n");
				while(!feof($sock)) {
					$zeile[$i++] = trim(fgets($sock,512));
				}
				fclose($sock);
			} 
		
$inhalt = implode($zeile);	   
//$inhalt = file_get_contents('/var/www/infoframe/speichern');
preg_match_all('#<div class="price">(.*)</div><div class="location_distance">(.*)</div>#isU', $inhalt, $matches);

$i=0;
foreach ($matches[0] as $match) {
	$i++;
	echo strip_tags($match)."\n";
	$ergebnis[$i] = explode('|', preg_replace('#<.*?>#', '|', $match));
	
}
$ergebnis = array_filter(array_map('array_filter', $ergebnis));
print_r($ergebnis);
?>
Mal sehen ob ich das am WE noch zusammenschustern kann...
 
Zuletzt bearbeitet:
BenzinPlugin

Ich habe das BenzinPlugin umgeschrieben damit es mit der neuen Clever-Tanken.de Seite funktioniert.
info.JPG

Einiges, wichtige vorweg:
  • Ich habe vor längerer Zeit schon auf mysqli umgestellt: Ihr müsst die mysqli-funtionen wieder auf mysql umschreiben. Das beudeutet eigentlich nur das "i" löschen und das "$this->dbconn" von der ersten auf die zwei Position kopieren.
  • Ich benutze die einzeilige Darstellung, also habe ich kein Loop im script um mehrere Tankstellen darzustellen.
  • Ich habe noch zwei Spalten in der if_tanken Tabelle erstellt, damit ich die Zehntel besser darstellen kann und, wer will kann sich noch die Entfernung zur Tankstelle anzeigen lassen.

Soooo....
Das eigentlich relevante zeige ich hier nochmal auf:

In der BenzinPlugin.php habe ich nur in der doUpdate-Funktion und addStation-Funktion wegen der Umstellung herumgefummelt. Ich kopiere immer paar Zelen davor und danach mit:
PHP:
		// Datenbankeinträge löschen
		mysqli_query($this->dbconn, "START TRANSACTION");		
		$query = "DELETE FROM `if_tanken`";
		mysqli_query($this->dbconn, $query) or die('Error, delete query failed');
	
/************************AB hier neu wegen Umstellung auf neuen HP************************/		
		$trans = array("Std" => "hours", "Tag" => "days", "Sek" => "seconds");
		$inhalt = implode($zeile);
	// jeweils die Textbloecke fuer eine Tankstelle greppen	
		preg_match_all('#<div class="price">(.*)</div><div class="location_distance">(.*)</div>#isU', $inhalt, $matches);

	// Jeden Textblock als separates Array anlegen	
		$i=0;
		foreach ($matches[0] as $match)
					$ergebnis[$i++] = explode('|', preg_replace('#<.*?>#', '|', $match));

		//Array bereinigen			
		$ergebnis = array_filter(array_map('array_filter', $ergebnis));
	// jeden Textblock einzeln in die Datenbank schreiben
		for ($j=0; $j<=$i; $j++) {
			if (isset($ergebnis[$j][5]) AND strpos($ergebnis[$j][5], 'gemeldet') !== FALSE) {
				// nach der verstrichenen zeit der Meldung greppen
				preg_match('#([0-9]+) (.*[^.$])#', $ergebnis[$j][6], $match);
				// Falls weniger Zeit vergangen als in der config angegeben Station in die DB eintragen
				if (strtotime("-".$match[1]." ".strtr($match[2], $trans)) >= strtotime('-2 hours') ) {
					$this->addStation($ergebnis[$j][1], $ergebnis[$j][2], strtotime("-".$match[1]." ".strtr($match[2], $trans)), $ergebnis[$j][14]." - ".$ergebnis[$j][16]." ".$ergebnis[$j][18], $ergebnis[$j][23]);
				}
			}
		}
/*******************************Umstellung hier zu ende*******************************/
		
		// in Datenbank schreiben
		mysqli_query($this->dbconn, "COMMIT");


/* hier steht der rest des Plugin unverändert...............
.............
..............
**********************************************************/

/*****************************das hier ist die addStation-Funktion am ende des Plugins: **************************/
    private function addStation($preis, $zehntel, $datum, $station, $entfernung) {
        $query = "REPLACE INTO `if_tanken` SET 
                    `preis`= $preis,
                    `zehntel` = $zehntel, 
                    `datum`= FROM_UNIXTIME($datum), 
                    `station`= '".mysqli_real_escape_string($this->dbconn, $station)."',
                    `entfernung`= '".mysqli_real_escape_string($this->dbconn, $entfernung)."'";

        mysqli_query($this->dbconn, $query) or die('Spritplugin:'.mysqli_error($this->dbconn));
    }


Die zwei neuen Spalten in der Tabelle habe ich der library/dbconn.php zugefügt. Diese sieht dann für die if_tanken Tabelle so aus:
PHP:
  // table "if_tanken"
	if(mysqli_num_rows( mysqli_query(self::$connection, "SHOW TABLES LIKE 'if_tanken'") ) != 1) {
		$query = "CREATE TABLE `if_tanken` (
					`preis` float(3,2) NOT NULL,
					`zehntel` int(1) NOT NULL,
					`datum` datetime NOT NULL,
					`station` varchar(255) collate latin1_general_cs NOT NULL,
					`entfernung` varchar(100) collate latin1_general_cs NOT NULL,
					PRIMARY KEY  (`datum`,`preis`,`station`)
				) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs; ";
		mysqli_query(self::$connection, $query) or die('Error, insert query failed: '.mysqli_error());
	}
entweder manuell die zwei Spalten anlegen, oder die Tabelle löschen und beim nächsten query wird sie automatisch angelegt. Auch hier aufpassen: mysqli statt mysql !!!!!!!!!

die relvanten Teile der config.ini:
Code:
[BenzinPlugin]
; Auswahl einer Karftstoffsorte -> 
; Normalbenzin  = wird nicht mehr ausgewertet
; Super E5      = 7 
; Super E10     = 5
; SuperPlus     = 6
; Diesel        = 3
; PremiumDiesel = 12
; Biodiesel     = 9
; LKW-Diesel    = 2
; Autogas       = 1
; Erdgas        = 8
; Pflanzenöl    = 10
; Bioethanol    = 4
; Zweitakt 	= 11
; AdBlue	= 13
;
; Radiusmöglichkeiten ->
; 1km 					= 1
; 2km 					= 2
; 5km 					= 5
; 10km 					= 10
; 20km 					= 20
; 25km 					= 25
;
;Ortangabe entweder Ort oder Postleitzahl mindestens 3 Zahlen
;
max_age_in_hours = 5
max_displayed_stations = 1
sorte = 6
ort_1 = "90768"
radius_1 = 10
Hier noch ein Bild von phpmyadmin: Wer mag kann sich ja die restlichen daten anhand der $row[namen] zurecht bastlen, anzeigen lassen.
phpmyadmin.JPG
Ich hänge noch die BenzinPlugin.php mit drann, aber wie gesagt: So wird sie bei euch nicht funktionieren, aber für copy&paste der relevanten Stellen sollte sie taugen.
 

Anhänge

  • BenzinPlugin.zip
    3 KB · Aufrufe: 24
Zuletzt bearbeitet:
BenzinPlugin

Hallo,

ich habe auch eine überarbeitete Version für die neue Webseite von clever-tanken erstellt.

Für diese Version sind keine Änderungen an der Config oder der Datenbank erforderlich!

Allerdings ist die Benzinsorte (Nummer) im Script noch hart codiert! (Im Beispiel 3 = Diesel)

Eine weitere kleine Einschränkung ist, dass alle Tankstellen mit Preis ausgegeben werden und das Alter der Preisinformation nicht mehr berücksichtigt wird.
Durch die häufigen Aktualisierungen ist das aber eigentlich kein Problem.

// jeden in config.ini eingetragenen Ort in file einlesen
while ($ort = $this->config['ort_'.++$ortnumber]) {
$uri = "/tankstelle_liste?spritsorte=3&r=1&ort=".$ort; // spritsorte 3=Diesel, 5=Super E10
header("Content-type: text/html");
$sock = fsockopen("www.clever-tanken.de", 80, $errno, $errstr, 10); // 80 = Port, 10 = Timeout

Es werden auch mehrere Tankstellen ausgegeben!

Anhang anzeigen BenzinPlugin.zip
infoframe.jpg

Viel Spaß
Uwe
 
Zuletzt bearbeitet:
ich hab deine version laufen mit meinen 4 plz

aber 2 tanken werden davon nicht in die db geschrieben und daher auch nicht angezeigt.
beide tanken befinden sich in meiner ersten plz aus der config

probier mal die 42327 und schaue selbst mal auf der webseite. dort sind sie vorhanden

Freie Tankstelle - Eugen-Lange-Str. 15
Q1 - Düsseldorfer Straße 385
 
Zuletzt bearbeitet:
Hallo friday,

das liegt am Wert "1" für "r" (r = Radius)
Wenn Du den auf "2" änderst, werden Tankstellen gefunden.
$uri = "/tankstelle_liste?spritsorte=3&r=2&ort=".$ort; // spritsorte 3=Diesel, 5=Super E10

Tschau
Uwe
 
wie funktioniert denn radius?
warum werden denn die anderen aus den plz´s gefunden
hier werden auch welche gefunden, die paar kilometer weg sind
welche werte stehen hinter r
 
Hallo,

r ist der km-Wert, den man auch auf der clever-tanken Webseite auswählen kann.

Tschau
Uwe
 
warum ist der hardcoded?
in der config wäre es übersichtlicher für jeden.
kannst du das noch mit einfügen
 
Hallo,

nein, ich möchte die config.ini nicht ändern/erweitern.

Tschau
Uwe
 
Hallo,

das Plugin muss nach heutigen Änderungen angepasst werden...

Tschau
Uwe
 

Anhänge

  • BenzinPlugin.zip
    3 KB · Aufrufe: 55
thx, aber ich muß nochmal was zum besseren verständnis fragen

von wo aus berechnet sich der radius eigentlich? ist das ein fixer punkt auf ner virtuellen plz-karte. also genau in der mitte eines plz-gebietes?

ich wohne 42327
weil es gibt eine tankstelle, die als adresse 42327 als plz hat. wird aber bei r=1 nicht gelistet. bei 2 schon.
aber meine eltern wohnen plz 42329, und die tanke ist ca. 500m entfernt. wird bei 42329 + r=1 aber trotzdem nicht gelistet.
 
Das musst Du clever-tanken fragen :p

Tschau
Uwe
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.