This is usually a networking issue and this can ordinarily be proven by turning off qualify explicitly for the carrier.
qualify=yes or qualify=500 (or any other number) will cause asterisk to "disqualify" any sip connection that exceeds the specified time range (default is 1000, or one second, for "yes", or you can specify a number such as 500 which is a half second).
So the story goes like this: Every XX seconds, asterisk will send a sip packet to the other end of every sip connection which requires "qualifying". Your network (for whatever reason) does not manage to get the return back back from that connection in the required amount of time. At that moment, asterisk will flatly refuse to send any traffic to that sip connection (unreachable sip connection becomes "channel unavailable" without bothering to try).
So, fix your network problem ... and to prove this is true, you can modify qualify=no and it will continue to try even when the sip account is unreachable (as it will no longer be detecting "unreachable" for this connection, so it will not refuse to call ... it will just send the call blindly and hope for the best).
If this causes things to actually work, then it was merely that the time lag was too great, as opposed to the normal "packet never made the round trip". If this does not fix it (usually it does not, by the way), you'll just be dropping sip packets instead of channel unavailable.
Asterisk will "dial" .. and never receive a response. Then you can try to find out why the call never went through. Which inevitably turns out to be ... a network problem. LOL
Happy Hunting.
