diff --git a/dap_chain_net_srv_stream_session.c b/dap_chain_net_srv_stream_session.c
index 4cae5231445c8595746f3698602bc7a1a6f4d1d4..09b4abdcba438cc2a2c806dca652cb1fa1891ae7 100644
--- a/dap_chain_net_srv_stream_session.c
+++ b/dap_chain_net_srv_stream_session.c
@@ -42,6 +42,7 @@ dap_chain_net_srv_stream_session_t * dap_chain_net_srv_stream_session_create( da
     }
     dap_chain_net_srv_stream_session_t * l_session_srv= DAP_NEW_Z(dap_chain_net_srv_stream_session_t);
     a_session->_inheritor = l_session_srv;
+    l_session_srv->parent = a_session;
     log_it(L_NOTICE, "created service session");
     return  l_session_srv;
 }
diff --git a/dap_chain_net_srv_stream_session.h b/dap_chain_net_srv_stream_session.h
index 94f44f4c7e6a68c76b9fb1ac3aa4799755ef4fce..3df8c8484f73dfd70819b56a967719441f7cb310 100644
--- a/dap_chain_net_srv_stream_session.h
+++ b/dap_chain_net_srv_stream_session.h
@@ -58,6 +58,8 @@ typedef struct dap_chain_net_srv_usage{
     UT_hash_handle hh; //
 } dap_chain_net_srv_usage_t;
 
+typedef void (*dap_response_success_callback_t) (dap_stream_ch_chain_net_srv_pkt_success_t*, void*);
+
 typedef struct dap_chain_net_srv_stream_session {
     dap_stream_session_t * parent;
     dap_chain_net_srv_usage_t * usages;
@@ -69,6 +71,10 @@ typedef struct dap_chain_net_srv_stream_session {
 
     time_t ts_activated;
     dap_sign_t* user_sign; // User's signature for auth if reconnect
+
+    dap_response_success_callback_t response_success_callback;
+    void *response_success_callback_data;
+
 } dap_chain_net_srv_stream_session_t;
 
 #define DAP_CHAIN_NET_SRV_STREAM_SESSION(a) ((dap_chain_net_srv_stream_session_t *) (a)->_inheritor )