Endkundenprojekt

Asterisk Telefonanlage mit intelligenter Anrufer Steuerung

Zürich, Uerikon  ‐ Remote
Dieses Projekt ist archiviert und leider nicht (mehr) aktiv.
Sie finden vakante Projekte hier in unserer Projektbörse.

Beschreibung


wir haben diverse Tisch Telefonapparate und Software Telefone mit X-Lite und Zoiper an verschiedenen Standorten.

wir haben einen Single Point of Contact für unsere Kunden und somit nur eine einzige Rufnummer für unsere Kunden für incomming calls.
Auch für "outgoing calls" haben wir nur eine einzige Rufnummer für Aussendienst und Innendienst Mitarbeiter.

das verursacht ein paar Probleme.

Wenn uns ein Kunde anruft, dann gelangt der Kunde bei jedem Anruf an einen anderen Mitarbeiter.
Das soll nicht mehr so sein, der Kunde immer an den gleichen Mitarbeiter gelangen.

Als Telefonanlage haben wir eine virtuelle PBX. Wir haben Asterisk 16.4.0 auf einem Hetzner Server mit Fedora 30.
es ist fail2ban und iptables installiert
es ist auch mySQL installiert.

allerdings sind noch ein paar technische Dinge nicht korrekt umgesetzt.
Auch sind ein paar Business Logik Dinge noch gar nicht begonnen worden umzusetzen.

z.b. fail2ban soll mit an abuseIP automatisch melden
z.b. soll iptables mit cmd-firewalld ersetzt/ergänzt werden
z.b. soll die Firewall so gesetzt werden "deny, allow only a few IPs", aktuell ist es allow to everyone, deny after a few malicious attemps
z.B. soll die mySQL Datenbank sich (über OpenVPN) mit einer zweiten mySQL Datenbank synchronisieren.


es benötigt also Skills für Asterisk, Linux, php, mySQL, HTML5.

ein bestehendes WebApp soll ergänzt werden:

- Rolle "Administrator" auf https://admin.helpcorner.com für die Konfiguration
- Tabs "Wählregeln" und Tabs "Endpoints"

der "Administrator" soll (ähnlich wie bei der Software von starface.de) jedoch browserbasiert, einrichten können:
- neue Mitarbeiter erfassen/anpassen
- zuweisen von Rollen an Mitarbeiter ("Aussendienst 1st Level" "Innendienst 2nd Level" "Buchhaltung" usw.)
- Endpoints/Peers erstellen, interne Rufnummer frei vergeben können, Passwörter setzen
- Endpoints an Mitarbeiter zuweisen

- Wahlregeln setzen in Tabs "Wählregeln"

das Problem:
- wenn ein Kunde uns anruft, wissen wir nicht, welcher Mitarbeiter zuständig ist und somit auf welchem Telefonapparat es klingeln soll. Es klingelt somit einfach mal in die Runde.

meine angedachte Lösung:
- Asterisk macht zuerst eine mySQL Abfrage und schickt zuerst die Kunden CallerID an die mySQL Datenbank
- die mySQL Datenbank sucht und liefert entsprechend ein anderes Resultat

- um welche Uhrzeit ruft der Kunde an
- kennen wir die Rufnummer vom Kunden/ist es ein bestehender Kunde oder ist es ein Neukunde?
- hat ein Mitarbeiter in den letzten x Minuten/Stunden versucht diesen Kunden zu erreichen?
- welches Team ist zuständig?
- hat der Kunde einen aktuellen Auftrag?
- hat der Kunde offen Ausstände/Rechnungen nicht bezahlt oder hat der Kunde den Status "gesperrt"?

- Asterisk erhält von der mySQL Datenbank eine Liste mit z.B. 5 "Befehlen" (ev. in JSON), auf welchen Endgeräten/Endpoint/Peer es für wie lange klingeln soll und auf welchem nächsten Endgerät es danach allenfalls für wie lange klingeln soll, usw.

- Asterisk führt dann nur aus, was in der SQL Antwort drin ist.

die Idee ist dahinter ist:
Die Business Logik also nicht im Asterisk Dialplan zu haben, sondern sie soll im Webservice/Middleware/SQL-Antwort drin sein.


im ersten Schritt soll jedoch nur mal ein Mini Projekt umgesetzt werden als Teil der Gesamtlösung:
"Telefonanlage, die erkennt bei Rückruf wer einem gesucht hat"

- wenn ein Kunde anruft, dann klingelt es aktuell bei allen Endpoints, A, B, C, D, E, F usw. bzw. bei allen Endpoints die angemeldet sind.

Das soll nach dem "Schritt 1" vom ersten Mini Projekt nicht mehr so sein.
legen wir fest zur Veranschaulichung:
- Endpoint A, B, C gehört Mitarbeiter 1
- Endpoint D und E gehörten Mitarbeiter 2

Endpoint A ist das Tischtelefon von Mitarbeiter 1
Endpoint B ist die X-Lite Software von Mitarbeiter 1 auf seinem Windows Laptop
Endpoint C ist die Zoiper App auf dem iPhone von Mitarbeiter 1
Endpoint D ist das Micro SIP Software von Mitarbeiter 2
Endpoint E ist Zoiper App auf dem iPhone von Mitarbeiter 2

- wenn nun Mitarbeiter 1 einen Kunden anruft und den Kunden nicht erreicht, dann soll ein Eintrag in mySQL gemacht werden und sich das memorisieren.
- ruft nun der Kunde innerhalb von einer bestimmten Zeit x zurück, dann soll es nur auf den Endpoints von Mitarbeiter 1 klingeln.
- es soll also entweder gleichzeitig auf A, B, C klingeln, oder es soll nur auf A klingeln, oder nur auf B oder nur auf C oder in einer bestimmten Reihenfolge: z.B. zuerst auf A, danach gleichzeitig auf B und C.
- oder es soll zuerst 3 mal auf A, dreimal auf B und dann dreimal auf C klingeln und erst danach wieder den Standard "Wählregel" folgen und somit klingle bei allen anderen Endpoints
oder:
- es soll automatisch erkennen können, welcher Endpoint hat Mitarbeiter 1 "zuletzt" benutzt und dann nur auf diesem einen Endpoint klingeln.

alle diese 3 grunsätzlichen "Wählregeln" sollte man definieren können und soll in mySQL und nicht im Asterisk Dialplan abgebildet sein.
man soll "Wählregeln" auf allen Ebenen definieren können:
- Mitarbeiter, Team, Projekt und Kunde
die Priorität ist: je "näher" beim Mitarbeiter, umso höher gilt die Priorität und "überschreibt" vorhergehende "Wählregeln"

leider kann weder starface noch 3CX das abbilden.
auch scheint es keine Software zu geben, die für die Nische "Single Point of Contact Telefonhotline" bereits auf dem Markt ist.
Also müsste ich eine Eigenentwicklung in Auftrag geben.
Als Option sehe ich durchaus die Möglichkeit, die von dir entwickelte Software als "Whitelabel" für meine Firma als Versuchskanninchen zu entwickeln und diese Nischen Software dann weiter zu verkaufen und zu vermarkten.

ich bin offen für viele Ideen und Umsetzungskonzepte, sofern die Rahmenbedingungen stimmen.
Start
ab sofort
Dauer
6 Monate
(Verlängerung möglich)
Eingestellt
16.08.2019
Ansprechpartner:
Alex Weber
Projekt-ID:
1811340
Vertragsart
Freiberuflich
Einsatzart
100 % Remote
Um sich auf dieses Projekt zu bewerben müssen Sie sich einloggen.
Registrieren