I had been getting reports that other nodes connecting to my node would see rx activity indication, but would not hear any audio from my node. I could hear audio from their node.
Upon troubleshooting, I noticed that their inbound connection would request ULAW, and my node would accept that request, however, my node would respond back by using SLIN for the return connection, even though SLIN was not in their request:
Accepting UNAUTHENTICATED call from 173.54.166.23:4569:
-- > requested format = ulaw,
-- > requested prefs = (ulaw|ilbc|speex16|gsm),
-- > actual format = ulaw,
-- > host prefs = (ulaw|adpcm|g722|g726aal2|gsm|ilbc),
-- > priority = mine
Disabling SLIN in the incoming section of the iax.conf file, this would still occur.
Once I disabled SLIN in the outgoing connections section of the iax.conf file, they were able to succesfully connect and have audio in both directions. However, this now precludes me from using SLIN when connecting outbound to other nodes. It appears the codec rules for outgoing connections is being applied to incoming connection requests.
Shouldn't the connection request be properly answered with one of the requested codec, regardless of how I have my incoming and outgoing connection rules set?
Does the "PRIORITY =MINE" in the connection request handshake have something to do with that? Can that be changed to use the incoming node's priority? Is that controlled by the "codecpriority = host" line in the incoming connection radio section? If so, do I comment it out, or change the = to user or something similar?
Maybe I have something in my iax.conf file set incorrectly?
Here it is for reference:
; Inter-Asterisk eXchange driver definition
[general]
; !!! IAX registration will be discontinued at some point !!!
; Setup rpt_http_registartions.conf instead.
; remove the leading ";"
;register => 1999:12345@register.allstarlink.org ; This must be changed to your node number, password
register => 616530:Password@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 = 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 = slin16
allow = slin
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
; Incoming radio connections
[radio]
type = user
disallow = all
allow = slin16
allow = slin
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 = Password
host = dynamic
disallow = all
allow = slin
allow = ulaw
allow = adpcm
allow = gsm
transfer = no
[phone-iaxrpt]
type = friend
context = phone-iaxrpt
auth = md5
secret = Password
host = dynamic
disallow = all
allow = slin
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 = Your_Secret_Password_Here
host = dynamic
disallow = all
allow = slin
allow = ulaw
allow = adpcm
allow = gsm
transfer = no
[allstar-sys]
type = user
context = allstar-sys
auth = rsa
inkeys = allstar
disallow = all
allow = slin
allow = ulaw
allow = adpcm
allow = gsm
[allstar-public]
type = user
context = allstar-public
auth = md5
secret = allstar
;calltokenoptional=0.0.0.0/0.0.0.0
requirecalltoken=no
disallow = all
allow = slin
allow = ulaw
allow = adpcm
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
#tryinclude custom/iax.conf
Eric
K2CB