RTP/ICE: Send on first valid pair.

When handling ICE negotiations, it's possible that there can be a delay
between STUN binding requests which in turn will cause a delay in ICE
completion, preventing media from flowing. It should be possible to send
media when there is at least one valid pair, preventing this scenario
from occurring.

A change was added to PJPROJECT that adds an optional callback
(on_valid_pair) that will be called when the first valid pair is found
during ICE negotiation. Asterisk uses this to start the DTLS handshake,
allowing media to flow. It will only be called once, either on the first
valid pair, or when ICE negotiation is complete.

ASTERISK-28716

Change-Id: Ia7b68c34f06d2a1d91c5ed51627b66fd0363d867
This commit is contained in:
Ben Ford
2020-01-23 13:17:06 -06:00
committed by Benjamin Keith Ford
parent 1fc1336b2c
commit 168637cc0c
6 changed files with 178 additions and 4 deletions

View File

@@ -630,6 +630,9 @@
/* Define if your system has PJPROJECT_BUNDLED */
#undef HAVE_PJPROJECT_BUNDLED
/* Define to 1 if on_valid_pair callback is present. */
#undef HAVE_PJPROJECT_ON_VALID_ICE_PAIR_CALLBACK
/* Define to 1 if PJPROJECT has the pjsip_auth_clt_deinit support feature. */
#undef HAVE_PJSIP_AUTH_CLT_DEINIT