[Asterisk-Users] Intermittant IAX Call Failures

Matthew Farley asterisk at wheatstate.net
Wed Aug 6 07:45:28 MST 2003


     I was wondering if anyone had seen this problem before and/or could
offer any insight into what the trouble might be:

     I have an Asterisk machine that it set up as a mutual friend with
another one (in another state... about 150ms away). Calls between the
two fail to get established approximately 50% of the time. When a call
works, everything is fine. When one fails, however, I see a large number
of 'VNAK' and 'INVAL' messages from iax debug, and the call is never
connected.

     I think that our contexts, usernames, and secrets are set up all
right, since calls do go through just fine part of the time. My machine
also registers reliably with the other machine, and we have had the same
problem with a non-dynamic host declaration on both ends.

     Both machines are running the latest CVS code as of Tuesday, Aug 5
(updating from month-old code made no difference so far as the IAX
trouble is concerned). My end is a stock Debian 3.0 setup, the other end
is RedHat 9. Other than the IAX trouble, asterisk is running wihtout a
hitch on both ends. My end is VoIP only, and the other end has a T400P
card for PSTN connectivity. Both are on public Internet IPs with
substantial bandwidth available.

     So far as I can tell from debug output, the difference seems to be
that on the failed calls, a signal of Type: Voice comes first, whereas
on a good call this doesn't happen until after the AUTHREQ.

     Any insight into this problem would be greatly appreciated. If more
information is needed to analyze this effectively, please let me know
what you need. Thanks!

Sincerely,
Matthew Farley


------------------------------------------------------------------
My iax.conf entry: (my ip is 208.222.40.227)

register => username:****@216.234.116.177
[wheat1]
type=friend
username=wheat1
password=*****
host=216.234.116.177
auth=plaintext
context=default


----------------------------------------------------------------------
The iax.conf entry at the other end is: (its IP is 216.234.116.177)

[wheat1]
type=friend
host=dynamic
context=wheat1
username=wheat1
secret=****
auth=plaintext
sendani=yes
accountcode=wheat1

---------------------------------------------------------------------
The extensions.conf entry at the other end looks like this:

exten => 2487244434,1,Dial(IAX/wheat1:****@wheat1/${EXTEN})

------------------------------------------------------------------------
The example call here is from the PSTN to the asterisk box at the other
end of my connection, thru the Internet via IAX to my asterisk box.
------------------------------------------------------------------------
When a call works, my iax debug output looks like this:
(this is a complete call - I really did hang up at the end)

Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: NEW
Tx-Frame Retry[-01] -- Seqno: 00  Type: IAX       Subclass: ACK
Tx-Frame Retry[000] -- Seqno: 00  Type: IAX       Subclass: AUTHREQ
Rx-Frame Retry[N/A] -- Seqno: 01  Type: Voice     Subclass: 2
Tx-Frame Retry[-01] -- Seqno: 01  Type: IAX       Subclass: ACK
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: ACK
Rx-Frame Retry[N/A] -- Seqno: 02  Type: IAX       Subclass: AUTHREP
Tx-Frame Retry[-01] -- Seqno: 02  Type: IAX       Subclass: ACK
     --Accepting AUTHENTICATED call from 216.234.116.177, requested
format = 2, actual format = 2
     --Executing Ringing("IAX[wheat1 at wheat1]/795", "5") in new stack
     --Executing Wait("IAX[wheat1 at wheat1]/795", "5") in new stack
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: ACCEPT
Tx-Frame Retry[000] -- Seqno: 02  Type: CONTROL   Subclass: RINGING
Rx-Frame Retry[N/A] -- Seqno: 01  Type: IAX       Subclass: ACK
Rx-Frame Retry[N/A] -- Seqno: 02  Type: IAX       Subclass: ACK
Rx-Frame Retry[N/A] -- Seqno: 03  Type: IAX       Subclass: HANGUP
Tx-Frame Retry[-01] -- Seqno: 03  Type: IAX       Subclass: ACK




------------------------------------------------------------------
When a call fails, my iax debug output looks like this:
Rx-Frame Retry[N/A] -- Seqno: 01  Type: Voice     Subclass: 2
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: NEW
Tx-Frame Retry[-01] -- Seqno: 00  Type: IAX       Subclass: ACK
Tx-Frame Retry[000] -- Seqno: 00  Type: IAX       Subclass: AUTHREQ
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Tx-Frame Retry[000] -- Seqno: 01  Type: IAX       Subclass: VNAK
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
Rx-Frame Retry[N/A] -- Seqno: 00  Type: IAX       Subclass: INVAL
*CLI> 






-- 
Matthew Farley <asterisk at wheatstate.net>




More information about the asterisk-users mailing list