Callback mit Asterisk
Im Ergebnis soll der Server, wird er von einer vorher definierten Rufnummer angerufen auf genau dieser Rufnummer zurückrufen und dem Anrufer ein Freizeichen zur Verfügung stellen.
Einleitung
Callback bezeichnet eine Mitte der 90′er Jahre in Mode gekommene Technik, bei der ein Telefonteilnehmer einen Callback-Server anruft, dieser das Telefonat ablehnt und anschließend den Anrufer zurückruft. Am Anfang ihrer Entwicklung wurde diese Technik hauptsächlich eingesetzt um die Anfangs sehr hohen Preisunterschiede bei internationalen Telefonaten zu nutzen.
Heutzutage eignet sich Callback zum Beispiel für Besitzer eines Genion-Vertrages mit Homezone. So kann der Asterisk-Server dazu gebracht werden die Homezone-Nummer, die zum Festnetz Tarifen erreichbar ist anzurufen und ein Freizeichen zur Verfügung zu stellen.
Sind Telefonate ins Festnetz für den Server kostenlos - was mittlerweile z.B. von Arcor angeboten wird - können so vom Handy aus ohne weitere Kosten Telefonate ins Festnetz geführt werden, da im Endeffekt lediglich zwei Telefonate vom Asterisk-Server aus geführt werden.
Voraussetzungen
Es wird ein funktionierender Asterisk-Server benötigt, der die Möglichkeit hat ausgehende Telefonate zu führen. Dies kann entweder über ISDN erfolgen, oder über einen VOIP-Provider.
Des weiteren wird natürlich noch ein Anschluss benötigt, auf den der Asterisk Server zurückruft.
Die Testkonfiguration des Servers bestand aus:
- Asterisk
- Sipgate
- O2 Genion mit Homezone
Es bedarf also keines Festnetzanschlusses, so lange auf dem Server ein VOIP-Provider eingerichtet ist.
Die Konfiguration lässt sich allerdings auch problemlos auf ISDN ändern.
Erstellen der Anrufdatei
Mit einem Texteditor wird im Verzeichnis /etc/asterisk/ die Datei “callback.call” mit folgendem Inhalt angelegt.
Channel: SIP/[phonenumber]@sipgate.de
Callerid: [my-sipgate-caller-id]
Context: callback Extension: s
MaxRetries: 1
RetryTime: 3
WaitTime: 20
Hierbei handelt es sich bei [phonenumber] um die anzurufende Telefonnummer und bei sipgate.de um den VOIP-Provider. [my-sipgate-caller-id] wird zur Authentifikation benötigt. Die übrigen Daten sind selbsterklärend.
Eingehendes Telefonat behandeln
Im nächsten Schritt wird die extensions.conf um die Behandlung des eingehenden Callback-Telefonats ergänzt.
exten => [incomingmsn]/[mobile-number],1,Wait(1)
exten => [incomingmsn]/[mobile-number],2
,system(cp /etc/asterisk/callback.call
/var/spool/asterisk/outgoing/)
exten => [incomingmsn]/[mobile-number],3,Wait(1)
exten => [incomingmsn]/[mobile-number],4,Hangup
[incomingmsn] bezeichnet hierbei die Eingehende Rufnummer und [mobile-nummer] die Telefonnummer des zurück zu rufenden Geräts.
In Zeile zwei wird die callback.call-Datei in das Spool-Verzeichnis des Asterisk-Servers kopiert und der in ihr angegebene Teilnehmer angerufen.
Dieser Code-Ausschnitt muss in einen Bereich platziert werden, in dem eingehende Telefonate behandelt werden.
Callback ermöglichen
Zuletzt muss im Server noch die Behandlung des Callback-Telefonats definiert werden. Dies erfolgt durch folgenden Code-Ausschnitt
[callback]
exten => s,1,Answer
exten => s,2,DigitTimeout,5
exten => s,3,ResponseTimeout,10
exten => s,4,Authenticate(0000)
exten => s,5,DISA,no-password|intern
exten => s,6,Hangup
Dieser Ausschnitt hat folgende Konsequenzen:
- Annahme des Callback-Telefonates
- Setzen des Timeouts für Tasteneingabe auf 5 Sekunden
- Setzen der Wartezeit auf eine Eingabe auf 10 Sekunden
- Autentifikation über die Eingabe von 0000
- Direkter Systemzugriff in der Extension intern
- Auflegen, nach Beendigung des Telefonates
“intern” ist hierbei die Bezeichnung der Extension, die für vom Server aus getätigte Telefonate verwendet wird.

Kommentar schreiben