fix(telephony): ARI receive timeout 45s->3600s — the real false-abort root cause
Cancelling ClientWebSocket.ReceiveAsync via CancellationToken ABORTS the socket (a half-read WS frame can't resume). The per-iteration iterationCts.CancelAfter(WebSocketReceiveTimeoutSeconds) therefore aborted a healthy idle ARI WebSocket every 45s (state=Aborted), not the keepalive pong (proven: loop persisted after pong-timeout 15s->3600s). A large receive timeout lets ReceiveAsync block harmlessly while the PBX is idle; real drops still surface immediately as WebSocketException -> reconnect. Proper code fix (stop using CancelAfter on the receive) tracked separately. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
Andrew Stoltz
parent
de5c9f39fd
commit
7a86c40cf1
@@ -65,7 +65,7 @@ data:
|
|||||||
"MaxReconnectDelaySeconds": 60,
|
"MaxReconnectDelaySeconds": 60,
|
||||||
"WebSocketKeepAliveIntervalSeconds": 30,
|
"WebSocketKeepAliveIntervalSeconds": 30,
|
||||||
"WebSocketKeepAliveTimeoutSeconds": 3600,
|
"WebSocketKeepAliveTimeoutSeconds": 3600,
|
||||||
"WebSocketReceiveTimeoutSeconds": 45
|
"WebSocketReceiveTimeoutSeconds": 3600
|
||||||
},
|
},
|
||||||
"Sip": {
|
"Sip": {
|
||||||
"Domain": "10.0.56.207",
|
"Domain": "10.0.56.207",
|
||||||
|
|||||||
Reference in New Issue
Block a user