Ticket #2138 (closed defect: fixed)

Opened 3 months ago

Last modified 3 months ago

Missing IPv6 ICE candidates when IPv6 media is configured in PJSUA

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

Description

Reported error logs:

Failed creating STUN transport #1 for comp 1: gethostbyname() has returned error (PJ_ERESOLVE)
Failed creating STUN transport #1 for comp 1: Not found (PJ_ENOTFOUND)

The PJ_ERESOLVE error seems to be caused by IPv4 address being resolved to IPv6 address, note that when configured STUN server has IPv4 and it works, only the IPv4 STUN server address will be used.

While the PJ_ENOTFOUND error seems to be caused by failure in host interface enumeration (pj_enum_ip_interface()).

So, in generating STUN & host candidates, I think we should be more forgiving on errors (e.g: skipping STUN Binding resolution when STUN server resolution fails, use default address when host interface enumeration fails).

Thanks Oded Arbel for the report.

Change History

comment:1 Changed 3 months ago by nanang

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

In 5861:

Fix #2138:

  • Updated ICE STUN & host candidates generation to be more forgiving on errors, i.e: continue gathering candidates using any available data instead of returning error.
  • Added more logs for debugging.
Note: See TracTickets for help on using tickets.