23. Apr 2013 09:04
Keine Kommentare

Click-to-call

Mit dem Begriff "Click to Call" bezeichnet man die Möglichkeit Anrufe direkt von Webseiten heraus auszulösen bzw. zu starten. Click-to-call Systeme sind auch häufig unter Begriffen wie Rückrufservice für Websites oder Rückruffunktion bekannt. Sie bieten den Kunden von Shops und Websites einen echten Mehrwert an, da der Kunde nicht die Telefonkosten tragen muss und davon ausgehen kann, dass er auch sofort mit Jemandem verbunden wird.

Click to Call mit PHP, Apache und Asterisk

Es gibt auch einige Click-to-Call Anbieter, die sich in diesem Feld tummeln mit ganz unterschiedlichen Möglichkeiten, Technologien und Features. Es gibt auch Skype-Buttons, einen ähnlich klingenden Google-Service für Werbeanzeigen und vieles mehr. Ich möchte jetzt eine Click-to-call Technologie vorstellen, die selten beschrieben wird, dafür aber sehr günstig ist und ausschließlich mit Open Source Software auf Linux (Windows geht aber zur Not auch) umgesetzt wird. An Hardware reicht der bestehende Webserver (Root-Server, Virtual oder Cloud) vollkommen aus! Eine Lösung, die also sowohl für Kleinunternehmer als auch Mittelständler sowie Webshops absolut ideal ist.

Click-to-call mit Asterisk, Apache und PHP

Raspberry Pi Server
Raspberry Pi Server

Apache und PHP ist die klassische und meistverbreitete Konstellation für Webanwendungen. In diesem Artikel möchte ich mich deshalb dem Thema widmen, wie man die Telefonanlage Asterisk für Click-to-call mit PHP verwendet. Ein Raspberry Pi Asterisk Tutorial habe ich bereits geschrieben und ist es natürlich auch für Ubuntu und Debian gültig, da diese Systeme alle auf Debian basieren.

15,67 €
Jetzt bestellen »
jQuery Mobile: Up and Running
Versandfertig in 1 - 2 Werktagen

Zunächst schauen wir uns erst einmal an, welche Anwendungsgebiete wir mit unserem Click-to-call System abbilden wollen. Im Grunde funktioniert ein solches Click to call System ja so, dass zuerst die erste Rufnummer (z.B. der Hotline-Mitarbeiter) angerufen wird wenn dieser abgenommen hat, wird die Verbindung zum Kunden hergestellt. Das ist ein Beispiel für ein Click-to-Call System.

In meinem konkreten Beispiel hier, werde ich jedoch eine kleine Click-to-Call Web-App mit jQueryMobile für Smartphones bauen, in welcher man zwei Rufnummern eingeben kann zwischen denen dann die Verbindung hergestellt wird. Diese kann man dann z.B. in Hotel Hotspots nutzen, um die Verbindung zwischen Hotel-Telefon und zu Hause herzustellen. Alternativ natürlich auch, um unterwegs günstig ins Ausland zu telefonieren. Die VoIP Anbieter haben im Allgemeinen unschlagbare Tarife für Auslandstelefonate.

9.999,99 €
Jetzt bestellen »
Asterisk 1.4 + 1.6 - Studentenausgabe (Open Source Library)

Was wir für unser Click-to-call System brauchen

Unser Click-to-call System basiert auf PHP, Apache und Asterisk mit einem externen SIP-Anbieter wie Localphone (Ich berichtete in Anrufe in ausländische Mobilfunknetze) oder Sipgate. Viele der Dinge, die ich nachfolgend aufführen werde, basieren auf anderen Artikeln, die ich geschrieben habe. Dazu gehört die Server-Installation, die Asterisk-Grundkonfiguration etc. Deshalb möchte ich die Voraussetzungen für das Click-to-Call System hier kurz zusammenfassen. Das Folgende wird also benötigt:

Das ist dann auch alles, was wir brauchen. Ich sollte abschließend noch erwähnen, dass der Server dann pro Telefonat  etwa 128 Kbit/s (Kilobit pro Sekunde) an Datendurchsatz benötigt. Das entspricht zwei G.711 kodierten Sprachdatenströmen mit je 64 Kbit/s, denn wir brauchen ja für beide Leitungen die wir zusammenschalten jeweils einen Sprachdatenstrom. Das sollte man mit einrechnen, da das ja durchaus ins Geld gehen kann, wenn man nach Bandbreite abgerechnet wird.

Vorbereitung von Asterisk für Click-to-Call

Das Asterisk-System sollte nach der Asterisk-Anleitung schon fertig installiert sein und so braucht es im Prinzip dann nur noch einen Befehl, der die Verbindung zwischen beiden Anschlüssen herstellt. Nachdem wir Asterisk grundlegend konfiguriert haben, initieren wir einfach zwei ausgehende Verbindungen mit dem "Originate"-Befehl aus dem Asterisk CLI (Command Line Interface) heraus

Damit würde jetzt die Zuschauerredaktion der ARD mit der des ZDF verbunden. Den Befehl kann man nun vom Linux-Terminal bzw. der Konsole aus auch mit folgendem Befehl direkt mit dem Asterisk CLI starten.

Bedenken sollte man nur, dass der Systembefehl "asterisk -rx" erst endet, wenn der erste Teilnehmer (in diesem Fall die ARD Zuschauerredaktion) den Hörer abgenommen hat. Sobald dies geschehen ist, ist der Befehl ausgeführt und dann hört die ARD Zuschauerredaktion, wie die des ZDF angewählt wird. Für die Tests sollte man jedoch lieber seine eigenen Rufnummern verwenden.

Das ist nun grundsätzlich alles, was wir technisch für Click-to-Call unter Linux mit Asterisk benötigen. Der Rest ist nun reines PHP mit Apache. Versierte PHP Programmierer werden jetzt auch schon sofort wissen, wie sie das umsetzen können.

Click-to-Call in PHP programmieren

Meine exakte Konstellation arbeitet ja nun mit einem Raspberry Pi und meinen Linux-Servern im Rechenzentrum in London. In größeren Installationen wird man durchaus eine vergleichbare Konfiguration haben, wo sich die Telefonanlage im Unternehmen befindet, die Webserver jedoch in einem abgeschrimten Rechenzentrum. Ich habe das bei mir so realisiert, dass mein internes System für die IP Adresse meines Webservers den HTTP Service auf dem Raspberry Pi frei gibt und dort ein Apache mit Rest-API Anrufe initiieren kann. Das PHP Skript für die Rest-Api für den Rückrufservice sieht wie folgt aus.

In dem Skript kann man jetzt sehen, dass dort zwar eine Art rudimentäre Sicherheitsprüfung mit md5-Hash sowie ein paar Datenprüfungen stattfinden, hauptsächlich, um Sicherheit zu gewährleisten und ordentliches Fehlerhandling. Im Endeffekt macht das Skript dann aber nichts anderes als mit "shell_exec" den entsprechenden Befehl in der Asterisk CLI auszuführen. Es nimmt zwei Parameter mit den Telefonnummern entgegen und den Sicherheitsschlüssel. Das war's dann auch schon und so ist das Click-to-Call System im Prinzip fertig.

Click-to-Call WebApp
Click-to-Call WebApp
Da das ja jetzt nur quasi ein technisches Grundgerüst ist, habe ich mir mit PHP, HTML5, CSS3 und JQuery Mobile noch eine passende web-basierte, mobile Click-to-call GUI gebaut. Ich möchte mein Click-to-Call System auf Reisen nutzen, um zu akzeptablen Preisen zu Hause anrufen zu können und auch um Teile meiner Familie im Ausland zu erreichen. Eine Web-App bietet sich da idealerweise an,  da ich diese auch anderen Teilen meiner Familie anbieten möchte.

Die WebApp ist mit jQueryMobile, HTML5, CSS und PHP programmiert und steuert die Rest-API auf dem Raspberry Pi vom meinem Webserver in London an. Der Nutzer loggt sich über Google OAuth in der Anwendung ein. Gerne hätte ich die Anwendung zur öffentlichen Begutachtung frei gegeben, aber leider kosten Telefonate einfach Geld und daher kann ich dies bedauerlicherweise hier nicht vorführen. 

Ich habe den Code der Click-to-Call WebApp unter der Apache License als Open Source auf Google Code veröffentlicht: Click-to-Call Web-App Quellcode. Viele Menschen haben an PHP, Asterisk, Linux, jQuery und Apache entwickelt. Deshalb ist es mehr als nur angemessen  meinen Code der Click-to-Call App auch kostenfrei zu zur Verfügung zu stellen.

Bücher zum Thema „Asterisk“

Die nachfolgenden Bücher behandeln das Thema "Asterisk" und werden von Amazon empfohlen. Viele dieser Bücher habe ich selbst gelesen und teilweise auch zur Recherche für diesen Artikel genutzt.
18,59 €
Jetzt bestellen »
IP-Telefonie mit Asterisk - Aufbau von Nebenstellenanlagen für VoIP auf Linux-Basis - inklusive SIP
Ralf Ackermann, dpunkt
19,95 €
Jetzt bestellen »
Asterisk: Der schnelle Einstieg
David Gomillion, REDLINE
19,42 €
Jetzt bestellen »
Der Weg zu VoIP Asterisk von A bis Z
Silvio Schneider, Lulu.com
76,88 €
Jetzt bestellen »
[(Asterisk: The Definitive Guide)] [ By (author) Leif Madsen, By (author) Jim Van Meggelen, By (author) Russell Bryant ] [June, 2013]
Leif Madsen, O'Reilly Media, Inc, USA

Diese Artikel könnten Dich auch interessieren

Besucher, die diesen Beitrag gelesen haben, haben sich auch die unten aufgeführten Beiträge angesehen. Schau' doch einfach mal in die Artikel rein.
19 Besucher haben auch das gelesen
15 Besucher haben auch das gelesen
8 Besucher haben auch das gelesen
7 Besucher haben auch das gelesen
3 Besucher haben auch das gelesen
3 Besucher haben auch das gelesen

Kommentare zum Thema „Click-to-call“

Wenn Du möchtest, kannst Du hier Kommentare zum Thema hinterlassen und Dich mit anderen Nutzern austauschen. Damit Du kommentieren kannst, musst Du Dich nur anmelden und schon kann es losgehen.
Jetzt zum Kommentieren anmelden