[Freeswitch-users] Sending keepalives on Verto websocket

Ítalo Rossi italo at freeswitch.org
Wed Oct 11 02:02:08 UTC 2017


Are we talking about proxy_read_timeout param?

On Tue, Oct 10, 2017 at 8:51 PM, Chad Phillips <chad at apartmentlines.com>
wrote:

> I’ve seen this issue when everyone is audio muted and/or doesn’t trigger a
> talking event for more than 60 seconds, which in my use case does happen. I
> would agree under normal videoconferencing circumstances it would be rare
> to go 60 seconds without a single event being sent along the websocket.
>
> On Mon, Oct 9, 2017 at 7:38 AM, Mundkowsky, Robert <rmundkowsky at ets.org>
> wrote:
>
>> I am curious, what type of situation causes this problem?  I mean, we use
>> Verto for a conference, granted without Nginx, and seems like there are
>> always packets being sent back and forth even when there is no audio or
>> video.
>>
>>
>>
>> Robert
>>
>>
>>
>> *From:* FreeSWITCH-users [mailto:freeswitch-users-bounc
>> es at lists.freeswitch.org] *On Behalf Of *Chad Phillips
>> *Sent:* Friday, October 6, 2017 4:53 PM
>> *To:* FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>> *Subject:* Re: [Freeswitch-users] Sending keepalives on Verto websocket
>>
>>
>>
>> There are various suggested solutions out there. On the Nginx config
>> side, easiest is to increase the proxy_read_timeout setting to something
>> high, but that seems like it could result in connections getting hung open
>> if the server process goes away.
>>
>>
>>
>> Then there’s this module which looks pretty fancy and claims to solve the
>> problem: https://github.com/yaoweibin/nginx_tcp_proxy_module
>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fyaoweibin%2Fnginx_tcp_proxy_module&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=lFoJ8DsDuceYjteVcZ72fMtgH%2BgmSWHj5g1MvTe%2FKzs%3D&reserved=0>
>> — it requires custom compiling nginx though…
>>
>>
>>
>> I think I’ll stick with my current solution, which basically follows the
>> other suggestion of having the server send periodic keepalives, except that
>> I’m initiating from the client. Steps for others interested:
>>
>>
>>
>> 1. Add ‘echo’ to the list of jsonrpc-allowed-methods in any relevant
>> domains in your user directory
>>
>>
>>
>> 2. Do something like this after a successful websocket connection:
>>
>>
>>
>>           MODULE.keepAliveTimer = setInterval(function() {
>>
>>             verto.rpcClient.call("echo", {keepalive: true});
>>
>>           }, VERTO_KEEPALIVE_INTERVAL)
>>
>>
>>
>> 3. Add some cleanup on websocket close:
>>
>>
>>
>>         if (MODULE.keepAliveTimer) {
>>
>>           clearInterval(MODULE.keepAliveTimer);
>>
>>           MODULE.keepAliveTimer = null;
>>
>>         }
>>
>>
>>
>> Request and response lengths are both under 150 characters, so pretty
>> short, and I set the intervals at 50 seconds, since Nginx’s default timeout
>> is 60 seconds.
>>
>>
>>
>> On Fri, Oct 6, 2017 at 6:39 AM, Mundkowsky, Robert <rmundkowsky at ets.org>
>> wrote:
>>
>> Have you checked if Nginx has timeout settings and/or keep alive settings?
>>
>>
>>
>> https://stackoverflow.com/questions/10550558/nginx-tcp-webso
>> ckets-timeout-keepalive-config
>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F10550558%2Fnginx-tcp-websockets-timeout-keepalive-config&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=5Ds%2BMnxK3AzpWTZ0JEfO3taJPp16uIK2UdKWfTLcvJg%3D&reserved=0>
>>
>>
>>
>>
>>
>> Robert
>>
>>
>>
>> *From:* FreeSWITCH-users [mailto:freeswitch-users-bounc
>> es at lists.freeswitch.org] *On Behalf Of *Chad Phillips
>> *Sent:* Thursday, October 5, 2017 11:07 PM
>> *To:* FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
>> *Subject:* [Freeswitch-users] Sending keepalives on Verto websocket
>>
>>
>>
>> I've switched to using Nginx to proxy Verto websockets, and have run into
>> a small snag: by default, if Nginx doesn't read any data from a proxy
>> backend within 60 seconds, it closes the connection, even for websockets.
>>
>>
>>
>> It appears the recommended solution is to have the server send some kind
>> of regular keepalive. I poked around in mod_verto.c and found a
>> 'request.keepalive' variable, but I'm unclear how to set that in the
>> request, and/or if it even accomplishes what I'm wanting.
>>
>>
>>
>> I've solved the issue for now by periodically sending a JSON RPC 'echo'
>> request along the websocket every 50 seconds, and the reply from the server
>> is enough to keep the connection open. This is fine, but I am curious if
>> there's a way to do it just from the server side, and if not, if it's worth
>> it to add a setting to enable that functionality?
>>
>>
>> ------------------------------
>>
>> This e-mail and any files transmitted with it may contain privileged or
>> confidential information. It is solely for use by the individual for whom
>> it is intended, even if addressed incorrectly. If you received this e-mail
>> in error, please notify the sender; do not disclose, copy, distribute, or
>> take any action in reliance on the contents of this information; and delete
>> it from your system. Any other use of this e-mail is prohibited.
>>
>>
>>
>> Thank you for your compliance.
>> ------------------------------
>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.freeswitchsolutions.com&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=lU2FKQRT3CeYO3I3BDVVm%2FPT5L%2B5giXo6TtSi%2BtCjjE%3D&reserved=0>
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.freeswitch.org&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=VO5vSjIT%2FrMosRlH%2FBeS%2F9iMeqEtE2vFBewgVdte0i4%3D&reserved=0>
>> http://confluence.freeswitch.org
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fconfluence.freeswitch.org&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=GMTRoR%2BARpYEeNqMFGxtZUh%2Fn8zEPp48GsSVnEzu3jY%3D&reserved=0>
>> http://www.cluecon.com
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.cluecon.com&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=476%2FcDE%2FuuaSBtjW1CNbi64%2F%2BguBdR%2FpjKHPgDKQ%2FOA%3D&reserved=0>
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.freeswitch.org%2Fmailman%2Flistinfo%2Ffreeswitch-users&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=oy0%2BWsQ27yZtS8eFiT%2FbABLWpdXq0SX%2BcuIdCKDOOnw%3D&reserved=0>
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.freeswitch.org%2Fmailman%2Foptions%2Ffreeswitch-users&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=kinRx3a5NkCUaR2HmW5tLnT1HBZDSlgJToppc%2Fi6FMA%3D&reserved=0>
>> http://www.freeswitch.org
>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.freeswitch.org&data=02%7C01%7Crmundkowsky%40ets.org%7C8340e5ebbbbe4d94bb6b08d50cfcf688%7C0ba6e9b760b34fae92f37e6ddd9e9b65%7C0%7C0%7C636429202964109077&sdata=VO5vSjIT%2FrMosRlH%2FBeS%2F9iMeqEtE2vFBewgVdte0i4%3D&reserved=0>
>>
>>
>>
>> ------------------------------
>>
>> This e-mail and any files transmitted with it may contain privileged or
>> confidential information. It is solely for use by the individual for whom
>> it is intended, even if addressed incorrectly. If you received this e-mail
>> in error, please notify the sender; do not disclose, copy, distribute, or
>> take any action in reliance on the contents of this information; and delete
>> it from your system. Any other use of this e-mail is prohibited.
>>
>> Thank you for your compliance.
>> ------------------------------
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://confluence.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>



-- 
Ítalo Rossi
italo at freeswitch.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20171010/248e9b66/attachment-0001.html>


More information about the FreeSWITCH-users mailing list