I’m helping another ham with his ASL3 install and I’m trying to add an iax user but i’m getting registration failed and Call token failure.
i have marked requirecalltoken = no but it doesn’t seem to help.
any suggestiong on where i should look.
iax.conf
; Inter-Asterisk eXchange driver definition
[general]
; !!! IAX registration will be discontinued at some point !!!
; Setup rpt_http_registartions.conf instead.
; remove the leading ";"
register => 616491:redacted@register.allstarlink.org ; This must be changed to your node number, password
;register => 1998:12345@register.allstarlink.org
bindport = 4569 ; bindport and bindaddr may be specified
; NOTE: bindport must be specified BEFORE
; bindaddr or may be specified on a specific
; bindaddr if followed by colon and port
; (e.g. bindaddr=192.168.0.1:4569)
bindaddr = 0.0.0.0
; bindaddr = 192.168.0.1 ; more than once to bind to multiple
; addresses, but the first will be the
; default
disallow = all ; The permitted codecs for outgoing connections
;Audio Quality Bandwidth
;allow = ulaw ; best 87 kbps
;allow = adpcm ; good 55 kbps
;allow = gsm ; medicore 36 kbps
allow = ulaw
allow = adpcm
allow = g722
allow = g726aal2
allow = gsm
allow = ilbc
jitterbuffer = yes
forcejitterbuffer = yes
dropcount = 2
maxjitterbuffer = 4000
maxjitterinterps = 10
resyncthreshold = 1000
maxexcessbuffer = 80
minexcessbuffer = 10
jittershrinkrate = 1
tos = 0x1E
autokill = yes
delayreject = yes
; iaxthreadcount = 30
; iaxmaxthreadcount = 150
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
; Incoming radio connections
[radio]
type = user
disallow = all
allow = ulaw
allow = adpcm
allow = g722
allow = g726aal2
allow = gsm
allow = ilbc
codecpriority = host
context = radio-secure
transfer = no
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
[iaxrpt] ; Connect from iaxrpt Username field (PC AllStar Client)
username=iaxrpt
type = user ; Notice type is user here <---------------
context = iaxrpt ; Context to jump to in extensions.conf
auth = md5
secret = redacted
host = dynamic
disallow = all
allow = ulaw
allow = adpcm
allow = gsm
transfer = no
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
[iaxclient] ; Connect from iax client (Zoiper...)
type = friend ; Notice type here is friend <--------------
context = iax-client ; Context to jump to in extensions.conf
auth = md5
secret = Your_Secret_Password_Here
host = dynamic
disallow = all
allow = ulaw
allow = adpcm
allow = gsm
transfer = no
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
[allstar-sys]
type = user
context = allstar-sys
auth = rsa
inkeys = allstar
disallow = all
allow = ulaw
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
[allstar-public]
type = user
context = allstar-public
auth = md5
secret = allstar
disallow = all
allow = ulaw
allow = gsm
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
[joe]
username = joe
type = friend
context = iaxrpt-WW4SC
auth = md5
secret = joe
host = dynamic
disallow = all
allow = ulaw
allow = gsm
transfer = yes
callerid = "WW4SC"
calltokenoptional = 0.0.0.0/0.0.0.0
requirecalltoken = no
; The following should be un-commented to support Allstar Autopatch service
; [allstar-autopatch]
; type = peer
; host = register.allstarlink.org
; username = <One of the Node numbers on this server>
; secret = <The node password for the above node>
; auth = md5
; disallow = all
; allow = ulaw
; transfer = no
#tryinclude custom/iax.conf
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 = 803 ; change this to your Area Code
NODE = 616491 ; change this to your node number
[default]
exten => i,1,Hangup
[radio-secure]
;exten => ${NODE},1,rpt(${EXTEN})
exten => _XXXX!,1,NoOp(Connect from node: ${CALLERID(num)})
same => n,NoOp(Connect to: ${EXTEN})
;same => n,NoOp(The IAXPEER is ${IAXPEER(CURRENTCHANNEL)})
same => n,NoOp(The Channel IP is ${CHANNEL(peerip)})
;If channel IP eq localhost go to connect
same => n,GotoIf($["${CHANNEL(peerip)}" = "127.0.0.1"]?connect)
;If allowlist/extension dosen't exist check the denylist
same => n,GotoIf($[${DB_KEYCOUNT(allowlist/${EXTEN})} = 0]?denylist) ;goto denylist
;If allowlist/extension/callerid exists go to connect
same => n,GotoIf(${DB_EXISTS(allowlist/${EXTEN}/${CALLERID(num)})}?connect) ;goto connect
same => n,NoOp(${EXTEN} not in allowlist, Hangup)
same => n,Hangup
;If denylist/extension/callerID doesn't exist goto connect
same => n(denylist),GotoIf(${DB_EXISTS(denylist/${EXTEN}/${CALLERID(num)})}?:connect) ;don't goto connect
same => n,NoOp(${EXTEN} is in denylist, Hangup)
same => n,Hangup
same => n(connect),rpt(${EXTEN})
same => n,Hangup
[radio-iaxrpt]
; Entered from iaxrpt in iax.conf
; 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.
;exten => ${NODE},1,rpt(${EXTEN}|X) ; NODE is the Name field in iaxrpt
exten=616491,1,Rpt,616491|X
[iax-client] ; for IAX VoIP clients.
exten => ${NODE},1,Ringing()
same => n,Wait(10)
same => n,Answer()
same => n,Set(CALLSIGN=${CALLERID(name)})
same => n,NoOp(Caller ID name is ${CALLSIGN})
same => n,NoOp(Caller ID number is ${CALLERID(number)})
same => n,GotoIf(${ISNULL(${CALLSIGN})}?hangit)
same => n,Playback(rpt/connected-to&rpt/node)
same => n,SayDigits(${NODE})
same => n,rpt(${NODE}|P|${CALLSIGN}-P)
same => n(hangit),NoOp(No Caller ID Name)
same => n,Playback(connection-failed)
same => n,Wait(1)
same => n,Hangup
; Comment-out the following clause if you want Allstar Autopatch service
[pstn-out]
exten => _NXXNXXXXXX,1,playback(ss-noservice)
same => n,Congestion
; Un-comment out the following clause if you want Allstar Autopatch service
;[pstn-out]
;exten => _NXXNXXXXXX,1,Dial(IAX2/allstar-autopatch/\${EXTEN})
; same => n,Busy
[invalidnum]
exten => s,1,Wait(3)
same => n,Playback(ss-noservice)
same => n,Wait(1)
same => 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,Wait(1)
same => n,SayAlpha(${CURL(http://myip.vg)})
same => n,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
same => n,Set(RESP=${CURL(https://register.allstarlink.org/cgi-bin/authwebphone.pl?${CALLERID(name)})})
same => n,Set(NODENUM=${CALLERID(number)})
same => n,GotoIf($["${RESP:0:1}" = "?"]?hangit)
same => n,GotoIf($["${RESP:0:1}" = ""]?hangit)
same => n,GotoIf($["${RESP:0:5}" != "OHYES"]?hangit)
same => n,Set(CALLSIGN=${RESP:5})
;exten => s,n,GotoIf($[${DB_EXISTS(whitelist/${CALLSIGN})}]?:hangit) ; Not in whitelist
same => n,Wait(3)
same => n,Playback(rpt/node,noanswer)
same => n,Saydigits(${NODENUM})
same => n,Set(CALLERID(name)=${CALLSIGN})
same => n,Set(CALLERID(num)=0)
same => n,Rpt(${NODENUM}|X)
same => n,Hangup
same => n(hangit),Answer
same => n,Wait(1)
same => n,Hangup
[iaxrpt-WW4SC]
exten => 1,1,Set(JITTERBUFFER(adaptive)=default)
exten => 616491,1,Answer()
exten => 616491,n,Set(CALLSIGN=${CALLERID(name)})
exten => 616491,n,Rpt(616491|P|${CALLSIGN})
exten => 616491,1,Rpt,616491|P
#tryinclude custom/extensions.conf