Why does qualify=yes break many IAX phones?


If you look at the voip-info wiki, it appears that using the ‘qualify’ option breaks many IAX2 phones including firefly, diax, IAXphone, IAXComm, GIPTEL, Yuxin, Atcom AT-320, etc. The phones become unreachable. Yet the qualify option seems useful as a way to keep NAT sessions open.

Qualify seems to work with the idefisk softphone. Since using the qualify option, the softphone extension always rings on my desktop (idefsk <–> NAT <–> Internet <–> NAT <–> asterisk) when a call comes into my Asterisk server. When using the other softphones without the qualify option I noticed that my extension would not ring for about 1 out of 4 calls coming into Asterisk, leading me to believe that the NAT session was closing and that the IAX2 protocol is not as NAT friendly as advertised.

So, why does the qualify option break so many phones when it seems to me to be the solution to a fairly serious problem?