Iaxrpt won't connect to ASL

Hi,

I’m not able to get iaxrpt to connect to my ASL node and am trying to locate the problem. I think I’ve checked everything, but when I try to connect I get the question mark state and eventually the Call Attempt Failed message. Are there any usual suspects I can check to resolve the problem?

73,
Robert
KJ7VOI

Usual suspects are type error and not putting everything in.

Can you show us your entry in iax.conf (blank the user/pass)
and
your entry in extension.conf for iaxrpt

I did a fresh install of ASL with defaults and am trying to copy iax.conf and extensions.conf from the ASL machine to my windows machine to post here but keep getting Access Denied when using winscp and putty. I can ping the ASL machine and it says it is listening on port 22 but it won’t let me copy. What do I need to do to get the files on my windows machine?

Found a bigger hammer. New users such as myself can have not more than two links in a post, so the files will be in separate posts. This is the first half of iax.conf.

; Inter-Asterisk eXchange driver definition
; http://docs.allstarlink.org/drupal/node/15

; ulaw, alaw, GSM and ADPCM should only be used,
; the rest of the standard Asterisk codecs
; This needs to be updated
; (speex, ilbc, lpc10, etc) should be avoided.

; The ulaw and alaw codecs have the best audio quality,
; followed by ADPCM, and lastly GSM,
; Bandwidth used is in the reverse order to audio quality.
; GSM uses the least bandwidth, and alaw/ulaw the most.

; CODEC AUDIO QUALITY BANDWIDTH (including IP and Ethernet headers)
; ULAW best 87 kbps
; ADPCM good 55 kbps
; GSM mediocre 36 kbps

[general]
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 = 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

This is the second half of iax.conf.

register =54681:XXX@register.allstarlink.org ; This must be changed to your node number, password
; remove the leading “;”

; 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

[iaxrpt] ; Connect from iaxrpt Username field (PC AllStar Client)
type = user ; Notice type is user here <---------------
context = iaxrpt ; Context to jump to in extensions.conf
auth = md5
secret = XXX
host = dynamic
disallow = all
allow = ulaw
allow = adpcm
allow = gsm
transfer = 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 = XXX
host = dynamic
disallow = all
allow = ulaw
allow = adpcm
allow = gsm
transfer = no

[allstar-sys]
type = user
context = allstar-sys
auth = rsa
inkeys = allstar
disallow = all
allow = ulaw

[allstar-public]
type = user
context = allstar-public
auth = md5
secret = allstar
disallow = all
allow = ulaw
allow = gsm

; The following should be un-commented to support Allstar Autopatch service
; [allstar-autopatch]
; type = peer
; host = register.allstarlink.org
; username =
; secret =
; auth = md5
; disallow = all
; allow = ulaw
; transfer = no

#includeifexists custom/iax.conf

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

That restriction will go away automatically after you post a few times.

I can’t explain it, but I’ve had errors in rpt.conf, making asterisk unhappy, and iaxrpt unable to link.

This is as simple as it gets…

iax.conf:
[gui]
type = user
context = gui
auth = md5
secret = 1234
host = dynamic
disallow = all
allow = ulaw
allow = adpcm
allow = gsm
notransfer = yes

eatensions.conf:
[gui]
exten => 1951,1,rpt(1951|X)
exten => 29261,1,rpt(29261|X)
exten => 29283,1,rpt(29283|X)
exten => 29284,1,rpt(29284|X)
exten => 29285,1,rpt(29285|X)

iaxrpt setup
user gui
host 12.34.56.78:port

This is a silent admin user setup. No announcement will be made on your connected node.
This assumes that everything is setup correctly for the node and is connectable.

I found that connecting to the ASL process via the Local LAN connection does not work. Try connecting via your cell phone without WiFi (use cellular connection). Hope this helps.

You bring a excellent issue I had not considered. Easy to do when users do not state enough facts.

I assumed the PC program and if he is using iaxrpt-mobile/android, my example will not work.
Perhaps he will chime in if he is still having a issue and state it.

Bob_Pyke: I checked rpt.conf and didn’t see anything obvious, so let me know if there is something I should be looking for.

Mike: Thanks for sharing your iax.conf and extensions.conf stanzas, but they didn’t work for me (even when I used my node number in extensions.conf).

N0RTB: How can I connect to my ASL machine via my cell phone without WiFi?

I think the two main possibilities at this point are 1) that there is something that I haven’t fixed yet; and/or 2) the somewhat dated iaxrpt is not compatible with the newer/newest versions of ASL.

Can anyone using iaxrpt and the latest version of ASL confirm that they do work together? No radios, just iaxrpt.

Windows ver connects to my 48234, so yes !

There is nothing weirdly out of the ordinary about iaxrpt. It is a IAX dialer. Plain and simple.
Dialplan setup is the same as such under varying possibilities for varying security.

Should these iaxrpt account values work?

As long as your setup matches in iax.conf & extensions.conf

If you are not connecting,
you should watch asterisk live while you are attempting…
asterisk -rvvv

If you have made a bunch of failed attempts recently, you may have triggered a firewall response.
Make sure your iptables and fail2ban ignore your IP.

The ASL installation creates stanzas for iaxrpt that only need to be modified for password. Was there a reason you made your own [gui]?

It was the original stanza when we started using it a decade ago. I did not make it up.
(gui = graphic user interface as at the time you had that and a command line only)
However you can call it whatever you want. As long as your config matches it. It will not change anything naming it differently.

Do you have a issue that needs solved or is this just a qso ?

I should note that that stanza example I posted will not announce user connection.
Silents admin connection.

rdone - Your cellphone, unless it is an ancient flip phone, will be able to use cellular internet access to get to your node. Alternatively, you can use someone else’s WiFi to test. Just turn off WiFi and allow the VoIP app you are trying to use to communicate via Cellular.

Zoiper is one app that I have used successfully, as well as Transceive. Another app that I find useful is called “Node Remote”. It is not an actual VoIP client, but it allows you to test access to your node and see/make/remove connections to your node.

My password had a special character which are not allowed.

I can now use iaxrpt to connect to ASL.