IAX Qualify Timers

Home » Asterisk Users » IAX Qualify Timers
Asterisk Users 1 Comment

Hi,

I think I encountered a bug in the qualify timers for IAX on asterisk
1.8 but I’d like to check if I’m not messing up in my config somewhere before reporting a bug.

In my IAX peer configuration I have this:
[remote-host]
type=friend host2.16.6.45
username=remote-host secret=test notransfer=yes qualify000
qualifyfreqnotok0000

disallow=all allow=alaw allow=ulaw allow=ilbc

auth=md5
encryption=no

With this configuration, I expect that I can receive a response PONG
message from 172.16.6.45 up to 16 seconds after the POKE is sent out before the peer is marked UNREACHABLE or LAGGED.

On the 172.16.6.45 machine I have configured an outgoing delay of
6000ms, effectively slowing down all outgoing traffic on the interface by 6 seconds.

Here’s what really happens:
– Asterisk is started
– outgoing POKE is sent
– even before the PONG is received (after about 3 seconds), the peer is marked UNREACHABLE
– PONG message is received from 172.16.6.45 (6 seconds after the POKE). Nothing is displayed in the debug logs here and no ACK is sent out
– After the qualifyfreqnotok timer, another POKE is sent out
– 6 seconds later the PONG is received. This time, asterisk responds an ACK and marks the peer as REACHABLE
– and now history repeats itself indefinitely, switching between UNREACHABLE and REACHABLE after each POKE.

This results in these notices in the logs:
[Aug 21 10:54:58] NOTICE[13318] chan_iax2.c: Peer ‘remote-host’ is now REACHABLE! Time: 6001
[Aug 21 10:56:02] NOTICE[13323] chan_iax2.c: Peer ‘remote-host’ is now UNREACHABLE! Time: 6001
[Aug 21 10:56:38] NOTICE[13319] chan_iax2.c: Peer ‘remote-host’ is now REACHABLE! Time: 6001
[Aug 21 10:57:42] NOTICE[13324] chan_iax2.c: Peer ‘remote-host’ is now UNREACHABLE! Time: 6001
[Aug 21 10:58:18] NOTICE[13318] chan_iax2.c: Peer ‘remote-host’ is now REACHABLE! Time: 5999
[Aug 21 10:59:22] NOTICE[13325] chan_iax2.c: Peer ‘remote-host’ is now UNREACHABLE! Time: 5999
[Aug 21 10:59:58] NOTICE[13319] chan_iax2.c: Peer ‘remote-host’ is now REACHABLE! Time: 6001
[Aug 21 11:01:02] NOTICE[13324] chan_iax2.c: Peer ‘remote-host’ is now UNREACHABLE! Time: 6001
[Aug 21 11:01:38] NOTICE[13320] chan_iax2.c: Peer ‘remote-host’ is now REACHABLE! Time: 6001
[Aug 21 11:02:42] NOTICE[13325] chan_iax2.c: Peer ‘remote-host’ is now UNREACHABLE! Time: 6001
[Aug 21 11:03:18] NOTICE[13319] chan_iax2.c: Peer ‘remote-host’ is now REACHABLE! Time: 6001

I’m running asterisk 1.8.13.0, but I also tested on 1.8.23.0 with the same result.

Cheers,

Frederic

One thought on - IAX Qualify Timers

  • Perhaps you should use either yes or no for the qualify= line. Here is an extract from the sample file

    ;qualify=yes ; Make sure this peer is alive
    ;qualifysmoothing = yes ; use an average of the last two PONG
    ; results to reduce falsely detected LAGGED hosts
    ; Default: Off
    ;qualifyfreqok = 60000 ; how frequently to ping the peer when
    ; everything seems to be ok, in milliseconds
    ;qualifyfreqnotok = 10000 ; how frequently to ping the peer when it’s
    ; either LAGGED or UNAVAILABLE, in milliseconds

    Larry.