Your requirement

You have an entry in sip.conf that you can use to make phone calls via the Internet, for example, [1und1]. You want to check in the dial plan (extensions.conf) whether Asterisk can reach the SIP server online, that is, whether Internet access exists and the SIP server is available. If so, you want to dial out via SIP, if not, alternatively via ISDN.

The procedure

Test with ping

If sip.1und1.de (with the known IP 212.227.15.197) does not respond to ping, the number is dialed in the [ISDNout] context (the application System jumps +101 if the shell command was not successful).

/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)

The -w 1 -q -c 1 options make ping wait for only one second and send only one ping.

By the way: local calls

With VoIP you need the area code even for local calls. The following line automatically puts the area code in front of all numbers that do not start with a 0:

/etc/asterisk/extensions.conf:exten => _N.,1,Goto(SIPout,089${EXTEN},1)

Linux knowledge

Questi articoli sono stati scritti dal fondatore di Checkmk molti anni fa.
Tuttavia, sono ancora validi e quindi li conserviamo sul nostro sito web.
Da allora Mathias ha sviluppato il software di monitoraggio che oggi è Checkmk.

Scopri di più