diff --git a/net/stream/session/dap_stream_session.c b/net/stream/session/dap_stream_session.c
index 1dcfa0c62168210cf60170b677c5b31e0dbfe74b..5c1cb1a29a18aa997e723c3b7eb43a638bcfa1b2 100644
--- a/net/stream/session/dap_stream_session.c
+++ b/net/stream/session/dap_stream_session.c
@@ -64,6 +64,32 @@ void dap_stream_session_deinit()
     pthread_mutex_unlock(&sessions_mutex);
 }
 
+/**
+ *
+ * note: dap_stream_session_get_list_sessions_unlock() must be run after this function
+ */
+dap_list_t* dap_stream_session_get_list_sessions(void)
+{
+    dap_list_t *l_list = NULL;
+    dap_stream_session_t *current, *tmp;
+    pthread_mutex_lock(&sessions_mutex);
+    HASH_ITER(hh, sessions, current, tmp)
+    {
+        l_list = dap_list_append(l_list, current);
+        //dap_chain_net_srv_stream_session_t * l_srv_session = current->_inheritor;
+        //if(l_srv_session) {
+            //dap_net_stats_t *l_stats = DAP_NEW(dap_net_stats_t);
+            //memcpy(l_stats, l_srv_session->stats);
+            //l_list = dap_list_append(l_list, l_stats);
+        //}
+    }
+    return l_list;
+}
+
+void dap_stream_session_get_list_sessions_unlock(void)
+{
+    pthread_mutex_unlock(&sessions_mutex);
+}
 
 static void * session_check(void * data)
 {
diff --git a/net/stream/session/include/dap_stream_session.h b/net/stream/session/include/dap_stream_session.h
index 921c9ff700227301a39eef1d946e699925796eb7..9106aca423520d4cafad1ab2de868acf32e2ffe2 100644
--- a/net/stream/session/include/dap_stream_session.h
+++ b/net/stream/session/include/dap_stream_session.h
@@ -31,6 +31,7 @@
 #include "uthash.h"
 #include "dap_enc_key.h"
 #include "dap_hash.h"
+#include "dap_list.h"
 
 typedef enum stream_session_type {STREAM_SESSION_TYPE_MEDIA=0,STREAM_SESSION_TYPE_VPN} stream_session_type_t;
 typedef enum stream_session_connection_type {STEAM_SESSION_HTTP = 0, STREAM_SESSION_UDP, STREAM_SESSION_END_TYPE} stream_session_connection_type_t;
@@ -69,6 +70,8 @@ typedef struct dap_stream_session dap_stream_session_t;
 
 void dap_stream_session_init();
 void dap_stream_session_deinit();
+dap_list_t* dap_stream_session_get_list_sessions(void);
+void dap_stream_session_get_list_sessions_unlock(void);
 
 dap_stream_session_t * dap_stream_session_pure_new();
 dap_stream_session_t * dap_stream_session_new(unsigned int media_id, bool open_preview);