2

It is very interesting that I can actually make a mVoIP service from the scratch. I finally could make a call using OpenSIPs source through SIP protocol. I used external STUN server that helps me to find users' private IP address behind NAT firewalls.

However, the free external STUN server cannot find user's IP address to make a call when a smartphone is on 3G or 4G network. As a programmer, I won't give up to make a mVoIP service. However, I need a help at this time from you guys.

Is there a good way to solve this problem? Thank you.

manlio
  • 18,345
  • 14
  • 76
  • 126
Jake
  • 1,195
  • 6
  • 21
  • 42
  • 1
    What do you mean "the free external STUN server cannot find the user's IP address". Does the STUN server not receive the binding request from the mobile client? Or does the binding response not come back? Or something else? – selbie Jan 18 '14 at 09:43
  • I found out that external STUN server actually find user's IP address. it just failed to connect media session.. – Jake Jan 20 '14 at 18:09
  • 2
    Right. 3G/4G/Evo are essentially "symmetric NAT" (formally "Carrier grade NAT"). And hence, direct traversal of devices is often hard. Hence, you need a proxy solution such as RTP Proxy or TURN. The advantage of TURN is that it will allow the connection to go direct if it can, falling back to relay only if needs to. – selbie Jan 21 '14 at 00:01

2 Answers2

0

I actually could find IP address using external STUN server, however it failed to connect media session on 3G/4G network. So, I decided to use RTP proxy to make a SIP call.

OpenSIPs provides RTP proxy module, and it helps to make a call without NAT issue.

Jake
  • 1,195
  • 6
  • 21
  • 42
0

There can be two problems here:

-you can't find the correct external address behind all kind of NAT. This depends on the NAT type only

-some mobile operators blocks STUN. You can add some modified stun or a simple encryption as a workaround