Iax trunking registration

Hi all…sorry for the long premise…

I have four pbx (A;B;C;D)in separated locations connected via iax.

  • A pbx has 4 isdn lines to share with the others that have none, receive calls via ivr and spread to selected pbx (A,B,C,D) through iax trunk.
  • A pbx registers itself with B,C,D
  • B,C,D pbx each registers to A. So the call can flows between them
  • Each location has modem only, no firewall or similar. PBX has firewall disabled.

All of sudden A can’t register to B.
B can register to A and make calls through it
To make test i have tried to use my personal pbx and i could register to B without problem.
When A tries to connect to B in console i see nothing.

To get things working again I have registered C to B (no problem at all), and when i have to reach B extensions through A ivr, i first contact C (iax trunk in dialplan) and then reroute to B (iax trunk in dialplan). -----> for now no audio quality test the office are closed at the moment, i only see call flows

A pbx could connect via ssh to B so no clear evidence of network problem…

Where could i start investigatingand how ?

Thank all

tcpdump on B udp port 4569 src or dst

Thanks…even if nothing appears in the asterisk console?

Hi…even if in console nothing appeared…tcpdump on B captured packet coming from A…

Sorry but…It doesn’t make any sense to me…

Some general debugging tips, especially if you are not seeing anything in the CLI:

  • Make sure authdebug=yes is set in iax.conf on both sides.
  • Run iax2 set debug on on both sides
  • Enable the debug log (maybe even the full log to the CLI) in logger.conf, then do core set debug 3 chan_iax2

Hi…activating debug log i noticed this

[Aug 26 16:54:16] DEBUG[4448] chan_iax2.c: Allocate call number
[Aug 26 16:54:16] DEBUG[4448] chan_iax2.c: ip callno count incremented to 2 for aaa.aaa.aaa.aaaa
[Aug 26 16:54:16] DEBUG[4448] chan_iax2.c: Registration created on call 10771
[Aug 26 16:54:17] DEBUG[4451] chan_iax2.c: schedule decrement of callno used for aaa.aaa.aaa.aaaa in 60 seconds
[Aug 26 16:54:26] DEBUG[4443] chan_iax2.c: ip callno count decremented to 1 for aaa.aaa.aaa.aaaa
[Aug 26 16:55:07] DEBUG[4449] chan_iax2.c: Allocate call number
[Aug 26 16:55:07] DEBUG[4449] chan_iax2.c: ip callno count incremented to 2 for aaa.aaa.aaa.aaaa
[Aug 26 16:55:07] DEBUG[4449] chan_iax2.c: Registration created on call 8600
[Aug 26 16:55:07] DEBUG[4452] chan_iax2.c: schedule decrement of callno used for aaa.aaa.aaa.aaaa in 60 seconds
[Aug 26 16:55:17] DEBUG[4443] chan_iax2.c: ip callno count decremented to 1 for aaa.aaa.aaa.aaaa
[Aug 26 16:55:57] DEBUG[4449] chan_iax2.c: Allocate call number
[Aug 26 16:55:57] DEBUG[4449] chan_iax2.c: ip callno count incremented to 2 for aaa.aaa.aaa.aaaa
[Aug 26 16:55:57] DEBUG[4449] chan_iax2.c: Registration created on call 8443
[Aug 26 16:55:57] DEBUG[4452] chan_iax2.c: schedule decrement of callno used for aaa.aaa.aaa.aaaa in 60 seconds
[Aug 26 16:56:07] DEBUG[4443] chan_iax2.c: ip callno count decremented to 1 for aaa.aaa.aaa.aaaa

Activating `iax2 set debug on i noticed this

Rx-Frame Retry[ No] – OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00008ms SCall: 00582 DCall: 00000 aaa.aaa.aaa.aaaa:4569
USERNAME : alberg
REFRESH : 60

Tx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: CTOKEN
Timestamp: 00008ms SCall: 00001 DCall: 00582 aaa.aaa.aaa.aaaa:4569
CALLTOKEN : 51 bytes

Rx-Frame Retry[Yes] – OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00008ms SCall: 00582 DCall: 00000 aaa.aaa.aaa.aaaa:4569
USERNAME : alberg
REFRESH : 60

Tx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: CTOKEN
Timestamp: 00008ms SCall: 00001 DCall: 00582 aaa.aaa.aaa.aaaa:4569
CALLTOKEN : 51 bytes

Rx-Frame Retry[Yes] – OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00008ms SCall: 00582 DCall: 00000 aaa.aaa.aaa.aaaa:4569
USERNAME : alberg
REFRESH : 60

Tx-Frame Retry[ No] – OSeqno: 000 ISeqno: 001 Type: IAX Subclass: CTOKEN
Timestamp: 00008ms SCall: 00001 DCall: 00582 aaa.aaa.aaa.aaaa:4569
CALLTOKEN : 51 bytes

But it does as you’re capturing raw packets

I thought the console should show anything in a register attempt…

just for information, if it helps…Pbx A and Pbx B has same private ip class 192.168.0.X…Meanwhile C and D are 192.168.1.X and 192.168.2.X

It looks like peer and user work the same as in the SIP drivers, and you seem to know all the IP addresses, so why are you using registration at all? Registration is for when one side doesn’t know the other’s address in advance.

PS you mean sub-network, not class.

Hi David…yes…in fact i’m using it directly on dialplan…But if i’ve got no registration so even dialplan doesn’t works…

PS…yes…

Today we got working using a “man in the middle” pbx…A to call B must call C who can reach B without problem…

I’ve removed openvpn from B…but all the same…

Have you got any ideas to share ?

Thanks David…

The dialplan doesn’t come into this. If you know the addresses you should just use type=peer, and not use host=dynamic.

Now after few days iax between A e B resume working correctly…

But after a couple of days of correct work, iax between A and C stop working and goes to timeout…

I’m going mad…it Seems pbx couldn’t handle 4 iax trunk…