After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 545295 - "Bad NAT Type", confusing message shown in console
"Bad NAT Type", confusing message shown in console
Status: RESOLVED FIXED
Product: ekiga
Classification: Applications
Component: general
GIT master
Other Linux
: Urgent blocker
: 3.00
Assigned To: Ekiga maintainers
Ekiga maintainers
: 338267 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2008-07-29 10:55 UTC by Simos Xenitellis
Modified: 2008-08-12 07:30 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Simos Xenitellis 2008-07-29 10:55:35 UTC
I am running ekiga-snapshot (on Ubuntu 8.04, 64bit).
My ekiga.net and other SIP accounts all register properly.

When I try to make a call with ekiga-snapshot, I always get 
"Abnormal call termination". 
I have not been able to make a call with ekiga snapshot.

When running Ekiga from the command line, I get the message

Bad NAT Type 

and no other message.

I have an ADSL connection, connecting through a router.
There are no firewall blocking features running at the router or the broadband provider, to the best of my knowledge.

When running Ekiga with -d 5, I get these messages around the Bad NAT Type error,

...
2008/07/29 11:40:59.481   0:02.998      StunDetector:0x4041c950 PWLib   File handle low water mark set: 43 PUDPSocket
2008/07/29 11:40:59.607   0:03.125      StunDetector:0x4041c950 OPAL    STUN server "stun.voxgratia.org" replies Symmetric NAT, external IP 82.xxx.xxx.xxx
Bad NAT Type
2008/07/29 11:40:59.608   0:03.125      StunDetector:0x4041c950 Listen  Stopping listening thread on udp$*:5060
2008/07/29 11:40:59.608   0:03.125      StunDetector:0x4041c950 MonSock Closed UDP socket 0x9c68b0
2008/07/29 11:40:59.608   0:03.125      Opal Liste...0x412f4950 Listen  UDP read error.
2008/07/29 11:40:59.608   0:03.125          ThreadID:0x412f4950 PWLib   Ended thread 0x9c6d20 Opal Listener:0x412f4950
2008/07/29 11:40:59.631   0:03.148      StunDetector:0x4041c950 MonSock Deleting UDP socket 0x9c68b0
2008/07/29 11:40:59.631   0:03.148      StunDetector:0x4041c950 PWLib   Destroyed thread 0x9c6d20 Opal Listener:0x412f4950(id = 0)
2008/07/29 11:40:59.631   0:03.148      StunDetector:0x4041c950 PWLib   File handle low water mark set: 34 PUDPSocket
2008/07/29 11:40:59.752   0:03.269      StunDetector:0x4041c950 MonSock Created bundled UDP socket via STUN internal=192.168.1.10:5060 external=82.xxx.xxx.xxx:5060
2008/07/29 11:40:59.752   0:03.269      StunDetector:0x4041c950 PWLib   Created thread 0xe69180 Opal Listener
2008/07/29 11:40:59.752   0:03.269      Opal Liste...0x412f4950 PWLib   Started thread 0xe69180 Opal Listener:0x412f4950
2008/07/29 11:40:59.752   0:03.269      Opal Liste...0x412f4950 Listen  Started listening thread on udp$*:5060
2008/07/29 11:40:59.752   0:03.269      StunDetector:0x4041c950 Listen  Stopping listening thread on tcp$*:1720
2008/07/29 11:40:59.752   0:03.269          ThreadID:0x4064f950 PWLib   Ended thread 0x9ca590 Opal Listener:0x4064f950
2008/07/29 11:40:59.753   0:03.270      StunDetector:0x4041c950 PWLib   Destroyed thread 0x9ca590 Opal Listener:0x4064f950(id = 0)
2008/07/29 11:40:59.753   0:03.270      StunDetector:0x4041c950 PWLib   Created thread 0x9ca590 Opal Listener
2008/07/29 11:40:59.753   0:03.270      Opal Liste...0x4064f950 PWLib   Started thread 0x9ca590 Opal Listener:0x4064f950
2008/07/29 11:40:59.753   0:03.270      Opal Liste...0x4064f950 Listen  Started listening thread on tcp$*:1720
2008/07/29 11:40:59.753   0:03.270      Opal Liste...0x4064f950 Listen  Waiting on socket accept on tcp$*:1720
2008/07/29 11:40:59.753   0:03.270          ThreadID:0x4041c950 PWLib   Ended thread 0x935930 StunDetector:0x4041c950
2008/07/29 11:40:59.753   0:03.270          ThreadID:0x4041c950 PWLib   Destroyed thread 0x935930 StunDetector:0x4041c950(id = 0)
2008/07/29 11:40:59.849   0:03.366                        ekiga PWLib   Created thread 0x9f2980
2008/07/29 11:40:59.849   0:03.366        subscriber:0x4041c950 PWLib   Started thread 0x9f2980 subscriber:0x4041c950
2008/07/29 11:40:59.850   0:03.367        subscriber:0x4041c950 SIP     Changing REGISTER handler from Unsubscribed to Subscribing, target=sip:simos@sip.somevoipaccount.com, id=70e08080-c85b-dd11-99cf-001b778f8320@desktop
2008/07/29 11:40:59.850   0:03.367                        ekiga PWLib   File handle high water mark set: 60 Thread unblock pipe
2008/07/29 11:40:59.850   0:03.367                        ekiga PWLib   Created thread 0x9927e0
2008/07/29 11:40:59.851   0:03.368                        ekiga PWLib   Thread high water mark set: 10
...

I do not know if the above messages are sufficient enough to pinpoint the problem.
Comment 1 Damien Sandras 2008-07-29 12:01:21 UTC
We will put it in a dialog to make it more informative.

You actually have a very bad type of NAT : Symmetric NAT. With that kind of NAT, you need to forward ports. 

Please see our wiki http://wiki.ekiga.org ...
Comment 2 Eugen Dedu 2008-07-30 19:15:24 UTC
There are two things to do here:
- find an appropriate message
- show it inside a dialog box

- For the message, here is a proposition:

Symmetric NAT found: You are behind a firewall which does not allow
you by default to make conversations with ekiga.  You must use an
external proxy or try some tricks, as shown at
http://wiki.ekiga.org/index.php/Ekiga_behind_a_NAT_router .

- And for the dialog box, here is another proposition, but which needs to be corrected (1. replace NULL with the parent window, 2. replace "message above" with the message above, 3. I do not know in which file to put this gtk code):

--- src/endpoints/manager.cpp.orig	2008-07-30 10:36:55.000000000 +0200
+++ src/endpoints/manager.cpp	2008-07-30 21:07:27.000000000 +0200
@@ -84,8 +84,15 @@
     PSTUNClient::NatTypes type = manager.SetSTUNServer (server);
     if (type == PSTUNClient::SymmetricNat 
         || type == PSTUNClient::BlockedNat 
-        || type == PSTUNClient::PartialBlockedNat)
-      std::cout << "Bad NAT Type" << std::endl << std::flush;
+        || type == PSTUNClient::PartialBlockedNat) {
+	  GtkWidget *dialog = gtk_message_dialog_new (NULL,
+                                  GTK_DIALOG_DESTROY_WITH_PARENT,
+                                  GTK_MESSAGE_ERROR,
+                                  GTK_BUTTONS_OK,
+		    		  "message above");
+	  gtk_dialog_run (GTK_DIALOG (dialog));
+	  gtk_widget_destroy (dialog);
+	}
 
     for (Ekiga::CallManager::iterator iter = manager.begin ();
          iter != manager.end ();

Sorry to be so unfinished,
HTH,
Eugen
Comment 3 Eugen Dedu 2008-08-09 17:07:44 UTC
This is bug http://bugzilla.gnome.org/show_bug.cgi?id=338267
Comment 4 Damien Sandras 2008-08-10 19:44:17 UTC
*** Bug 338267 has been marked as a duplicate of this bug. ***
Comment 5 Damien Sandras 2008-08-10 19:45:23 UTC
I have added an error message in the engine (no GTK code in src/endpoints/manager.cpp).

It redirects to the wiki, without further details because it is easier to update a wiki than Ekiga error messages itself.
Comment 6 Simos Xenitellis 2008-08-11 21:24:26 UTC
I added a page at the wiki,
http://wiki.ekiga.org/index.php/Enable_port_forwarding_manually

Would it be useful to have that page instead as the landing page to the Wiki;

The relevant diff is 
http://svn.gnome.org/viewvc/ekiga/trunk/src/endpoints/manager.cpp?r1=6557&r2=6569

Would it be better to rephrase the text to something like

"Ekiga did not manage to configure your network settings automatically. You can still use Ekiga, but you need to configure your network settings manually.

Please see http://wiki.ekiga.org/index.php/Enable_port_forwarding_manually for instructions"

Comment 7 Damien Sandras 2008-08-12 07:30:58 UTC
I'll do it tonight, good suggestion...