Skip to content
Snippets Groups Projects
Commit 8d428f44 authored by Sébastien Blin's avatar Sébastien Blin Committed by Adrien Béraud
Browse files

pjproject: increase timer value for TURN connection timeout

On some very slow network, the process to connect to a relay
candidates can take a lot of time. Cause this timer includes
the time between the ConnectionAttempt and sending the
Binding response. With some packet loss it can quickly increase
this delay.

Example:
Classic nego (Successful ICE):

10:36:28.126 .RX 144 bytes STUN message from 51.222.10.40:3478:
--- begin STUN message ---
STUN ConnectionAttempt indication (...)

10:36:29.378 .TX 84 bytes STUN message to IP:45320:
--- begin STUN message ---
STUN Binding success response

Problematic case on a bad network:

// Bad network peer
09:39:10.910 .RX 288 bytes STUN message from 192.252.140.236:3478:
--- begin STUN message ---
STUN ConnectionAttempt indication

// other PEER:
09:38:51.855 192.252.140.236:11846 (nominated): connectivity check FAILED:
STUN transaction has timed out (PJNATH_ESTUNTIMEDOUT)
=> The other peer close the socket

// Bad network peer
09:38:52.258 .RX 76 bytes STUN message from IP:36436:
--- begin STUN message ---
STUN ConnectionBind success response

9:38:53.756   tcprel0x7f7098178460  .socket send(): Not found (PJ_ENOTFOUND)

The value of 15 secs is chosen to follow ice_inactive_timeout in
the webrtc's sources (CONNECTION_WRITE_TIMEOUT)

Change-Id: Idc66f6cb2018fbf03e34059640fa91601535dcb1
GitLab: #1201
parent 1e12f8ff
Branches
No related tags found
No related merge requests found
......@@ -961,8 +961,8 @@ index 2a4125bc5..b10a8fb51 100644
+ if (set_timer && ice->timer_connect.id == TIMER_NONE) {
+ /* Reschedule */
+ pj_time_val delay = {
+ .sec = 0,
+ .msec = 1500
+ .sec = 15,
+ .msec = 0
+ };
+ pj_time_val_normalize(&delay);
+ pj_timer_heap_schedule_w_grp_lock(ice->stun_cfg.timer_heap,
......@@ -1102,8 +1102,8 @@ index 2a4125bc5..b10a8fb51 100644
+ pj_assert(!"Not expected any timer active");
+ } else {
+ pj_time_val delay = {
+ .sec = 0,
+ .msec = 1500,
+ .sec = 15,
+ .msec = 0,
+ };
+ pj_time_val_normalize(&delay);
+ pj_timer_heap_schedule_w_grp_lock(ice->stun_cfg.timer_heap,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment