Ticket #399 (closed enhancement: fixed)

Opened 10 years ago

Last modified 9 years ago

Added tool to perform NAT type detection/classification

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-0.8.0
Component: pjnath Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

With current implementation, it is rather hard to troubleshoot ICE negotiation failure. Having information about NAT type will help debugging such failure.

Change History

comment:1 Changed 10 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to fixed

Done in r1495:

  • Added nat_detect.[h|c] in PJNATH library.
  • New PJNATH API: pj_stun_detect_nat_type()
  • New PJSUA-LIB API: pjsua_detect_nat_type()
  • pjsua will automatically perform NAT detection upon startup, when STUN is enabled.
  • Same for the WinCE sample application.

comment:2 Changed 10 years ago by bennylp

Fixed bug with CHANGE-REQUEST values in r1496

comment:3 Changed 10 years ago by bennylp

Added comments etc. in r1497

comment:4 Changed 10 years ago by bennylp

Optimize to complete faster, in r1498 and r1499

comment:5 Changed 10 years ago by bennylp

In r1501:

  • Added callback to report NAT detection result.
  • pjsua will also put NAT type information in SDP by default. This can be disabled by setting pjsua_config.nat_type_in_sdp

comment:6 Changed 10 years ago by bennylp

In r1523:

  • fixed bug that triggers assertion in the timer callback. Thanks Scott M Ober for reporting the bug.

comment:7 Changed 10 years ago by bennylp

In r1524:

  • fixed bug: in certain situations on_request_complete() callback doesn't release the mutex forever, causing application to hang.

comment:8 Changed 10 years ago by bennylp

In r1526:

  • fixed bug: pj_sock_close() is called more than once.
  • Also implemented NAT detection callback in Symbian UA sample.

comment:9 Changed 9 years ago by bennylp

in r1533:

  • added new pjsua API pjsua_call_get_rem_nat_type() to retrieve the NAT type of remote endpoint. See pjsua.h for more info.

comment:10 Changed 9 years ago by bennylp

Fixed in r1553:

  • The NAT type investigation in incoming INVITE caused assertion error when the INVITE comes without SDP
Note: See TracTickets for help on using tickets.