This is somewhat related to my other query on the list regarding NAT traversal. I have heard many times that IAX is "NAT-transperant". I am unsure how it accomplishes this. I do know that SIP works like this: your SIP device send a request to the SIP server (usually on port 5060) with whatever command. The SIP server respends to your device's "apparent" IP and port (this is decided depending on how that NAT is set up, STUN, etc.). The voice is then sent to the "apparent" RTP port on your device (deciding what that is, again, would depend on the NAT set up). How does IAX eliminate this problem of ports being "mapped" by your NAT router and external IPs? Does it use one port for both commands and voice packets? Does the remote server just use the "received from" IP address and port to respond? Finally, would an IAXy work seamlessly in a configuration where it is plugged into a NAT router which is plugged into another NAT router - double NATted? The * server is on a public IP. -- Nabeel Jafferali tel: 647.722.8457 x201 718.606.4190 x201 fwd: 46990 x201 email/msn: nabeel<at>jafferali.net
On Sunday 19 December 2004 00:26, Nabeel Jafferali wrote:> I have heard many times that IAX is "NAT-transperant". I am unsure how > it accomplishes this. > > I do know that SIP works like this: your SIP device send a request to > the SIP server (usually on port 5060) with whatever command. The SIP > server respends to your device's "apparent" IP and port (this is decided > depending on how that NAT is set up, STUN, etc.). The voice is then sent > to the "apparent" RTP port on your device (deciding what that is, again, > would depend on the NAT set up).Note that in the above description, the SIP communication is one phase of the process, RTP (the audio channel) is a separate phase, and operates on totally different UDP ports from the SIP phase. The UDP ports used by RTP vary for each conversation, and therefore cannot be known about by a firewall or NAT device in advance.> How does IAX eliminate this problem of ports being "mapped" by your NAT > router and external IPs? Does it use one port for both commands and > voice packets? Does the remote server just use the "received from" IP > address and port to respond?Yes. IAX uses just a single port (UDP 5036) and IAX2 uses just a single port (4569) to send both call setup and audio data between the endpoints. Therefore a NAT device between two IAX systems has only a single channel, on a well-known port number, to deal with, and this is simple to do.> Finally, would an IAXy work seamlessly in a configuration where it is > plugged into a NAT router which is plugged into another NAT router - > double NATted? The * server is on a public IP.Yes, so long as both NAT routers allow reply packets back through, this will work (and if they don't, they're not much use for anything else either). Regards, Antony. -- "The problem with television is that the people must sit and keep their eyes glued on a screen; the average American family hasn't time for it." - New York Times, following a demonstration at the 1939 World's Fair. Please reply to the list; please don't CC me.
As Per The WiKi: IAX sends both command information and voice data over the same connection. This allows it th transverse a NAT seamlessly. As for Double NAT, My setup is: Home PBX <----[Wireless]----> ISP WiFi NAT <----[Ethernet]----> Primary NAT <----[Ethernet]----> Work PBX So, Yes it will work over double NAT, I can send and receive calls at home. In fact, I call my wife all the time from work. -- Christopher Dobbs Nabeel Jafferali wrote:>This is somewhat related to my other query on the list regarding NAT >traversal. > >I have heard many times that IAX is "NAT-transperant". I am unsure how >it accomplishes this. > >I do know that SIP works like this: your SIP device send a request to >the SIP server (usually on port 5060) with whatever command. The SIP >server respends to your device's "apparent" IP and port (this is decided >depending on how that NAT is set up, STUN, etc.). The voice is then sent >to the "apparent" RTP port on your device (deciding what that is, again, >would depend on the NAT set up). > >How does IAX eliminate this problem of ports being "mapped" by your NAT >router and external IPs? Does it use one port for both commands and >voice packets? Does the remote server just use the "received from" IP >address and port to respond? > >Finally, would an IAXy work seamlessly in a configuration where it is >plugged into a NAT router which is plugged into another NAT router - >double NATted? The * server is on a public IP. > >-- >Nabeel Jafferali >tel: 647.722.8457 x201 > 718.606.4190 x201 >fwd: 46990 x201 >email/msn: nabeel<at>jafferali.net >_______________________________________________ >Asterisk-Users mailing list >Asterisk-Users@lists.digium.com >http://lists.digium.com/mailman/listinfo/asterisk-users >To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > >
> As Per The WiKi: > > IAX sends both command information and voice data over the same > connection. This allows it th transverse a NAT seamlessly. > > As for Double NAT, My setup is: > Home PBX <----[Wireless]----> ISP WiFi NAT > <----[Ethernet]----> Primary NAT <----[Ethernet]----> Work PBX > > So, Yes it will work over double NAT, I can send and receive calls at > home. In fact, I call my wife all the time from work.Thanks very much for your quick reply. So I assume the remote * server simply replied to the IAX client to the port from which the commands appear to have been initiated, thereby solving the problem of NAT mapping. Besides the IAXy, are there any other IAX adapter devices? Any being planned? I realize the IAXy came out a little while ago - are there any obvious features missing from it? Where's a good place to pick up 4-5 of these (I'm in Canada)? -- Nabeel Jafferali tel: 647.722.8457 x201 718.606.4190 x201 fwd: 46990 x201 email/msn: nabeel<at>jafferali.net
Nabeel Jafferali wrote:> This is somewhat related to my other query on the list regarding NAT > traversal. > > I have heard many times that IAX is "NAT-transperant". I am unsure how > it accomplishes this. > > I do know that SIP works like this: your SIP device send a request to > the SIP server (usually on port 5060) with whatever command. The SIP > server respends to your device's "apparent" IP and port (this is decided > depending on how that NAT is set up, STUN, etc.). The voice is then sent > to the "apparent" RTP port on your device (deciding what that is, again, > would depend on the NAT set up).Actually, ASTERISK's NAT support deals with the "apparent IP address", but that's just how Asterisk does it. It's not a standard. See the following for SIP and NAT: http://voip-itec.tamu.edu/files/reference/voip-nat.pdf http://www.cs.columbia.edu/sip/drafts/Ther0005_SIP.pdf http://www.vonmag.com/issue/2004/julaug/columns/isenberg.htm -- I am seeking part or full time employment in the Greater Toronto Area, My preference is part time employment with some telecommuting, but all offers will be considered. Contact eric at fnords.org.
Thanks for all the info so far!> Therefore a NAT device between two IAX systems has only a > single channel, on a well-known port number, to deal with, > and this is simple to do.So then how does IAX deal with the equivalent of SIP reinvites? Or are all IAX calls' audio carried through the * server? -- Nabeel Jafferali tel: 647.722.8457 x201 718.606.4190 x201 fwd: 46990 x201 email/msn: nabeel<at>jafferali.net