[Asterisk-Dev] IAX2 calls fail after 60 seconds when traversing NAT

Steven Sokol ssokol at sokol-associates.com
Thu Feb 12 18:04:24 MST 2004


Please forgive the cross-post.  I wanted this to get in front of all of
those who might have ideas.

I have been working for the past two weeks on a bug in either chan_iax2 or
libiax2.  The issue manifests itself as such:

1.  A call is established between two clients using libiax2 (using the IAX2
protocol).

2.  Both clients are located behind a NAT screen (the same NAT screen).
Asterisk is located on a public (routable) address outside of the NAT.

3.  Initial setup succeeds.  All signaling messages (reliably sent packets
requiring ACK).  Voice frames (mini frames) also flow properly and the call
connects as expected.

4.  After approximately 60-65 seconds of conversation, the voice drops out
on both legs of the call.  Both clients continue to send outbound voice
packets to the Asterisk, but no valid voice packets (mini frames) arrive.

5.  Immediately prior to the drop of the voice connectivity, se see a
retransmission notice on Asterisk's IAX2 debugging output.  Why Asterisk (or
either client) would attempt to re-send a voice frame is unknown.

6.  The audio does not return.  The call eventually is dropped (after 60-120
seconds).

This only occurs when the call traverses a NAT.  It seems to happen on both
Linux and Win32 clients.  Michael Van Donselaar and I have been tracking
this for several weeks.  We have run up against the wall with this.

Could we ask for a bit of assistance from one of the project leaders.  We
will be happy to provide you with any information and copies of our client
code.  Any assistance would be greatly appreciated.

Thanks in advance,

Steve Sokol
Sokol & Associates, LLC
www.sokol-associates.com
IaxTel: (700) 613-9004
Phone:  (816) 822-1807





More information about the asterisk-dev mailing list