praktikumsbericht als docx - htw berlin - hochschule für technik

33
Praktikumsbericht Martin Becker s0516299 Fachhochschule für Technik und Wirtschaft Berlin Firma Comberry Ltd. Shanghai China Oktober 2008 bis März 2009

Upload: butest

Post on 04-Dec-2014

3.627 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Praktikumsbericht

Martin Becker

s0516299

Fachhochschule für Technik und Wirtschaft Berlin

Firma Comberry Ltd. Shanghai China

Oktober 2008 bis März 2009

Page 2: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Inhalt

Einleitung·····················································································3

Porträt der Firma···········································································4

Das Team – Organisation der Firma····················································5

Einarbeitungsphase·········································································6

Einrichtung der Arbeitsumgebung...................................................................................6

Einarbeitung in die Benutzerverwaltung.........................................................................6

Backupsystemverwaltung................................................................................................6

Angebotserstellungen·······································································8

Angebot Renommee.........................................................................................................8

Angebot Ospidali Psalmendatenbank..............................................................................8

Angebot Helgaa...............................................................................................................9

Projekt DocSEO············································································10

Beschreibung des Projektes...........................................................................................10

Entwicklungsumgebung.................................................................................................12

Vorstellung der Software Asterisk.................................................................................12

Installation von Asterisk Version 1.6.............................................................................12

Funktionsweise von Asterisk.........................................................................................13

Ablaufplan des Programms............................................................................................14

Warteschleifen...............................................................................................................15

Die zu sammelnden Daten.............................................................................................15

Aufsetzen einer Datenbank............................................................................................16

Auslagern der Call-Detail-Records (CDR)....................................................................17

Realtime – Auslagern der Konfigurationsdateien..........................................................18

DB-Abfragen im dialplan..............................................................................................19

Asterisk-Gateway-Interface...........................................................................................19

Verbindung mit dem deutschen Festnetz.......................................................................20

Zusammenfassung·········································································21

Fazit···························································································22

2

Page 3: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Einleitung

Als Voraussetzung zur Absolvierung meines Studiums an der FHTW Berlin im

Studiengang internationale Medieninformatik ist es nötig, ein Praktikum im

zukünftigen Berufsfeld in einer im Ausland ansässigen Firma zu tätigen.

Meine Entscheidung, dieses Praktikum in der Firma Comberry Ltd. in Shanghai /

China zu machen, fällte ich nach kurzem Kontakt mit dem Chef der Firma. Nachdem

ich mit ihm meine Vorstellungen über die Zielsetzung des Praktikums besprochen und

er meine anfänglichen Zweifel an einem längerem Aufenthalt in China zerstreut hatte,

einigten wir uns auf eine Zusammenarbeit in seiner Firma über einen Zeitraum von

sechs Monaten, d.h. weit mehr als die vorgeschriebene Mindestdauer.

Das Hauptaugenmerk des Praktikums sollte in der Entwicklung von Telefon-

applikationen (z.B. IPhone) und webbasierten Anwendungen liegen, sowohl im Front-

als auch im Backend. Darüber hinaus wollte ich als Teil eines Teams an der

Produktion eines größeren Projektes beteiligt sein, um Erfahrungen in der

Organisation und Umsetzung derartiger Aufgaben zu sammeln. Im Zusammenhang

mit diesen Wünschen versprach ich mir eine Erweiterung meiner Fähigkeiten in

verschiedenen Programmiersprachen wie Java, PHP und vielleicht auch C/C++. Als

besonderen Nebeneffekt erhoffte ich mir auch eine deutliche Verbesserung meiner

Kenntnisse der englischen Sprache.

All dies schien die Firma Comberry Ltd. aufgrund der Vielfältigkeit der Projekte zu

bieten. Des Weiteren wurde mir eine gute Organisation der alltäglichen Dinge, z.B.

das Stellen einer Unterkunft nach “gehobenen westlichen Standard”, unterbreitet und

der positive persönlich Eindruck durch die Telefongespräche mit dem Besitzer des

Unternehmens ließen mich zu der Entscheidung kommen, für ein halbes Jahr nach

China zu gehen.

3

Page 4: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Porträt der Firma

Die Firma Comberry Ltd. wurde im Jahr 2004 in London gegründet. Die Besitzer der

Firma sind Martin Hackl (CEO) und Godfrey Du (Management). Der Hauptsitz der

Firma ist in London. In Deutschland gibt es eine Zweigstelle um den Kontakt mit der

Kundschaft, welche zum größten Teil aus Deutschland ist, zu pflegen. Die Produktion

und Umsetzung aller Projekte findet (aus wahrscheinlich finanziellen Gründen) in

Shanghai statt.

Das Unternehmen hat ein breites Spektrum an Dienstleistungen und Eigenent-

wicklungen zu bieten. In der näheren Vergangenheit wurden zahlreiche Projekte für

Internetanwendungen umgesetzt. Als Beispiele wären hier die Internetplattform

“TVman”, die browserbasierte Live Community “Vimp” und das Media CMS “OS

Tube” zu nennen.

Derzeit entwickelt das Unternehmen in Eigeninitiative einen internetbasierten

Vermittlungsservice mit VoIP-Telekommunikation und macht erste Gehversuche auf

dem Sektor der Telefonapplikationen für die Firmen Nokia und Apple. Nebenher läuft

als eigenständiger aber von der Firma kontrollierter Teil ein Unternehmen, welches

sich auf die Produktion von Adobe Flash-Animationen im Comic-Bereich

spezialisiert hat. Dieser Teil der Firma wird durch chinesische Führungskräfte nach

Vorgaben durch Martin Hackl und weiteren Partnern aus Deutschland geleitet und ist

maßgeblich an der Umsetzung einer e-Learning Plattform, finanziert durch die Firma

Bertelsmann, beteiligt.

In näherer Zukunft ist eine Ausweitung des Vermittlungsserviceprojektes zu erwarten.

In diesem Jahr ist darüberhinaus noch die Entwicklung einer Zeichentrick-Filmserie

geplant.

4

Page 5: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Das Team – Organisation der Firma

Die Führungsposition in der Entwicklung und bei der Verteilung der Aufgaben nimmt

Martin Hackl ein. Er gibt die Projekte vor und vergibt Teilaufgaben an die einzelnen

Mitarbeiter. Mit ihm habe ich jeweils direkt meine jeweils nächsten Aufgaben

besprochen und auch bei ihm nach Beendigung des Projektes / der Teilaufgabe

abgegeben bzw. vorgeführt.

Organigramm

5

Page 6: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Einarbeitungsphase

Einrichtung der Arbeitsumgebung

Als meine erste Aufgabe galt es mir meinen eigenen Arbeitsplatz einzurichten. Mir

wurde ein handelsüblicher Rechner zur Verfügung gestellt auf dem das Betriebs-

system Windows XP bereits vorinstalliert war. Um diesen Rechner nutzen zu können

wurde mir ein User-Account im Firmennetzwerk eingerichtet. Ich musste mich selbst-

ständig in das firmeninterne Bug-Reporting-System “Mantis” einarbeiten. Des

Weiteren galt es, die von meinen Kollegen genutzten Kommunikationstools wie

Skype und Pidgin zu installieren und einen Account im e-Mail-Versandsystem

einrichten zu lassen.

Einarbeitung in die Benutzerverwaltung

In der Zeit meines Praktikums sollte ich jederzeit in der Lage sein neue Nutzer im

Firmennetzwerk anzulegen und diese mit entsprechenden Zugriffsrechten zu

versehen. Die Verwaltung der User-Accounts wird mit dem Programm “Active

Directory Users and Computers” der Firma Microsoft verwendet. Es bestand bis zu

diesem Zeitpunkt keinerlei Dokumentation, somit erstellte ich eine Schritt-für-Schritt

Anleitung mit Screenshots zum Anlegen neuer User.

Die gleiche Aufgabe stellte sich für das Anlegen von neuen Mail-Accounts für neue

Mitarbeiter. Als primäres e-Mail-Versandsystem wird ein Produkt von Google

genutzt. Als Fall-back-System wird zusätzlich “Microsoft Exchange Server 2007”

verwendet. Auch für dieses Programm erstellte ich nach Einarbeitung eine Anleitung

um die Arbeit meinen Nachfolgern zu erleichtern.

(Für beide Anleitungen sehe ich an dieser Stelle keinen praktischen Zweck diese hier

aufzuführen deshalb verzichte ich darauf.)

Backupsystemverwaltung

Zu Beginn musste festgestellt werden, welche Daten gesichert werden sollten. Als

meine Aufgabe in Zusammenarbeit mit einem erfahreneren Kollegen stellte sich die

Sicherung der Datenbanken auf dem Linux Web-Server heraus. Wir erstellten einen

Cron-Job im Ordner “/etc/cron.daily/” auf dem Server.

6

Page 7: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Script:

Dieses Script macht einen Dump aller Datenbanken und schreibt diese in eine

einzelne Datei. Der Dateiname enthält dabei das Datum und die Uhrzeit des Backups.

Das Backup wird komprimiert und im Ordner “/var/www/html/mysql_backup/”

gespeichert.

7

#!/bin/shdate=`date -I`mysqldump --all-databases | gzip > /var/www/html/mysql_backup/backup-$date.sql.gz

Page 8: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Angebotserstellungen

Angebot Renommee

Um ein Angebot im Namen der Firma zu erstellen wird das Programm “Microsoft

Excel” verwendet. Für dieses Programm stand zu Beginn meines Praktikums bereits

ein von meinem Vorgänger erstelltes Makro bereit. Dieses Makro enthält eine auto-

matische Zusammenrechnung der Stunden, Arbeitskosten und die automatisierte

Seitenumbrucheinstellung. Nach Erforschung des Programms konnte ich mit der

eigentlichen Arbeit beginnen.

Um festzustellen, welche Arbeitsabläufe in Rechnung gestellt werden müssten war es

notwendig, die Mußkriterien des Projektes heraus zu finden. Dazu wurden mir

mehrere e-Mails des Kunden übermittelt welche ich durchlesen und verstehen musste.

Als Anhaltspunkte für den Umfang der einzelnen Arbeiten erhielt ich Einblick in viele

verschiedene ältere Angebote der Firma und konnte somit die Anzahl der

Arbeitsstunden festlegen. Zuletzt wurde das Angebot mit dem Chef besprochen und

korrigiert. Der gesamte Prozess erstreckte sich über zwei Arbeitstage.

Angebot Ospidali Psalmendatenbank

Als neue Aufgabe sollte ich ein weiteres Angebot in ähnlicher Form erstellen. Dieses

Mal lag ein vom Kunden erstelltes “Pflichtenheft” vor. Somit bestand meine

Hauptaufgabe im Studium dieses Dokumentes. Leider war dies nicht im Entferntesten

für die Softwareentwicklung geeignet. Es befanden sich sehr viele Ungereimtheiten

und nicht eindeutige Aussagen bzw. Wünsche des Kunden in diesem Dokument somit

verbrachte ich zwei Arbeitstage mit dem Herausfinden “was die eigentlich wollen”.

Letztendlich konnte ich dieses Projekt in 11 große Arbeitsschritte einteilen.

Einrichten der Entwicklungsumgebung

Datenbankentwurf

Layout-Gestaltung und Stylesheet-Erstellung

Erstellung der Navigation

...

8

Page 9: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Mit wurde bei diesem Angebot bewusst, dass viele Arbeitsschritte sich von Projekt zu

Projekt immer wieder wiederholen bzw. sich sehr ähneln. Daher war es einfach sich

durch Sichtung der alten Angebote ein Bild vom Umfang des Projektes zu machen.

Des Weiteren habe ich bei der Erstellung dieses Angebotes gelernt, dass viele Kunden

es vorziehen, ein sogenanntes Pflichtenheft in laienhafter Form zu erstellen und dies

an eine Firma zur Angebotserstellung weiterleiten. Das dabei von professionellen

Softwareentwicklern erstellte Angebot wird daraufhin häufig als Basis für ein neues

Pflichtenheft missbraucht. Dieser Umstand erschwert es den kleinen und mittel-

ständischen Unternehmen sich am Markt zu behaupten.

Angebot Helgaa

Die Firma hatte in der Vergangenheit schon einmal an dem Projekt “Helgaa”

gearbeitet. Dieses scheiterte jedoch, da es für die Auftraggeber finanziell nicht weiter

tragbar war. Der Grund war schlicht eine fehlende Übersicht über die Vielzahl der

einzelnen Aufgabengebiete. Es gab nur ein mangelhaftes Pflichtenheft.

Diese Auftraggeber kamen erneut mit einer komplett neu erstellten Dummy-Website

auf unsere Firma zu und erbaten ein Angebot dazu. Als meine Aufgabe stellte sich die

Erforschung dieser Website und die Erstellung eines Angebotes heraus.

Bei dem Projekt Helgaa handelt es sich um eine Online-Community mit Browser-

spieloberfläche in Form einer Flash-Stadtkarte. Die Website besteht aus einer

Startseite mit Login-Möglichkeit. Nach dem Login kann man ähnlich der Online-

Community “Facebook” mit anderen Mitspielern kommunizieren, handeln und

spielen. Als besonderes Herausstellungsmerkmal steht dabei die Spieloberfläche im

Vordergrund, auf der jeder Mitspieler nach bestimmten Parametern Objekte platzieren

und verändern kann.

Nach sechs Arbeitstagen der Analyse und dem Versuch der genauen Beschreibung

des gesamten Projektes wurde ich durch meinen Chef in der Arbeit unterbrochen.

Dieses Projekt ist extrem umfangreich und durch den Auftraggeber leider nicht

eindeutig beschrieben, dass nur ein Teilbereich der gesamten Community von der

Firma umgesetzt werden würde. Das von mir erstellte Angebot umfasste mehr als 15

Seiten mit verschiedensten Aufgabenbereichen. Nur durch eine exakte Beschreibung

wird dieses Projekt umsetzbar sein.

9

Page 10: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Projekt DocSEO

Beschreibung des Projektes

10

Bei dem Projekt handelt es sich um eine professionelle Klientenvermittlung, welche

die Vorteile von Telefon und Internet miteinander verknüpft. Pro Vermittlung eines

Klienten wird dem Kunden ein einmaliges Erfolgshonorar berechnet. Schaffen es die

Vermittler (die Firma Comberry) nicht, neue Klienten für einen Kunden zu werben, so

fallen für diesen auch keine Kosten an.

Das Telefonvermittlungssystem (TVS) ist das Herzstück des Internet-basierten

Klientenvermittlungssystems. Damit ist es möglich, teilnehmenden Kunden

gegenüber eindeutig zu beweisen, wie viele Vermittlungen durch das Engagement der

Vermittler tatsächlich zustande gekommen sind.

Jeder Kunde erhält 2 kostenfreie Rufnummern für seine Homepage bzw. Flyer und

andere Werbemittel (0800er Servernummern, etwa 0800/1234567-101 und

0800/1234567-102). Eine Nummer dient zur Terminvereinbarung für

Privatklienten, die andere zur Terminvereinbarung für weitere Klienten. Die

Nummern sind direkt mit dem zentralen TVS der Vermittler in Luxemburg

verbunden. Das System basiert auf einer modifizierten Version der freien VoIP-

Telefonanlage Asterisk. Diese Software nimmt eingehende Gespräche automatisch

entgegen und ordnet sie anhand der Durchwahl einem Kunden zu.

In diesem Projekt handelt es sich bei den Kunden um Arztpraxen, bei den Klienten

um private bzw. Kassen-Patienten. Der Klient(Patient) hört zunächst eine

Begrüßung wie etwa „Herzlich willkommen in der gynäkologischen Praxis Dr.

Meier“. Daraufhin wir der Klient dazu aufgefordert, eine Angabe darüber zu

machen, ob er schon einmal zu Gast in der Praxis war oder ob er ein neuer Patient

ist: „Falls Sie zum ersten Mal einen Termin bei uns vereinbaren, bleiben Sie bitte

einfach in der Leitung. Falls Sie bereits Patient bei uns sind, drücken Sie bitte die

1“.

Page 11: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

11

Das Vermittlungssystem hat nun folge Informationen gesammelt:

Telefonnummer des Anrufers (sofern übermittelt)

Name des Inhabers des Telefonanschlusses (falls im Telefonbuch

eingetragen)

Versicherungsstatus des Anrufers (privat oder gesetzlich)

Kundenstatus des Anrufers (neuer Patient oder wiederkehrender

Patient)

Der nächste Schritt ist die Vermittlung des Gesprächs mit der entsprechenden

Arztpraxis. Der Anrufer hört in der Zwischenzeit eine Ansage: „Bitte haben Sie einen

Moment Geduld. Eine Sprachstundenhilfe ist gleich für Sie da.“

Das TVS kontaktiert nun die Arztpraxis. Sobald der Anruf von einer

Sprechstundenhilfe entgegengenommen wird, gibt das TVS per Ansage alle

relevanten Informationen zum Anrufer durch (Beispiel): „Patientenvermittlung.

Anrufer ist ein neuer Privatpatient. Verbinde…“. Die Vermittlung ist damit

abgeschlossen.

Das TVS speichert nun lediglich noch die Dauer des Gesprächs zwischen Anrufer und

Sprechstundenhilfe. Sollte das Gespräch weniger als 15 Sek. andauern, wird nicht

davon ausgegangen, dass ein Termin vereinbart wurde.

Detailierte Statistiken zu jeder Arztpraxen sind Grundlage für die Abrechnung mit der

teilnehmenden Arztpraxen. Die für die Statistiken erforderlichen Daten über die

einzelnen Telefonate werden von dem TVS vollautomatisch für eine weitere

Auswertung in einer Datenbank abgespeichert.

Detailierte Statistiken zu jeder Arztpraxen sind Grundlage für die Abrechnung mit der

teilnehmenden Arztpraxen. Diese werden vom TVS voll-automatisch erzeugt.

Page 12: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Entwicklungsumgebung

VM-Ware Ubuntu-Betriebssystem in der VM laufend Xlite – Softphone Asterisk open source PBX

Auf meinem PC war schon durch einen Praktikanten, welcher vorher an diesem

Projekt erste Tests gemacht hat, eine Virtual Maschine(VM) auf dem Rechner

installiert. In der VM läuft Ubuntu. Die Asterisk-Software der Version 1.4 war bereits

vorinstalliert.

Vorstellung der Software Asterisk

Asterisk ist eine Software, welche alle Moeglichkeiten einer herkoemmlichen

Telefonanlage bereitstellen kann. Sie unterstuetzt Verbindungen mittels Voice-over-

IP (VoIP) in Verbindung mit unterschiedlichen Protokollen. Durch das breite

Spektrum an Funktionen, Schnittstellen und unterstuetzten Protokollen und durch das

leichte Manipulieren mittels einer eigenen Scriptsprache fiel die Entscheidung auf

eben diese Software, um mit ihr das Projekt umzusetzen. Als Uebertragungsprotokoll

benutzen wir in fuer die Anrufe das Setion Initiation Protocol (SIP) welches sich

durch verschiedene Vorzuege als das beste heraus stellte.

Installation von Asterisk Version 1.6

Um möglichst alle Schritte zum Aufsetzen der Software selbst zu erlernen entschied

ich mich die vorinstallierte Software zu deinstallieren und selbst von Grund auf die

Anlage neu einzuspielen. Dies ist nach Anleitung denkbar einfach. Zuerst muss die

Software von entsprechender Stelle heruntergeladen und danach installiert werden.

#cd /usr/src/usr/src# wget http://downloads.digium.com/pub/asterisk/asterisk-1.6-current.tar.gz/usr/src# tar xvzf asterisk-1.6-current.tar.gz/usr/src# cd asterisk-1.6*usr/src/asterisk-1.4.10# ./configureusr/src/asterisk-1.4.10# makeusr/src/asterisk-1.4.10# make install

12

Auf dem Arbeitsrechner ist das Betriebssystem Windows XP Professional 64Bit

Version installiert. Für die Arbeit an der virtuellen Telefonanlage werden

folgende Programme benötigt / benutzt:

Page 13: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Funktionsweise von Asterisk

Um die Software seinen Wünschen entsprechend zu verändern muss man in den dafür

vorgesehenen Konfigurationsdateien (zu finden unter ‚/etc/asterisk/‘) programmieren.

Das Herzstück der Software stellt dabei die Datei ‚extensions.conf‘ dar. In dieser wird

der sogenannte dialplan (deutsch: Wählplan) festgelegt. Hier findet die Zuweisung

von Nummern und Telefonen statt. In der ‚sip.conf‘ werden die Telefone, mit denen

man mit dem System kommunizieren kann, fest. Zur Erklärung der Funktionsweise

diente in meinem Falle ein kleines Beispiel.

Zuerst wird ein Telefon in der ‚sip.conf‘ definiert.

[general]port=5060bindaddr=0.0.0.0context=sonstige[2000]type=friendcontext=meine-telefonesecret=1234host=dynamic

Danach wird im dialplan im dafür vorgesehenen Kontext die gewünschte Funktion

festgelegt.

[sonstige][meine-telefone]exten => 1001,1,Answer()exten => 1001,2,Playback(hello-world)exten => 1001,3,Hangup()

Es muss nun ein Softphone, in meinem Fall die Software Xlite, installiert und

entsprechend konfiguriert (Username:2000, Passwort:1234, IP-Adresse des Asterisk-

Servers usw.) werden. Dann kann man Asterisk starten.

etc/asterisk# asterisk –vvvvvc

Nun befindet man sich auf dem Command Line Interface (CLI) von Asterisk. Hier

kann man verschiedene Befehle an die Software übergeben und den aktuellen Ablauf

des Programms mit verfolgen. Wenn man nun das Softphone richtig eingestellt hat,

kann man auf der CLI folgende Ausgabe sehen.

*CLI> -- Registered SIP ’2000’ at 192.168.0.69 port 5060 expires 120 -- Unregistered SIP ’2000’

13

Page 14: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Ablaufplan des Programms

Nach den ersten erfolgreichen Tests mit Asterisk musste festgelegt werden, wie der

eigentliche Ablauf des von mir zu erstellenden Programms sein sollte. Hierzu

erläuterte mir mein Vorgesetzter seine Vorstellungen und ich visualisierte diesen

Ablaufplan mit der Software ‚Microsoft Office Visio 2007‘.

Die Queues sind Warteschleifen. In diese wird der anrufende Patient geschickt und

soll Musik zu hören bekommen solange er auf Verbindung mit der Arztpraxis wartet.

Das System soll im Hintergrund automatisch die entsprechende Praxis anrufen. Um

Missverständnissen bei der Verbindung des Anrufers mit dem Angerufenen

vorzubeugen und die Praxisangestellten auf das zu erwartende Gespräch vor-

zubereiten, soll dem Angerufenen eine Soundfile vorgespielt werden.

14

Page 15: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Warteschleifen

Die Warteschleifen (Queues) haben in diesem Programm eine ausschlaggebende

Bedeutung. Sie werden vom Anrufer angerufen. Dieser kann dann eine vordefinierte

Warteschleifenmusik hören während das Programm den Wählvorgang automatisch

übernimmt. Die Queues werden in der ‚queues.conf‘ definiert und mit Eigenschaften

versehen. In meinem Fall benötige ich vier Queues. Dies ergibt sich aus dem Status

der Versicherung und daraus, ob der Patient schon registriert ist oder eben nicht. Als

geeignete Funktion zur Ankündigung des zu erwartenden Patiententyps stellte sich

das Abspielen von announcements (Deutsch: Ankündigungen) heraus.

[49030123_old_private]

member => SIP/2000

announce = comberry/hellodoc_old_private

[49030123_old_public]

member => SIP/2000

announce = comberry/hellodoc_old_private

...

Die zu sammelnden Daten

Um eine Ausgangsbasis für eine Rechnungsstellung zu haben ist es notwendig, die

Daten über eine erfolgreiche Verbindung zu ermitteln. Die Software Asterisk bringt

standardmäßig eine Log-Funktion der Telefonverbindungen mit. Diese werden in

einer CSV-Datei mit dem Namen ‚Master.csv‘ gespeichert welche sich im Ordner

‚/var/log/asterisk/cdr-csv/‘ befindet. Des Weiteren wird die Speicherung folgender

Daten vom System verlangt:

Telefonnummer der jeweils angerufenen Praxis

Telefonnummer des Anrufers (sofern übermittelt)

Zeit des Telefongesprächs (nur die reine Verbindungszeit in der beide

Gesprächspartner wirklich miteinander verbunden sind)

Datum und Uhrzeit des Gesprächs

15

Page 16: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Aufsetzen einer Datenbank

Erst durch eine Datenbank (DB) wird es für alle Module in dem gesamten Projekt

möglich, Daten miteinander auszutauschen, anzulegen oder zu löschen. In

verschiedenen Anleitungen zu der Asterisk-Software wird empfohlen, eine Postgre-

SQL-DB zu benutzen, somit entschied ich mich eine solche in meiner virtual machine

zu installieren. Es stellte sich als äußerst schwierig heraus, eine Verbindung zwischen

Asterisk und der aufgesetzten DB herzustellen. Nach einer Woche crashte die gesamte

Installation der Asterisk-Software sodass ich mich für eine Weiterarbeit auf dem

eigentlichen Projekte-Server in Luxemburg entschied. Auf dieser Plattform ist

ohnehin schon ein MySQL-DB-Server installiert, welcher vom gesamten Projekt

genutzt wird.

Die Arbeitsschritte für eine erfolgreiche Kommunikation von Asterisk mit der DB

fassen sich in folgende Stichpunkte zusammen:

Installation eines ODBC-Layers für MySQL (MyODBC)

Konfiguration der entsprechenden Dateien in Asterisk

Anlegen der gewünschten DB mit den dazugehörigen Tabellen

Da die Konfiguration sehr aufwändig war und viel Zeit gekostet hat soll die folgende

Grafik die Kommunikation der einzelnen Dateien veranschaulichen und als

Dokumentation dienen:

16

Page 17: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Auslagern der Call-Detail-Records (CDR)

Die Daten werden zur besseren Analyse in eine DB ausgelagert. Dazu musste eine

Tabelle mit dem Namen ‚cdr‘ in der DB ‚asterisk‘ auf dem Projekte-Server angelegt

werden. Die Tabelle wurde von mir nach Vorgaben von der Website

‚http://www.voip-info.org/wiki-Asterisk+cdr+mysql‘ erstellt. Darüberhinaus muss in

der Datei ‚cdr_odbc.conf‘ noch die Verbindung zur DB hergestellt werden. Somit

werden sämtliche Daten über Telefongespräche, welche über die Anlage geführt

werden, in einer Tabelle gespeichert. Nach umfangreichen Tests stellte sich jedoch

heraus, dass die Daten nicht zur genauen Analyse ausreichen. Das Problem liegt in

der Speicherung der Zeit der Verbindung des Anrufers mit dem System. Es wird von

Asterisk nicht unterschieden, ob der Anrufer gerade nur mit der Software verbunden

ist oder ob ein echtes Telefongespräch zwischen Patient und Arztpraxis zustande

kommt.

Da die Gespräche mit den Praxen jeweils über eine Queue geführt werden, müssen die

Events, ausgelöst durch die Queues, analysiert werden. Derzeit existiert (noch) keine

optimale Lösung für eine Speicherung der Events der Queues in einer DB. Asterisk

legt eine log-Datei namens ‚queue_log‘ im Ordner ‚/var/log/asterisk/‘ an. Um diese

Daten ebenfalls in die DB auszulagern muss man selbst ein Script anlegen, um die

Daten automatisch in eine Tabelle zu speichern. Ich habe mich für ein Perl-Script,

welches ständig im Hintergrund läuft, entschieden. Es gibt ebenfalls die Möglichkeit

in der ‚extconfig.conf‘ das Übertragen der Logs in eine Tabelle freizuschalten, diese

hat aber bei dieser Installation nicht funktioniert. In beiden Fällen muss man in der

DB eine entsprechende Tabelle vorher anlegen. Diese hat den Namen ‚csr_queue‘.

Eine gute Beschreibung zum Anlegen der DB-Tabelle findet man unter

‚http://www.voip-info.org/wiki/view/Asterisk+queue_log+on+MySQL‘.

17

Page 18: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Realtime – Auslagern der Konfigurationsdateien

Die Software Asterisk bietet die Möglichkeit der Auslagerung einiger Konfigu-

rationsdateien, welche im Ordner ‚/etc/asterik/‘ zu finden sind, in eine DB. Dies wird

Realtime genannt. Es gibt statisches Realtime, welches im Prinzip nur anstelle der

Dateien im genannten Ordner die entsprechenden Tabellen in der DB ausliest, und es

gibt dynamisches Realtime, was das Nachladen von neuen Informationen ohne einen

Neustart der Software in Echtzeit erlaubt. Da das System jederzeit mit neuen Daten

umgehen soll, ist die zweite Variante das Mittel der Wahl.

Für eine neue Praxis werden folgende Bestandteile angelegt:

Eintrag in die ‚sip.conf‘, welches das Telefon einer Praxis definiert

Einträge in die ‚queues.conf‘, welche die Warteschleifen für eine Praxis

definiert

Eintrag in die Tabelle ‚available_numbers‘, welche alle anwählbaren 0800-

Telefonnummern definiert (keine Asterisk-Konfiguration)

Eintrag in die Tabelle ‚phone_numbers‘, welche die 0800er-Nummer den

Praxisnummern und einen Typen zuordnet (keine Asterisk-Konfiguration)

Um dem System mitzuteilen, dass Konfigurationen in der DB zu finden sind, muss

man die ausgelagerten conf-Dateien in der ‚extconfig.conf‘ eintragen, z.B. muss man

für die ‚sip.conf‘ einen solchen Eintrag schreiben:

sipusers => odbc,asterisk,sip

sippeers => odbc,asterisk,sip

Damit werden SIP-Telefone, welche nicht in der ‚sip.conf‘ eingetragen sind, vom

System aber als Ziel angesteuert werden sollen, in der entsprechenden Tabelle

gesucht. Der Einfachheit halber habe ich mich für eine Kombination von peers

(können vom System angerufen werden) und von users (können über das System

anrufen) in einer Tabelle entschieden. Die Sip-Tabelle habe ich nach der Anleitung zu

finden unter ‚http://www.voip-info.org/wiki-Asterisk+RealTime+Sip‘, die Queue-

Tabelle nach Anleitung von

‚http://www.voip-info.org/wiki/view/Asterisk+RealTime+Queue‘,

angelegt.

18

Page 19: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

DB-Abfragen im dialplan

Zur flexiblen Gestaltung des dialplans kann man nun die Einträge in der DB benutzen.

Mit Asterisk kann man sowohl lesend als auch schreibend auf die Daten zugreifen.

Diese Datenbankenzugriffe werden in der Datei ‚func_odbc.conf‘ definiert. Ein

Beispiel für einen DB-Lesezugriff:

[GermanPhoneNumber]

prefix=get

dsn=asterisk

read=SELECT german_number FROM phone_numbers WHERE direct_dial = '${ARG1}'

Der entsprechende Aufruf im dialplan sieht dann folgendermaßen aus:

exten => _498002200120XXX,n,Set(GLOBAL(PHONENUMBER)=${get_GermanPhoneNumber(${EXTEN})})

Da der schreibende Zugriff zwar theoretisch möglich ist. aber von der Syntax her

unnötig kompliziert, habe ich mich entschieden, die Daten per Aufruf eines externen

Skriptes in die DB einzutragen.

Asterisk-Gateway-Interface

Das Asterisk-Gateway-Interface (AGI) ist eine Schnittstelle, mit der man aus dem

dialplan direkt externe Programme / Skripte ausführen kann. Diesen kann man

Parametern übergeben und sich auch Werte in den dialplan zurückgeben lassen. Mit

dem AGI kann man die meisten modernen Programmiersprachen ausführen lassen

wie Perl, PHP, Java etc. In diesem Projekt starte ich mehrere kleinere php-Scripte um

Werte in die DB zu übertragen. Ein Aufruf aus dem dialplan sieht wie folgt aus:

exten => check,n,AGI(checkOpeningTime.php|${PHONENUMBER})

Die Skripte liegen standardmäßig im Ordner ‚/usr/share/asterisk/agi-bin/‘. Die

Übergabe der Werte aus den Skripten erfolgen über die Kommunikationskanäle

STDIN, STDOUT und STDERR. In meinem Fall benutzte ich php-Skripte, d.h. die

Ausgabe des Skriptes lautet dann bspw. so:

echo "exec Set AUSGABE=$speech";

Der Wert muss dann noch im dialplan entgegengenommen werden.

exten => notavailable,4,Set(SPEECH=${AUSGABE})

exten => notavailable,5,Playback(${SPEECH})

19

Page 20: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Verbindung mit dem deutschen Festnetz

Als eine meine ersten Aufgaben war das Auffinden eines geeigneten Partners für

unser Vorhaben. Wir benötigen eine Firma, welche uns eine 0800er Nummer mit

1000 Durchwahlen zu einem möglichst günstigen Preis anbieten kann. Des Weiteren

benötigen wir einen Partner, welchen wir als sogenanntes SIP-Gate nutzen können,

d.h. welche die Anrufe aus dem deutschen Festnetz entgegennimmt und via VoIP an

unsere statische IP weiterleitet. Mit der Firma Outbox AG fand ich die geeignete

Lösung.

Outbox leitet nun alle Gespräche über die von der Firma Comberry gemietete 0800er-

Nummer an unser System weiter. Diese werden daraufhin verarbeitet und dann wieder

an Outbox zurückgesandt von wo wie dann wiederum in das deutsche Festnetz

eingespeist werden.

20

Page 21: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Zusammenfassung

Das Projekt DocSEO ist bis zum Ende meines Praktikums noch nicht vollständig

abgeschlossen. Es besteht aus vielen verschiedenen Modulen welche in der

Entwicklung noch nicht fertig sind denn das Projekt ist eine Eigenentwicklung der

Firma und somit in der Priorität weiter hinten angestellt als andere Projekte.

Die Aufgaben, welche mir gestellt wurden, habe ich nach bestem Wissen und Können

umgesetzt, allerdings wurden zwischenzeitlich auch immer mal wieder die konkreten

Wünsche der Funktionalitäten geändert was einzelne Aufgaben zeitlich in ihrer

Umsetzung sehr gedehnt hat.

Mein Chef hat eine viele gute Ideen, bei denen mir es auch Spaß gemacht hat, an der

Umsetzung mit beteiligt gewesen zu sein. Zum Beispiel sollte es möglich sein, die

Öffnungszeiten einer Praxis per dynamischer Bandansage sich anzuhören. Diese

Funktionalität ist in dem von mir programmierten Telefonsystem zwar jetzt gegeben,

muss aber vorerst auskommentiert bleiben, da die Informationen zu den

Öffnungszeiten noch nicht von dem Projektkern bereitgestellt werden können.

Zusammenfassend kann ich sagen, mein Teilprojekt soweit abgeschlossen zu haben

und es gut dokumentiert an meinen Nachfolger (ebenfalls von der FHTW) nach zwei-

wöchiger Einarbeitungszeit zur weiteren Bearbeitung zu übergeben. Es bleiben noch

einige neue Ideen unbearbeitet, da die Zeit meines Praktikums abgelaufen ist.

21

Page 22: Praktikumsbericht als docx - HTW Berlin - Hochschule für Technik

Fazit

Die Firma Comberry hat mir mit den übergebenen Aufgaben viel Vertrauen

entgegengebracht. Die meiste Zeit war ich beim Erlernen der neuen Techniken und

beim Recherchieren auf mich selbst gestellt, was sich im Nachhinein als eine mir sehr

gelegene Arbeitsweise herausgestellt hat.

Ich kann jetzt von mir behaupten, mir professionelles Wissen in der VoIP-Telefonie

angeeignet zu haben und darüberhinaus auch viel über Linux Ubuntu gelernt zu

haben. Desweiteren habe ich meine Kenntnisse in der Programmiersprache PHP

erweitert und bin mit dem Datenbankmanagementsystem MySQL vertraut. Gern hätte

ich auch in anderen Programmiersprachen mein Können verbessert, leider blieb mir

das aufgrund des Projektes verwehrt.

Die Volksrepublik China ist ein hochinteressantes Land mit sehr eigenen

Charakteristika. Am meisten bin ich wohl von den sozialen Eigenschaften der

chinesischen Bevölkerung beeindruckt, welche nicht unterschiedlicher zu der

europäischen sein könnten. Ich muss dazu allerdings sagen, dass ich die letzten sechs

Monate ausschließlich in riesigen Metropolen verbracht habe, deshalb kann ich nur

schwer über China als ganzes urteilen. Nur soviel: ich bin ohne Vorurteile in dieses

Land gegangen doch die Respektlosigkeit dem Leben anderer gegenüber, mangelnde

Hygiene und die Arbeitseinstellung der chinesischen Bevölkerung werde ich nur

schwer vergessen können.

Ich bin an einer weiteren Zusammenarbeit mit der Firma Comberry interessiert, da

mich die Dynamik der Firma und die Aufgabengebiete faszinieren. Ich hoffe mit

meiner Arbeit einen produktiven Beitrag für die Firma geleistet zu haben und bin mir

sicher, dass die freiwillige Verlängerung der Praktikumszeit sich für mich bezahlt

gemacht hat.

22