From: Steven S. <ss...@so...> - 2004-02-08 21:55:18
|
FYI - I tried setting notransfer=yes and it had no effect. Asterisk still tried to establish a native bridge. Still lost audio after 65 seconds. > -----Original Message----- > From: iax...@li... [mailto:iaxclient-devel- > ad...@li...] On Behalf Of Steven Sokol > Sent: Sunday, February 08, 2004 2:43 PM > To: iax...@li... > Subject: [Iaxclient-devel] Re: Bug info... (really weird bug info) > > More Data: > > Watching the trace, the error seems to take place after the timeout for > the > transfer attempt. As Adam pointed out, IAX2 always tries to establish a > native bridge. Somehow our clients, being both NATed behind the same NAT > device (i.e. both using the same real outside IP address) are unable to > connect natively (the NAT router is not smart enough to "pinwheel" IAX > packets?) so the connection does not work. > > Oddly, the IAX protocol seems to default to switching over to a > native-bridged operation UNLESS it receives tacit failure messages from > both > sides. > > Here's what you see with a IAX2-to-IAX2 call through Iaxtel that does > _not_ > have any problems with the audio: > > -- IAX2[1111]/8 answered IAX2[iaxtel@69.73.19.178:4569]/7 > -- Stopped music on hold on IAX2[iaxtel@69.73.19.178:4569]/7 > -- Attempting native bridge of IAX2[iaxtel@69.73.19.178:4569]/7 and > -- Channel 'IAX2[iaxtel@69.73.19.178:4569]/7' unable to transfer > > Note the last line - the chan_iax2 code at Iaxtel detected that a native > session could not be established, so it rejected the attempt and my > Asterisk > continued to relay the voice data. > > Here's what you see with the IAX client-to-IAX client call: > > -- Accepting unauthenticated call from 64.151.42.28, requested format > = > 2, actual format = 2 > -- Executing Dial("IAX2[guest@1105]/3", "IAX2/1111|20|m") in new stack > -- Called 1111 > -- Started music on hold, class 'default', on IAX2[guest@1105]/3 > -- Call accepted by 64.151.42.28 (format GSM) > -- Format for call is GSM > -- IAX2[1111]/5 is ringing > -- IAX2[1111]/5 answered IAX2[guest@1105]/3 > -- Stopped music on hold on IAX2[guest@1105]/3 > -- Attempting native bridge of IAX2[guest@1105]/3 and IAX2[1111]/5 > -- Registered '1111' (AUTHENTICATED) at 64.151.42.28:4569 > -- Registered '1111' (AUTHENTICATED) at 64.151.42.28:4569 > > You never see either side (properly?) reject the attempted native > transfer, > so Asterisk bows out of the call and the audio stops. > > Can we set a noreinvite flag for IAX (I know, I should look at the > source...) to prevent the system from event trying to reinvite the audio > point-to-point? > > I want to blame the "both clients behind the same NAT screen" factor, but > I > have had client-to-client calls loose audio after 1 minute even when users > are calling in from outside. > > Thoughts? > > Adam, did you have anything like this spring up in Firefly? > > Thanks, > > Steve > > > > > > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > Iaxclient-devel mailing list > Iax...@li... > https://lists.sourceforge.net/lists/listinfo/iaxclient-devel |
From: Adam H. <ad...@te...> - 2004-02-08 22:30:55
|
> More Data: > > Watching the trace, the error seems to take place after the timeout for the > transfer attempt. As Adam pointed out, IAX2 always tries to establish a > native bridge. Somehow our clients, being both NATed behind the same NAT > device (i.e. both using the same real outside IP address) are unable to > connect natively (the NAT router is not smart enough to "pinwheel" IAX > packets?) so the connection does not work. I've been meaning to talk to Mark about this. I want to add something to IAX to allow two people behind the same nat to talk to each other (many NAT routers can't do "pinwheel") > > Oddly, the IAX protocol seems to default to switching over to a > native-bridged operation UNLESS it receives tacit failure messages from both > sides. > Neg, it's actually when it receives a confirmation from both sides. So in your situation where both parties can't talk to each other, it should remain communicating through the server. > Can we set a noreinvite flag for IAX (I know, I should look at the > source...) to prevent the system from event trying to reinvite the audio > point-to-point? > > I want to blame the "both clients behind the same NAT screen" factor, but I > have had client-to-client calls loose audio after 1 minute even when users > are calling in from outside. I think you're answered why before, from one of your emails >Question: If the client ultimately sends a transfer reject message back to >Asterisk, why would Asterisk stop relaying the mini-frames (i.e. why would >it assume the native transfer took place)? From the trace I attached >before, it looks like the client sends a TXCNT message, followed by a number >of TXREJ messages. It appears to never receive an ACK from the Asterisk for >the TXREJ message (or is it the other client it is rejecting?) so it sends >it multiple times. Ding Ding Ding, for whatever reason the TXREJ aren't getting ACK'd. IAX will kill any session when a packet times out. > > Thoughts? > > Adam, did you have anything like this spring up in Firefly? Nope, sorry |