This is extensions.conf.
[general]
static = yes ; These two lines prevent the command-line interface
writeprotect = yes ; from overwriting the config file. Leave them here.
[globals]
HOMENPA = 999 ; change this to your Area Code
NODE = 54681 ; change this to your node number
[default]
exten => i,1,Hangup
[radio-secure]
exten => ${NODE},1,rpt,${NODE}
[iaxrpt] ; entered from iaxrpt in iax.conf
exten => ${NODE},1,rpt(${NODE}|X) ; NODE is the Name field in iaxrpt
; Info: The X option passed to the Rpt application
; disables the normal security checks.
; Because incoming connections are validated in iax.conf,
; and we don’t know where the user will be coming from in advance,
; the X option is required.
[iax-client] ; for IAX VIOP clients.
exten => ${NODE},1,Ringing
exten => ${NODE},n,Wait(3)
exten => ${NODE},n,Answer
exten => ${NODE},n,Set(NODENUM=${CALLERID(number)})
exten => ${NODE},n,Playback(rpt/node|noanswer)
exten => ${NODE},n,SayDigits(${EXTEN})
exten => ${NODE},n,Set(CALLERID(num)=0)
exten => ${NODE},n,Rpt,${NODE}|P|${CALLERID(name)}
exten => ${NODE},n,Hangup
exten => ${NODE},n(hangit),Answer
exten => ${NODE},n(hangit),Wait(1)
exten => ${NODE},n(hangit),Hangup
; Comment-out the following clause if you want Allstar Autopatch service
[pstn-out]
exten = _NXXNXXXXXX,1,playback(ss-noservice)
exten = _NXXNXXXXXX,2,Congestion
; Un-comment out the following clause if you want Allstar Autopatch service
;[pstn-out]
;exten = _NXXNXXXXXX,1,Dial(IAX2/allstar-autopatch/${EXTEN})
;exten = _NXXNXXXXXX,2,Busy
[invalidnum]
exten = s,1,Wait,3
exten = s,n,Playback,ss-noservice
exten = s,n,Wait,1
exten = s,n,Hangup
[radio]
exten = _X11,1,Goto(check_route|${EXTEN}|1);
exten = _NXXXXXX,1,Goto(check_route|1${HOMENPA}${EXTEN}|1)
exten = _1XXXXXXXXXX,1,Goto(check_route|${EXTEN}|1)
exten = _07XX,1,Goto(parkedcalls|${EXTEN:1}|1)
exten = 00,1,Goto(my-ip|s|1)
[check_route]
exten =_X.,1,Noop(${EXTEN})
; no 800
exten = _1800NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1888NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1877NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1866NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1855NXXXXXX,2,Goto(invalidnum|s|1)
; no X00 NPA
exten = _1X00XXXXXXX,2,Goto(invalidnum|s|1)
; no X11 NPA
exten = _1X11XXXXXXX,2,Goto(invalidnum|s|1)
; no X11
exten = _X11,2,Goto(invalidnum|s|1)
; no 555 Prefix in any NPA
exten = _1NXX555XXXX,2,Goto(invalidnum|s|1)
; no 976 Prefix in any NPA
exten = _1NXX976XXXX,2,Goto(invalidnum|s|1)
; no NPA=809
exten = _1809XXXXXXX,2,Goto(invalidnum|s|1)
; no NPA=900
exten = _1900XXXXXXX,2,Goto(invalidnum|s|1)
; okay, route it
exten = _1NXXXXXXXXX,2,Goto(pstn-out|${EXTEN:1}|1)
exten = _X.,2,Goto(invalidnum|s|1)
[my-ip]
exten = s,1,Set(MYADDR=${CURL(http://myip.vg)})
exten = s,2,Wait,1
exten = s,3,SayAlpha(${MYADDR})
exten = s,4,Hangup
[allstar-sys]
exten => _1.,1,Rpt(${EXTEN:1}|Rrpt/node:NODE:rpt/in-call:digits/0:PARKED|120)
exten => _1.,n,Hangup
exten => _2.,1,Ringing
exten => _2.,n,Wait(3)
exten => _2.,n,Answer
exten => _2.,n,Playback(rpt/node)
exten => _2.,n,Saydigits(${EXTEN:1})
exten => _2.,n,Rpt(${EXTEN:1}|P|${CALLERID(name)}-P)
exten => _2.,n,Hangup
exten => _3.,1,Ringing
exten => _3.,n,Wait(3)
exten => _3.,n,Answer
exten => _3.,n,Playback(rpt/node)
exten => _3.,n,Saydigits(${EXTEN:1})
exten => _3.,n,Rpt(${EXTEN:1}|Pv|${CALLERID(name)}-P)
exten => _3.,n,Hangup
exten => _4.,1,Ringing
exten => _4.,n,Wait(3)
exten => _4.,n,Answer
exten => _4.,n,Playback(rpt/node)
exten => _4.,n,Saydigits(${EXTEN:1})
exten => _4.,n,Rpt(${EXTEN:1}|D|${CALLERID(name)}-P)
exten => _4.,n,Hangup
exten => _5.,1,Ringing
exten => _5.,n,Wait(3)
exten => _5.,n,Answer
exten => _5.,n,Playback(rpt/node)
exten => _5.,n,Saydigits(${EXTEN:1})
exten => _5.,n,Rpt(${EXTEN:1}|Dv|${CALLERID(name)}-P)
exten => _5.,n,Hangup
[allstar-public]
exten => s,1,Ringing
exten => s,n,Set(RESP=${CURL(https://register.allstarlink.org/cgi-bin/authwebphone.pl?${CALLERID(name)})})
exten => s,n,Set(NODENUM=${CALLERID(number)})
exten => s,n,GotoIf($["${RESP:0:1}" = “?”]?hangit)
exten => s,n,GotoIf($["${RESP:0:1}" = “”]?hangit)
exten => s,n,GotoIf($["${RESP:0:5}" != “OHYES”]?hangit)
exten => s,n,Set(CALLSIGN=${RESP:5})
exten => s,n,Wait(3)
exten => s,n,Playback(rpt/node|noanswer)
exten => s,n,Saydigits(${NODENUM})
exten => s,n,Set(CALLERID(name)=${CALLSIGN})
exten => s,n,Set(CALLERID(num)=0)
exten => s,n,Rpt(${NODENUM}|X)
exten => s,n,Hangup
exten => s,n(hangit),Answer
exten => s,n(hangit),Wait(1)
exten => s,n(hangit),Hangup
#includeifexists custom/extensions.conf