Eine universelle Testnummer mit einem automatischen Rückruf für einen Asterisk-Telefon-Server

2. Oktober 2021 (aktualisiert am 3. 10.21)

Wer einen Asterisk-Server betreibt, möchte seinen Teilnehmern vielleicht eine Testnummer zur Verfügung stellen, mit der sich die Funktionalität des Telefons oder Endgeräts und der korrekte Anschluss überprüfen lassen. Mit der hier beschriebenen Testnummer kann sich der Teilnehmer automatisch anrufen lassen und benötigt für die wichtigsten Tests keinen Partner am anderen Ende der Leitung. Die Testnummer kommt ohne Stern und Raute aus und ist deshalb auch für Wählscheiben-Telefone und andere Telefone, die mit dem Impulswahlverfahren arbeiten, geeignet. Ein Echotest ist integriert.

Hier geht es zu den Anleitungen für die Asterisk-Programmierung und der Asterisk-Installation auf einem Raspberry Pi

Testnummer für einen Asterisk-SIP-Server mit automatischem Rückruf: Die nachfolgend beschriebene Testnummer lässt sich in der extensions.conf unterbringen. Wer die 789 anruft, erfährt durch eine Ansage die Nummer seines eigenen Anschlusses. Nach dem Auflegen erfolgt ein automatischer Rückruf. Nimmt man ihn entgegen, erfolgt ein Echotest, bei dem der Teilnehmer seine eigene Stimme etwas zeitverzögert hört. Dieser Echotest kann durch Auflegen oder mit der Raute-Taste (#) beendet werden. Die Raute-Taste funktioniert nur bei dem Mehrfrequenzwahlverfahren. Somit erfährt man den Zustand über die wichtigsten Funktionen der Telefonverbindung.


Szene aus dem us-amerikanischen Werbefilm “The Town and the Telephone” aus der heilen Werbewelt der 1960er Jahre,  in der ein Servicetechniker einen neuen Telefonanschluss einrichtet und eine ähnliche Testnummer verwendet, die einen automatischen Rückruf auslöst. Mit Asterisk bieten sich allerdings viel mehr Möglichkeiten.

Links eine Wählscheibe mit einer deutschen Beschriftung. Rechts ein schwedisches Telefon mit einer abweichenden aufgedruckten Ziffernfolge. Die Mechanik der Nummernschalter sind im Prinzip gleich. Die Impulsfolge unterscheidet sich nicht. Nur der Aufdruck der Ziffern ist abweichend. Warum Schweden auch hier einen Sonderweg gegangen ist, verbleibt ein Rätsel. Für Telefonate im Direktwahlverfahren von und nach Schweden waren aufwendige Relaisschaltungen notwendig, um die abweichenden Ziffernabfolgen zu korrigieren.

Falls jemand ein schwedisches Wählscheibentelefon verwendet, wählt er eigentlich die 890 statt der 789, da die Beschriftung der Ziffern anders angeordnet ist.  Nach dem Wählen der 890 erfolgt ein Hinweis auf die schwedische Wählscheibe und dann die Weiterleitung auf die 789.

Nachfolgen der Auszug aus der extensions.conf für die Testnummer:

; 1. Oktober 2021 Volker Lange-Janson SM5ZBS
; Klingeltest
; Auszug aus der extensions.conf
; Getestet auf Asterisk 16.2.1 Raspbian vom Februar 2020
;
;
;
[klingeltest] ; Klingeltest
exten => 24,1,Answer(1)
exten => 24,n,Playback(beep)
exten => 24,n,Playback(/usr/share/asterisk/sounds/eigene/echotest3) ; Ansage
exten => 24,n,Echo                                                  ; Echotest
exten => 24,n,Playback(/usr/share/asterisk/sounds/eigene/echotest4) ; Bestaetigung
exten => 24,n,Wait(1)
exten => 24,n,Hangup()
;
;
[telefone] ; Siehe entsprechenden Eintrag in der sip.conf, in diesem Context sind alle Telefon drin.
;
; wenn jemand ein schwedisches Wählscheibentelefon hat,
; wählt man wegen der anderen Beschriftung die 890 an Stelle der 789
exten => 890,1,Answer(1)
exten => 890,n,Playback(beep)
exten => 890,n,Playback(/usr/share/asterisk/sounds/eigene/telefontest5)
exten => 890,n,Goto(telefone,789,1)
exten => 890,n,Hangup()
;
;
; Klingeltest - nicht besonders elegant programmiert, aber es funktioniert
;
; http://the-asterisk-book.com/1.6/call-file.html als Anregung
; https://support.digium.com/community/s/article/How-to-use-an-Asterisk-callfile
;
; benötigt den Context [klingeltest]
; Bedienung: Nach dem Anwählen der Nummer 789 hört man eine Ansage,
; welche die eigene Nummer als Ziffernfolge und dann als Zahl aufsagt.
; Dann legt die Testnummer auf. Nun hebt man seinen Hörer ebenfalls auf. 
; Unmittelbar danach oder bis zu 10 Sekunden später klingelt
; das eigene Telefon. Im Display steht "Klingeltest". 
; Man kann nun abheben und nach der Ansage einen Echotest durchführen, 
; bei dem man mit einer kurzen Zeitverzögerung seine eigene Stimme hört,
; um die Verbindungsqualität testen zu können. Wenn man will,
; kann man den Test mit der #-Taste abbrechen oder auflegen.
; Somit hat man die wichtigsten Funktionen eines Telefons und seines
; korrekten Anschlusses in einem Zug getestet.
;
; Ausprobiert habe ich die Nummer 789 mit diversen IP-Telefonen,
; Softphones, Tasten- und Wählscheibentelefonen.
;
; Das IP-Telefon Thomson TB-30 nimmt den automatischen Rückruf unmittelbar
; auf der zweiten Leitung entgegen, weshalb die Lampe F2 flackert.
; Deshalb ist nach der Ansage der Nummer als Zahl der Hörer aufzulegen. 
; Den Hörer erst wieder beim Klingelton abheben.
;
; ####################### WICHTIG ######################################
; Es wird durch das Script vorübergehend eine .call-Datei im Ordner
; /var/spool/asterisk/outgoing/ angelegt.
; Klicke in Raspbian mit der rechten Maustaste auf das 
; Symbol dieses Ordners, um dann alle Berechtigungen für jeden für das
; Schreiben, Lesen, Löschen u.s.w. freizugeben.
; ######################################################################
;
exten => 789,1,Answer(1)
exten => 789,n,Playback(beep)
exten => 789,n,System(echo "Channel: SIP/${CALLERID(num)} \nCallerID: "Klingeltest" <789> \nContext: klingeltest \nExtension: 24 \nMaxRetries: 1 \nRetryTime: 9" > /tmp/${UNIQUEID}.call)
; oben: klingelt 2 Mal. Das erste Mal sofort, wenn dann besetzt, dann 7 Sekunden später noch einmal.
exten => 789,n,Playback(/usr/share/asterisk/sounds/eigene/echotest1)
exten => 789,n,SayDigits(${CALLERID(num)}) ; eigene Nummer als Ziffernfolge
exten => 789,n,Playback(beep)
exten => 789,n,SayNumber(${CALLERID(num)}) ; als Zahl
exten => 789,n,Playback(/usr/share/asterisk/sounds/eigene/echotest2)
exten => 789,n,System(touch -t 200001010101 /tmp/${UNIQUEID}.call) ; Datei-Datum auf das Jahr 2000 eingestellt, klingelt dann sofort.
exten => 789,n,System(sleep 1)
exten => 789,n,System(mv /tmp/${UNIQUEID}.call /var/spool/asterisk/outgoing/)
exten => 789,n,Playback(beep)
exten => 789,n,Hangup()
;
;
Das zeigt das Asterisk-CLI, wenn die 1003 die Nummer 789 wählt und sich zurückrufen lässt (für eine Großdarstellung auf das Bild klicken).

Die Soundfiles wurden mit https://ttsmp3.com/ mit der Sprecherin “Vickie” als MP3-Files erzeugt und dann auf https://g711.org/ in den G.722-Audio-Codec umgewandelt. G.722 lässt sich mit VLC abhören.

telefontest1:

telefontest2:

telefontest3:

telefontest4:

telefontest5:

Sounds und Code zum Herunterladen in einer Zip-Datei:

Klingeltest-Sounds-und-Code

Nachfolgend die ursprüngliche Fassung der Testnummer 789 mit den vorinstallierten us-amerikanischen Soundfiles von Asterisk:

; 1 Oktober 2021 Volker Lange-Janson SM5ZBS
; Klingeltest und primitive Weckrufeinrichtung
; Auszug Extensions.conf
; Gestestet auf Asterisk 16.2.1 Raspbian Februar 2020
;
;
;
[klingeltest] ; Klingeltest
exten => 24,1,Answer()
exten => 24,n,Playback(demo-echotest) ; Ansage
exten => 24,n,Echo                    ; Echotest
exten => 24,n,Playback(demo-echodone) ; Bestaetigung
exten => 24,n,Wait(1)
exten => 24,n,Hangup()
;
;
[telefone] ; Siehe entsprechenden Eintrag in der sip.conf, in diesem Context sind alle Telefon drin.
;
; Klingeltest - nicht besonders elegant programmiert, aber es funktioniert
; benötigt den Context [klingeltest]
; Bedienung: Nach dem Anwählen der Nummer 789 hört man eine Ansage,
; welche die eigene Nummer als Ziffernfolge und dann als Zahl aufsagt.
; Dann legt die Testnummer auf. Nun hebt man seinen Hörer ebenfalls auf. 
; Unmittelbar danach oder bis zu 10 Sekunden später klingelt
; das eigene Telefon. Im Display steht "Klingeltest". 
; Man kann nun abheben und nach der Ansage einen Echotest durchführen, 
; bei dem man mit einer kurzen Zeitverzögerung seine eigene Stimme hört,
; um die Verbindungsqualität testen zu können. Wenn man will,
; kann man den Test mit der #-Taste abbrechen oder auflegen.
; Somit hat man die wichtigsten Funktionen eines Telefons und
; seines korrekten Anschlusses in einem Zug getestet.
;
; Ausprobiert habe ich die Nummer 789 mit diversen
; IP-Telefonen, Softphones, Tasten- und Wählscheibentelefonen.
;
; Das IP-Telefon Thomson TB-30 nimmt den automatischen Rückruf unmittelbar
; auf der zweiten Leitung entgegen, weshalb die Lampe F2 flackert.
; Deshalb ist nach der Ansage der Nummer als Zahl der Hörer aufzulegen. 
; Den Hörer erst wieder beim Klingelton abheben.
;
; ####################### WICHTIG ######################################
; Es wird durch das Script vorübergehend eine .call-Datei im Ordner 
; /var/spool/asterisk/outgoing/ angelegt. ; Klicke in Raspbian mit der rechten Maustaste auf das 
; Symbol dieses Ordners, um dann alle Berechtigungen für jeden für das 
; Schreiben, Lesen, Löschen u.s.w. freizugeben. 
; https://support.digium.com/community/s/article/How-to-use-an-Asterisk-callfile
; ######################################################################
;
exten => 789,1,Answer()
exten => 789,n,System(echo "Channel: SIP/${CALLERID(num)} \nCallerID: "Klingeltest" <789> \nContext: klingeltest \nExtension: 24 \nMaxRetries: 1 \nRetryTime: 7" > /tmp/${UNIQUEID}.call)
; oben: klingelt 2 Mal. Das erste Mal sofort, wenn dann besetzt, dann 7 Sekunden später noch einmal.
exten => 789,n,Playback(beep)
exten => 789,n,SayDigits(${CALLERID(num)}) ; eigene Nummer als Ziffernfolge
exten => 789,n,Playback(beep)
exten => 789,n,SayNumber(${CALLERID(num)}) ; als Zahl
exten => 789,n,Wait(1)
exten => 789,n,System(touch -t 200001010101 /tmp/${UNIQUEID}.call) ; Datei-Datum auf das Jahr 2000 eingestellt, klingelt dann sofort.
exten => 789,n,System(sleep 1)
exten => 789,n,System(mv /tmp/${UNIQUEID}.call /var/spool/asterisk/outgoing/)
exten => 789,n,Hangup()
;
;
;