DVSwitch connection data not lining up in Allmon3

I notice when I connect to a node via IAX using DVSwitch and user/passwd auth, things don’t line up in allmon. I’m currently looking at allmon and I have a linked node listed, and my DVSwitch phone. The node looks good with Conn Time column showing a time, direction saying OUT, Connect State is ESTABLISHED and Mode is Transceive. For the DVSwitch entry, Conn Time is ESTABLISHED, Direction is the conn time, Connect State is blank. The colums don’t line up coming in via DVSwitch. At one point they were lining up and I wasn’t sure if it was a change I made or an update to Allmon3. Perhaps there was something in the [iaxclient] part of iax.conf that isn’t there now that had fixed it. Or something on the DVSwitch end.

This copy and paste from the webpage is not easy to ready, but it shows what I am talking about in the Allmon3 home page:

Node Description Last Recv Conn Time Direction Connect State Mode
49520 K5FD www.bigbendarc.org Fort Davis, Texas Never 00:06:03 OUT ESTABLISHED Transceive
KG5DRT-1-P192.168.10.61 Direct Client Never ESTABLISHED 01:22:58 Local Monitor

iax.conf stanza:

[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 = ThePassword
host = dynamic
disallow = all
allow = ulaw
allow = adpcm
allow = gsm
transfer = no
requirecalltoken=no

Anytime I setup a fresh node, I edit the password for the above stanza and setup DVSwitch to connect that way. The columns are mixed up on every ASL3 node I have tried. Can’t remember if that requirecaltoken setting is in the default config file, but I have tried with our without that in the config, as well as calltokenoptional=0.0.0.0/0.0.0.0 and neither make a difference. Tried changing type to user instead of friend but also no change in columns.

Parsing out the node connections is messy because it’s not a data-driven element, it’s text processing. Please open a bug against Allmon3 in GitHub and I can look at it. It’s probably the same issue with the TLB connections but since I don’t have a TLB, I can’t reproduce the problem. If you can directly send me how you’re setting up DVSwitch I probably have a better shot of reproducing the issue.

I can just put the details here if that’s cool:

Proto: IAX2
Hostname: the 192. IP address of my node raspi
Port: 4569
Username: iaxclient
Password: [the password from iax.conf iaxclient stanza]
CallerID: KG5DRT-1
Caller Number: [null]
Node: 49555
Phone mode IAX2 connection: checked, but unchecked same result
Use public authentication: unchecked
Autoload node: unchecked

Well, well. As I was documenting this I remembered what made it work right. If I connect via the internet, as above but with the internet IP of my house and my DVSwitch phone connected to the internet outside of my lan via hotspot, the connection looks right in Allmon3. I will try a network capture later and see if I can see what’s going on…

Up above one can see where I’m connecting with my callsign KG5DRT-1 in the CallerID field. I added the -1 because I had another phone I was connecting with the same way and I did -2 for that one. If I remove the -1, it looks good in the Allmon3 UI. I tried changing it to KG5DRT-44-1 and the columns look wrong again the same way as with one - in the callsign. If I do KG5DRT-SSB, that looks fine in the UI.

So long story short, the CallerID field in DVSwitch, don’t add a dash followed by digits at the end, it will mess up the Allmon3 UI. Adding a dash followed by alpha characters at the end is fine.

I will open something in github.

If you edit /usr/lib/python3/dist-packages/asl_allmon/ami_parser/__init__.py and on line 160, change it to this:

elif re.match(r'^[A-Za-z]', ce[1]):

And then restart Allmon3, does that fix the issue?

The change is to add the ^.

No it does not fix the issue.

[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) <----- try removing the -P
same => n(hangit),NoOp(No Caller ID Name)
same => n,Playback(connection-failed)
same => n,Wait(1)
same => n,Hangup

I think I commented on this in another thread. I don’t run Allmon3 on my nodes (yes, I should and will) so I can not replicate.

73, Steve N4IRS

Please follow this issue: Rewrite ami_parser parse_xstat() for Various Non-Standard Formats of "Calls" · Issue #254 · AllStarLink/Allmon3 · GitHub