]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKS 33/4433/1
authorMatt Jordan <mjordan@digium.com>
Mon, 14 Nov 2016 21:57:08 +0000 (15:57 -0600)
committerMatt Jordan <mjordan@digium.com>
Mon, 14 Nov 2016 22:02:17 +0000 (17:02 -0500)
The PJ_ICE_MAX_CHECKS constant is used by pjproject to determine how
many pairs of local/remote candidates will be made. If for some reason
we reach this upper bound, ICE will generally fail and no media will
flow between the browser and Asterisk.

This patch makes PJ_ICE_MAX_CHECKS set to the total possible number of
pairs of candidates we'd theoretically allow, which is
PJ_ICE_MAX_CAND^2. Prior to this patch, we simply multiplied
PJ_ICE_MAX_CAND by two; on systems with multiple interfaces (I blame
Docker), this is far too low to allow WebRTC calls to succeed.

Setting this to be PJ_ICE_MAX_CAND^2 allowed WebRTC calls to succeed
even when the system Asterisk was running on had quite a few virtual
interfaces.

Change-Id: Icd4f17de0ac9d3a83dddfc8bf1cb7616bc107d55

third-party/pjproject/patches/config_site.h

index 564959d84c40e7f4c3ebe7afb89fb78022f7d24d..1a48695bfb2d0ad088197171a49413f1882080f4 100644 (file)
@@ -56,7 +56,7 @@
 
 /* Defaults too low for WebRTC */
 #define PJ_ICE_MAX_CAND 32
-#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * 2)
+#define PJ_ICE_MAX_CHECKS (PJ_ICE_MAX_CAND * PJ_ICE_MAX_CAND)
 
 /* Increase limits to allow more formats */
 #define        PJMEDIA_MAX_SDP_FMT   64