diff --git a/res/res_http_websocket.c b/res/res_http_websocket.c
index 5d14ac68893c2d5b7a245d3733ef88225fcd261f..fdcb0d9a93ec574879ec363a81aeb8fb8e97b1bb 100644
--- a/res/res_http_websocket.c
+++ b/res/res_http_websocket.c
@@ -1452,6 +1452,12 @@ int AST_OPTIONAL_API_NAME(ast_websocket_read_string)
 			return -1;
 		}
 
+		if (opcode == AST_WEBSOCKET_OPCODE_PING) {
+			/* Try read again, we have sent pong already */
+			fragmented = 1;
+			continue;
+		}
+
 		if (opcode == AST_WEBSOCKET_OPCODE_CONTINUATION) {
 			continue;
 		}