Ihr Vorhaben
Sie haben einen Eintrag in der sip.conf
, mit dem Sie über Internet telefonieren, z.B. [1und1]
. Sie wollen im Dial-Plan (extensions.conf
) überprüfen, ob die Asterisk den SIP-Server online erreichen kann, sprich, ob Internetzugang besteht und der SIP-Server verfügbar ist. Wenn ja, wollen Sie über SIP rauswählen, wenn nicht, alternativ über ISDN.
Das Vorgehen
Test mit ping
Wenn sip.1und1.de
(mit der bekannten IP 212.227.15.197) nicht auf ping
antwortet, wird die Nummer im Kontext [ISDNout]
gewählt (die Applikation System
springt um +101 weiter, wenn der Shellbefehl nicht erfolgreich war).
/etc/asterisk/extensions.conf:[SIPout]
exten => _0.,1,System('ping -w 1 -c 1 212.227.15.197 > /dev/null')
exten => _0.,2,Dial(SIP/${EXTEN}@1und1,,Tr)
exten => _0.,102,Goto(ISDNout,${EXTEN},1)
Die Optionen -w 1 -q -c 1
sorgen dafür, dass ping
nur eine Sekunde lang wartet und nur einen Ping sendet.
Übrigens: Ortsgespräche
Bei VoIP benötigt man auch bei Ortsgesprächen die Vorwahl. Folgende Zeile setzt diese automatisch vor alle Nummern, die nicht mir einer 0 beginnen:
/etc/asterisk/extensions.conf:exten => _N.,1,Goto(SIPout,089${EXTEN},1)