Understanding voip and NAT 

Newsgroups:  gmane.linux.debian.user
Date:        Sat, 5 Feb 2005 14:04:45 +0000
> I would like to set up a system to communicate via voice from my Debian Linux
> PC on my local lan - via a NAT D-link 604 broadband router to the net, to my
> daughter running Windows XP  - behind a NAT wireless router (Linksys WRT54G)
> - which she shares with some friends at University.

Using a microphone and headphones this is can be done with SIP software for Linux (e.g. linphone, kphone, sjphone, LIPZ4) and Windows (e.g. x-lite, sjphone, firefly). The major problem is usually NAT but by opening ports for the SIP messages and the audio (RTP - Real Time Protocol) stream on the routers and/or employing an outbound proxy or a STUN server there is no reason why successful connections should not be set up.

Public STUN servers are easily available whereas you generally have to signup with a provider to use an outbound proxy. There are major differences between the two methods but essentially both are intended to overcome the problems of traversing firewalls and NAT.

> It would also be nice, but not as essential, to also add my wife's Win98SE
> computer (also on the same LAN as my PC) into this communication system, with
> one on one, or conference calling.

Equip your wife's machine with some suitable Window's client and have it operate on a different SIP port from the client on your machine. Forward this port on the router to her machine. Whether conferencing is possible is dependent on the clients.

> My local D-Link router has uPnP capability, and I can freely adjust which
> ports are forwarded to which IP address inside my LAN.  I "think" (but I am
> not 100% sure) that I get my daughter to adjust the routing of her NAT router
> if necessary.

If your daughter has difficulty with configuring her router or does not have access to it then NAT traversal can be accomplished by her using an outbound proxy.

> I have been trying to read how to do this, but everything seems to assume
> that you already know all about what they are talking about.  Could
> someone who does understand it, give me some recommendations about what I
> should read about.

Some links:
http://www.freeworlddialup.com
http://www.voip-info.org
http://www.voip.org.uk
http://www.gossiptel.com
http://www.voiptalk.org

These are by no means exhaustive but hopefully will be informative. The last two provide UK based SIP services.

> I think that I probably need some form of SIP server (to enable both my sofe
> and myself to have independent addresses) which I can put on my debian server
> on the LAN side of my router.  Debian seems to have two possibilities
> (siproxyd and asterisk) for this, but I can't find anywhere that makes this
> 100% clear, or tells me which one I really should use. (The biggest problem
> seems to be NAT traversal)

No SIP server is needed and neither do you want siproxd or asterisk at this stage. Basically you use someone else's server. Contrast using an ISP's smarthost with sending mail directly, which requires you to run a mail server.

Note that siproxd and asterisk perform different functions. siproxd is used to proxy requests from behind NAT to the internet whereas asterisk is a PBX.

> In terms of a client, I was thinking of using KPhone (since I already run
> KDE) on my Linux PC, and am looking around for something for the Windows
> machines.  Xten seems a possibility - but then I got confused since it
> seems to only have a number dial interface and I couldn't see how that
> fitted with the servers.

kphone should be fine. I've used it without KDE. I don't have Windows and x-lite from Xten has no Linux version so I cannot comment on the cause of your confusion. However, the softphones I have used have all had a way of entering a SIP URL as username@domain in addition to a numerical keypad.

Something intended to get you going:

  1. Go to voiptalk.org.
  2. Read the voiptalk documentation on setting up a SIP phone.
  3. Obtain an account.
  4. Configure kphone with your username (User Part) and password.
  5. Use voiptalk.org for the domain (Host Part).
  6. Use voiptalk's outbound proxy without any forwarding of ports.
  7. Test by dialing 901, 902, 903 and 904.
  8. Test by phoning me if you wish.

ABrady has also given a very nice description of Skype and no doubt it will enable you do what you want. However, on a list such as this I feel it is fair to point out that Skype uses a proprietry protocol and although it is probably possible for it to interwork with SIP based software its developers do not appear to have any intention of allowing this.

Brian Potkin

Understanding voip and NAT 

> This isn't an answer because I don't know. But a suggestion/question
> that might solve (nearly) everything.
>
> Have you tried or considered Skype? It does all of what you say you're
> trying to do. It runs on linux, Winders and Mac. It's free, though there
> are paid options that allow you to dial outside the Skype network while
> still retaining the free part for everybody connected to Skype. It does
> conferencing, IM, file sharing (I've heard, not tried), connects to any
> machine with a sound card and microphone, it supports some internet
> phone equipment (but not SIP, I believe), it is portable in that you can
> log on from anywhere in the world and use it, you can block or allow
> specific users, you can search users, you can change available status
> the way you can with IM, you can have multiple users running from the
> same location (on different machines), you can have multiple identities
> for each machine, etc.
>
> I'm not trying to sell it, since it isn't for sale. It just seems like
> the easiest way to go to get what say you want.

Regarding Skype, I downloaded the latest linux version (1.0.0.1) 2 days ago. It was easy to set up and I can make and receive calls, BUT… there's a problem for linux users at least for now. Skype has a bell (or you can use your own ring sound file) that alerts you when there's an incoming call. This is useful if you're not planted in front of the monitor all the time. Well, it's not implemented for the linux version. I went to the Skype forum and queried why the Ringing option on the options > hand/headset is greyed out. I was told to wait for some later version when they get around to implementing this feature. For me, a phone that doesn't ring is pretty useless. If anybody has managed to get Skype to ring on Debian, I'd like to hear about.

Jonathan Kaye

Voice Over IP products list 

Free Phone
http://www-sop.inria.fr/rodeo/fphone/index.html
is an audio tool for the Internet. 3.7 Beta 1, February 19, 1999

Last release: 2000-07-23. This release is the first one after a major rewrite of the code initiated by timecop. The end result of 3 weeks of our work is much more stable efone with a lot of new functionality added.

Dead. Last News on March 20 2000.

Gphone is definitely a work in progress and you probably shouldn't bet your business on it; if it breaks you can keep both pieces. Don't be too hard on the program, though.

CU30 Video Conferencing for Linux
http://cu30.sourceforge.net/

High Quality, low bandwidth, real-time full framerate video conferencing software using a radical new algorithm from Cornell University.

Latest File Releases CU30 Library, October 22, 2001

It describes how to configure Linux for interoperation with Microsoft NetMeeting.

H.323 and Associated Protocols
http://www.hut.fi/~tttoivan/index4.html

H.323 is an ITU-T recommendation for multimedia conferencing over packet-based networks such as LANs and the Internet. H.323 is broad and comprehensive in its scope yet flexible and practical in its applicability. This report describes the components, protocols, and procedures in H.323;

The OpenH323 project
http://www.openh323.org/

The OpenH323 project aims to create a full featured, interoperable, Open Source implementation of the ITU H.323 teleconferencing protocol that can be used by personal developers and commercial users without charge.

Tuesday, September 3, 2002 - After two years of active development, the GNU project has released GNU Bayonne, Version 1.0. GNU Bayonne, licensed freely under the GNU General Public License (GPL), allows small businesses, large enterprises, and commercial telephone carriers to create, deploy, and manage their own web-integrated telephony voice response solutions. By making use of existing computer telephony commercially available for GNU/Linux, Bayonne can support all capacities — from a single analog phone circuit to multiple PRI spans.

As part of GNU Enterprise (GNUe), Bayonne 1.0 joins the ranks of a host of enterprise-level software for the popular GNU/Linux operating system. "In this 1.0 release, we have established a Free Software platform for the delivery of quality telephony services everywhere".

http://www.gnu.org/projects/gnue/ http://www.gnu.org/software/bayonne/

documented on: 2002.11.11 Mon