Hi Ihr!
Seitdem ich seit längerem beruflich mit "Premium"-(im Sinne von, wenn andere Firmen keine Lösung wissen kommen wir zum Einsatz.. *g*)-Kunden-Support für Windows- und PC-Probleme und allem drum rum zu tun habe, dort so langsam auch Linux, speziell Ubuntu Einzug erhält, und gleichzeitig natürlich mein Schwerpunkt privat darauf liegt, möglichst vielen Leuten Linux, speziell Ubuntu nahezubringen, in der Form, das ich ihnen für die ersten Wochen per Fernwartung Support gebe, und ich in meiner Arbeit mit zahlreichen netten, aber kommerziellen und windowsbasierten Tools zu tun habe, überlege ich mir nun, auf Basis meines bisherigen Wissens über die Möglichkeiten unter Linux eine möglichst umfassende Lösung zu programmieren bzw. aus bestehenden Programmen zusammen zu flicken ☺
Die "Linux-Support-Distribution", die mir vorschwebt, soll folgendes enthalten:
Kundenabwicklung / Ticketsystem
Fernwartung VNC/NX/RDP
Telefonie bzw. "Kommunikation" (konventionell / VoIP / andere Kommunikationsmittel)
einfach Datenübertragung von Rechner zu Rechner
Kommandos Remote ausführen
VPN
Routerkonfiguration (lokal & übers Tool auch beim Zielrechner, per UPnP oder Telnet?)
Natürlich werde ich das als Open-Source aufziehen. Meine Motivation ist neben dem eigenen Interesse für den Freundeskreis natürlich auch die Hemmschwelle bzgl. Linux in meiner Firma noch weiter abzubauen, und auch anderen Firmen, wenn sie ein mächtiges Support-Programm in den Händen halten, das ihnen viel Arbeit erspart, auch verstärkt Linux-Support anzubieten und somit auch Linux im kommerziellen Bereich zu pushen und damit Linux allgemein.
Wie ich mir die einzelnen Bereiche dieser Software vorstelle, hier mal im Kurzen. Da das Programm auch professionellen Ansprüchen genügen soll, ist das Szenario manchmal etwas businessorientierter als das für einen Einzeluser sein müsste. Deswegen auch das Wort Kunde, und dergleichen.
Extrem wichtig hierbei ist mir, das das Tool, das der "Kunde" bekommt, nichts weiter ist als ein Programm, das er nur startet und mehr nicht konfigurieren muss. Wenn er sich das zutrauen würde, würde er ja schließlich vermutlich keine Hilfe benötigen.
Die hier im Forum und woanders genannten Möglichkeiten, die ich las, beinhalten alle, das der "Kunde" seinen Router und dergleichen konfigurieren muss, das ist im echten Leben aber so einfach nicht realisierbar. Jemand, der einen Port oder ähnliches im Router freischalten kann, kommt auch sonst mit 80% der Probleme selber zurecht, es sei denn, er ist faul ☺ Alle anderen sind mit solchen Einstellungen genauso überfordert wie mit dem Problem, weswegen sie um Hilfe bitten.
Kundenabwicklung / Ticketsystem: Der Kunde ruft an, schildert sein Problem. Der Vorfall wird aufgenommen und in einer Datenbank abgelegt. Die Person, die es aufnahm kann, wenn gerade keine Anrufe aufzunehmen sind - oder aber eine andere Person, der man es delegiert hat oder sich den Vorfall selber herausgesucht hat, - sich den Vorfall aufrufen und hat nun alle Daten zum Kunden offen, Kontaktdaten und auch Infos zur Fernwartung. Ansonsten ist eine übliche Ticketsystem-Funktionalität vorhanden, wie bei den vielen entsprechenden Programmen auf dem Markt und Open-Source.
Fernwartung: Der Kunde bekommt einen Link zu einem direkt ausführbaren Tool, das nach einer kurzen Info im Systray verschwindet, in der ersten Generation denke ich, macht das nicht mehr, als im Systray zu sein, per Rechtsklick beendbar zu sein, per Rechtsklick eine Option zu bieten, die das Tool mit in die Sitzung aufnimmt, etc. - fürs erste reicht VNC, und kann erstmal nur die Grundfunktionalität...
1 2 3 4 5 | #!/bin/bash host='123.123.123.123' # die IP des Supporters port='55555' # ein beliebiger Port, den nur der Supporter freischalten muss vncserver :1 vncconfig -display :1 -connect $host:$port |
(wenn ich mal ein simples Beispiel aus dem Forum hier heranziehen darf.. nur um mal auf den Trichter zu kommen..)
..enthalten muss, später aber zu einem Tool ausgebaut werden kann, das seine Abhängigkeiten bei Bedarf selber installieren kann, zumindest unter Ubuntu, und neben VNC ggf. auch das viel flottere NX anbieten kann - dazu muss ich noch das Projekt FreeNX evaluieren - und als Fallback die X-Server-Einwahl. Und natürlich auch einen SSH-Server startet und wenn noch nicht geschehen einen supporter mit sudo account anlegt.
Programmiert werden würde das von meiner Seite natürlich eher in Python, meiner Lieblingssprache. Aber je nach aktiven Leuten die mitmachen kann man das ganze auch sprachlich freier gestalten.
Auf der Supportseite nimmt man Verbindung mit dem großen Supportprogramm auf. Aufgrund des Vorfalls, in dem man sich gerade befindet, kann man Punkte auswählen wie teils beschrieben, hier eine Auswahl:
Fernwartung VNC starten (öffnet VNC-Client mit der hinterlegten IP)
Fernwartung NX starten (öffnet NoMachine-Client mit der hinterlegten IP)
Fernwartung RDP starten (öffnet Remote Desktop - Client mit der hinterlegten IP / hier sehe ich noch Portprobleme muss ich evaluieren)
Fernwartung SSH starten (wenn man nur die Kommandozeile braucht)
Kunde anrufen / Kunden-Chat starten (Kontaktdaten auch hinterlegt, anrufen per SIP, Skype, etc. oder konventionell per Voice-Modem, dazu eben eine Chat-Möglichkeit)
Dateien übertragen (gibts auch diverse Möglichkeiten, die zu evaluieren sind)
Netzwerk des Kunden beitreten (VPN-Verbindung herstellen)
PS: Ich weiß, das es für fast alles seperate Tools gibt, aber so komfortabel, wie man es aus einer professionellen Hotline (echte PC-Experten, ohne Multiple-Choice-Fragen-Mitarbeiter) mit den entsprechenden Tools und Ideen kennt, geht das halt nicht.
Es gibt Linux-Tools für diverse Zwecke, es gibt:
CSpace
Hamachi
die diversen VNC-Implementierungen
OpenVPN
..die man zwar teilweise 1:1 mit in die von mir gedachte Lösung implementieren könnte - teilweise aber auch nicht, wenn an der anderen Seite ein hilfesuchender DAU sitzt.
Zum anderen sind an so netten Tools wie dem Ruckzuck-Fernwartungs-Tool TeamViewer für Windows und Mac OS X und dem genialen Hamachi ein Problem: Sie laufen per Handshake auf den Servern der Firmen.
Der Handshake dort macht die Verbindung so easy - so einen Server stelle ich mir zur Version 2.0 dann auch vor, allerdings open-source und für jeden selber aufsetzbar wo er will - aber gleichzeitig ist dort das Problem, das der Server proprietär ist und keiner weiß, ob Hamachi oder TeamViewer auch nix mitschneiden an heiklen Daten!
Ich könnte jetzt noch viel schreiben, wollte euch meine - teilweise schon in Ansätzen realisierte - Idee von einer solchen "Lösung" vorstellen und gerne mit fachlich entsprechend bewanderten und an einer solchen Lösung ebenso interessierten Leuten darüber diskutieren.
Wenn ich sehe das Anklang genug da ist, werde ich ein Trac und eine Google Group aufsetzen, damit wir das gemeinsam realisieren.
Das kann was Großes werden, von dem sowohl der Linux-Freak im Privaten - der seiner Mutter bei nem Problem helfen bei deren Linux-PC helfen, den er ihr eingerichtet hat, aber nicht immer vor Ort sein kann - profitieren kann, als auch Firmen, die sich auf Linux-Support spezialisiert haben oder eben Firmen die nun mit verschiedenen Produkten auf Linux umsteigen wollen und wie unter Windows gewohnt professionell supporten wollen.
Wer hat Lust, sich zu beteiligen? ☺