From eec4df4b778321534e36700b41fc8c46e258f2cb Mon Sep 17 00:00:00 2001 From: Hoan Luu Huu <110280845+xquanluu@users.noreply.github.com> Date: Thu, 22 Aug 2024 18:33:05 +0700 Subject: [PATCH] support variable to enable ws ping pong for jb transcribe (#101) * support variable to enable ws ping pong for jb transcribe * update ping/pong time duration * fix review comment Signed-off-by: Hoan HL --------- Signed-off-by: Hoan HL --- mod_jambonz_transcribe/audio_pipe.cpp | 32 ++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/mod_jambonz_transcribe/audio_pipe.cpp b/mod_jambonz_transcribe/audio_pipe.cpp index 9025406..6b3dfb8 100644 --- a/mod_jambonz_transcribe/audio_pipe.cpp +++ b/mod_jambonz_transcribe/audio_pipe.cpp @@ -229,16 +229,6 @@ int AudioPipe::lws_callback(struct lws *wsi, } -// static members -static const lws_retry_bo_t retry = { - nullptr, // retry_ms_table - 0, // retry_ms_table_count - 0, // conceal_count - UINT16_MAX, // secs_since_valid_ping - UINT16_MAX, // secs_since_valid_hangup - 0 // jitter_percent -}; - struct lws_context *AudioPipe::context = nullptr; std::thread AudioPipe::serviceThread; std::mutex AudioPipe::mutex_connects; @@ -376,6 +366,28 @@ bool AudioPipe::lws_service_thread() { { NULL, NULL, 0, 0 } }; + uint16_t secs_sinceq_valid_ping = UINT16_MAX; + uint16_t secs_since_valid_hangup = UINT16_MAX; + + char* wsVar = std::getenv("WS_PING_INTERVAL"); + if (wsVar != nullptr) { + secs_sinceq_valid_ping = std::atoi(wsVar); + } + + wsVar = std::getenv("WS_NO_PONG_HANGUP_INTERVAL"); + if (wsVar != nullptr) { + secs_since_valid_hangup = std::atoi(wsVar); + } + + const lws_retry_bo_t retry = { + nullptr, // retry_ms_table + 0, // retry_ms_table_count + 0, // conceal_count + secs_sinceq_valid_ping, // secs_sinceq_valid_ping + secs_since_valid_hangup, // secs_since_valid_hangup + 0 // jitter_percent + }; + memset(&info, 0, sizeof info); info.port = CONTEXT_PORT_NO_LISTEN; info.options = LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT;