From ac7ce59c42be672f7bb527afa31037474cccd092 Mon Sep 17 00:00:00 2001
From: Thomas Ballasi <thomas.ballasi@savoirfairelinux.com>
Date: Tue, 18 Oct 2022 11:48:18 -0400
Subject: [PATCH] connectivity: initial split from jami-related components

As a measure of refactorization of the code and to prepare to the
development of dhtnet, the following changes aims at seperating
jami-specific code to connectivity-specific code.

GitLab: #778
Change-Id: Iaa08100f7d61c80292f039a5aae66819cc85b0e9
---
 CMakeLists.txt                                | 28 +++++----
 src/CMakeLists.txt                            | 18 ++----
 src/Makefile.am                               | 23 ++-----
 src/account.cpp                               |  4 +-
 src/account.h                                 |  2 +-
 src/base64.cpp                                |  2 +-
 src/call.cpp                                  |  4 +-
 src/call.h                                    |  2 +-
 src/client/configurationmanager.cpp           |  8 +--
 src/connectivity/CMakeLists.txt               | 34 +++++++++++
 src/connectivity/Makefile.am                  | 25 ++++++++
 .../connectionmanager.cpp                     |  4 +-
 .../connectionmanager.h                       |  0
 src/{ => connectivity}/generic_io.h           |  2 +-
 src/{ => connectivity}/ice_socket.h           |  2 +-
 src/{ => connectivity}/ice_transport.cpp      |  6 +-
 src/{ => connectivity}/ice_transport.h        |  0
 src/{ => connectivity}/ip_utils.cpp           |  2 +-
 src/{ => connectivity}/ip_utils.h             |  0
 .../multiplexed_socket.cpp                    |  2 +-
 .../multiplexed_socket.h                      |  4 +-
 src/{ => connectivity}/peer_connection.cpp    |  3 +-
 src/{ => connectivity}/peer_connection.h      | 10 ++--
 .../security/CMakeLists.txt                   |  0
 src/connectivity/security/Makefile.am         | 17 ++++++
 src/{ => connectivity}/security/certstore.cpp |  0
 src/{ => connectivity}/security/certstore.h   |  0
 .../security/diffie-hellman.cpp               |  0
 .../security/diffie-hellman.h                 |  0
 src/{ => connectivity}/security/memory.cpp    |  0
 src/{ => connectivity}/security/memory.h      |  0
 .../security/tls_session.cpp                  |  2 +-
 src/{ => connectivity}/security/tls_session.h |  2 +-
 .../security/tlsvalidator.cpp                 |  1 -
 .../security/tlsvalidator.h                   |  0
 src/{sip => connectivity}/sip_utils.cpp       |  4 +-
 src/{sip => connectivity}/sip_utils.h         |  2 +-
 .../transport/peer_channel.h                  |  0
 src/{ => connectivity}/upnp/CMakeLists.txt    |  0
 src/connectivity/upnp/Makefile.am             | 13 ++++
 .../upnp/protocol/CMakeLists.txt              |  0
 src/connectivity/upnp/protocol/Makefile.am    | 21 +++++++
 src/{ => connectivity}/upnp/protocol/igd.cpp  |  0
 src/{ => connectivity}/upnp/protocol/igd.h    |  5 +-
 .../upnp/protocol/mapping.cpp                 |  0
 .../upnp/protocol/mapping.h                   |  3 +-
 .../upnp/protocol/natpmp/CMakeLists.txt       |  0
 .../upnp/protocol/natpmp/Makefile.am          |  9 +++
 .../upnp/protocol/natpmp/nat_pmp.cpp          |  0
 .../upnp/protocol/natpmp/nat_pmp.h            |  6 +-
 .../upnp/protocol/natpmp/pmp_igd.cpp          |  0
 .../upnp/protocol/natpmp/pmp_igd.h            |  2 +-
 .../upnp/protocol/pupnp/CMakeLists.txt        |  0
 .../upnp/protocol/pupnp/Makefile.am           |  9 +++
 .../upnp/protocol/pupnp/pupnp.cpp             |  0
 .../upnp/protocol/pupnp/pupnp.h               |  2 +-
 .../upnp/protocol/pupnp/upnp_igd.cpp          |  0
 .../upnp/protocol/pupnp/upnp_igd.h            |  5 +-
 .../upnp/protocol/upnp_protocol.h             |  5 +-
 src/{ => connectivity}/upnp/upnp_context.cpp  |  0
 src/{ => connectivity}/upnp/upnp_context.h    |  2 +-
 src/{ => connectivity}/upnp/upnp_control.cpp  |  0
 src/{ => connectivity}/upnp/upnp_control.h    |  2 +-
 .../upnp/upnp_thread_util.h                   |  0
 src/{ => connectivity}/utf8_utils.cpp         |  2 +-
 src/{ => connectivity}/utf8_utils.h           |  0
 src/data_transfer.cpp                         |  2 +-
 src/data_transfer.h                           |  2 +-
 src/ftp_server.h                              |  2 +-
 src/gittransport.cpp                          |  4 +-
 src/im/instant_messaging.cpp                  |  2 +-
 src/jamidht/CMakeLists.txt                    |  4 --
 src/jamidht/Makefile.am                       |  4 --
 src/jamidht/abstract_sip_transport.h          |  4 +-
 src/jamidht/channel_handler.h                 |  2 +-
 src/jamidht/channeled_transfers.cpp           |  2 +-
 src/jamidht/channeled_transport.cpp           |  4 +-
 src/jamidht/contact_list.h                    |  2 +-
 src/jamidht/conversation_channel_handler.h    |  2 +-
 src/jamidht/gitserver.cpp                     |  2 +-
 src/jamidht/jamiaccount.cpp                   | 10 ++--
 src/jamidht/jamiaccount.h                     | 14 ++---
 src/jamidht/p2p.cpp                           |  6 +-
 src/jamidht/sync_channel_handler.h            |  2 +-
 src/jamidht/sync_module.cpp                   |  2 +-
 src/jamidht/transfer_channel_handler.h        |  2 +-
 src/manager.cpp                               |  6 +-
 src/media/media_codec.h                       |  2 +-
 src/media/rtp_session.h                       |  2 +-
 src/media/socket_pair.cpp                     |  6 +-
 src/media/socket_pair.h                       |  2 +-
 src/media/srtp.c                              |  2 +-
 src/media/video/video_mixer.cpp               |  2 +-
 src/media/video/video_rtp_session.cpp         |  2 +-
 src/meson.build                               | 60 +++++++++----------
 src/preferences.cpp                           |  2 +-
 src/security/Makefile.am                      | 17 ------
 src/sip/CMakeLists.txt                        |  2 -
 src/sip/Makefile.am                           |  2 -
 src/sip/pres_sub_client.cpp                   |  8 +--
 src/sip/pres_sub_server.cpp                   |  8 +--
 src/sip/sdp.cpp                               |  4 +-
 src/sip/sdp.h                                 |  8 +--
 src/sip/sipaccount.cpp                        | 14 ++---
 src/sip/sipaccount.h                          |  4 +-
 src/sip/sipaccountbase.cpp                    | 10 ++--
 src/sip/sipaccountbase.h                      |  4 +-
 src/sip/sipcall.cpp                           | 12 ++--
 src/sip/sipcall.h                             |  4 +-
 src/sip/sippresence.cpp                       | 10 ++--
 src/sip/siptransport.cpp                      | 12 ++--
 src/sip/siptransport.h                        |  2 +-
 src/sip/sipvoiplink.cpp                       | 10 ++--
 src/sip/sipvoiplink.h                         |  2 +-
 src/upnp/Makefile.am                          | 13 ----
 src/upnp/protocol/Makefile.am                 | 21 -------
 src/upnp/protocol/natpmp/Makefile.am          |  9 ---
 src/upnp/protocol/pupnp/Makefile.am           |  9 ---
 .../fuzzing/examples/fuzz-channel-request.cpp |  2 +-
 test/fuzzing/examples/fuzz-channel.cpp        |  2 +-
 test/fuzzing/examples/fuzz-jami-version.cpp   |  2 +-
 test/fuzzing/fuzz-spam-channel-creation.cpp   |  2 +-
 .../fuzzing/scenarios/classic-alice-and-bob.h |  2 +-
 test/sip/test_SIP.h                           |  2 +-
 .../account_archive/account_archive.cpp       |  2 +-
 test/unitTest/call/call.cpp                   |  2 +-
 test/unitTest/call/conference.cpp             |  2 +-
 test/unitTest/certstore.cpp                   |  2 +-
 .../connectionManager/connectionManager.cpp   |  4 +-
 test/unitTest/conversation/conversation.cpp   |  2 +-
 .../conversationRepository.cpp                |  2 +-
 test/unitTest/fileTransfer/fileTransfer.cpp   |  2 +-
 test/unitTest/ice/ice.cpp                     |  2 +-
 test/unitTest/ice/ice_media_cand_exchange.cpp |  2 +-
 .../media_negotiation/auto_answer.cpp         |  2 +-
 .../media_negotiation/hold_resume.cpp         |  2 +-
 .../media_negotiation/media_negotiation.cpp   |  2 +-
 test/unitTest/syncHistory/syncHistory.cpp     |  4 +-
 test/unitTest/utf8_utils/testUtf8_utils.cpp   |  2 +-
 139 files changed, 356 insertions(+), 334 deletions(-)
 create mode 100644 src/connectivity/CMakeLists.txt
 create mode 100644 src/connectivity/Makefile.am
 rename src/{jamidht => connectivity}/connectionmanager.cpp (99%)
 rename src/{jamidht => connectivity}/connectionmanager.h (100%)
 rename src/{ => connectivity}/generic_io.h (99%)
 rename src/{ => connectivity}/ice_socket.h (98%)
 rename src/{ => connectivity}/ice_transport.cpp (99%)
 rename src/{ => connectivity}/ice_transport.h (100%)
 rename src/{ => connectivity}/ip_utils.cpp (99%)
 rename src/{ => connectivity}/ip_utils.h (100%)
 rename src/{jamidht => connectivity}/multiplexed_socket.cpp (99%)
 rename src/{jamidht => connectivity}/multiplexed_socket.h (99%)
 rename src/{ => connectivity}/peer_connection.cpp (99%)
 rename src/{ => connectivity}/peer_connection.h (96%)
 rename src/{ => connectivity}/security/CMakeLists.txt (100%)
 create mode 100644 src/connectivity/security/Makefile.am
 rename src/{ => connectivity}/security/certstore.cpp (100%)
 rename src/{ => connectivity}/security/certstore.h (100%)
 rename src/{ => connectivity}/security/diffie-hellman.cpp (100%)
 rename src/{ => connectivity}/security/diffie-hellman.h (100%)
 rename src/{ => connectivity}/security/memory.cpp (100%)
 rename src/{ => connectivity}/security/memory.h (100%)
 rename src/{ => connectivity}/security/tls_session.cpp (99%)
 rename src/{ => connectivity}/security/tls_session.h (99%)
 rename src/{ => connectivity}/security/tlsvalidator.cpp (99%)
 rename src/{ => connectivity}/security/tlsvalidator.h (100%)
 rename src/{sip => connectivity}/sip_utils.cpp (99%)
 rename src/{sip => connectivity}/sip_utils.h (99%)
 rename src/{ => connectivity}/transport/peer_channel.h (100%)
 rename src/{ => connectivity}/upnp/CMakeLists.txt (100%)
 create mode 100644 src/connectivity/upnp/Makefile.am
 rename src/{ => connectivity}/upnp/protocol/CMakeLists.txt (100%)
 create mode 100644 src/connectivity/upnp/protocol/Makefile.am
 rename src/{ => connectivity}/upnp/protocol/igd.cpp (100%)
 rename src/{ => connectivity}/upnp/protocol/igd.h (97%)
 rename src/{ => connectivity}/upnp/protocol/mapping.cpp (100%)
 rename src/{ => connectivity}/upnp/protocol/mapping.h (99%)
 rename src/{ => connectivity}/upnp/protocol/natpmp/CMakeLists.txt (100%)
 create mode 100644 src/connectivity/upnp/protocol/natpmp/Makefile.am
 rename src/{ => connectivity}/upnp/protocol/natpmp/nat_pmp.cpp (100%)
 rename src/{ => connectivity}/upnp/protocol/natpmp/nat_pmp.h (97%)
 rename src/{ => connectivity}/upnp/protocol/natpmp/pmp_igd.cpp (100%)
 rename src/{ => connectivity}/upnp/protocol/natpmp/pmp_igd.h (97%)
 rename src/{ => connectivity}/upnp/protocol/pupnp/CMakeLists.txt (100%)
 create mode 100644 src/connectivity/upnp/protocol/pupnp/Makefile.am
 rename src/{ => connectivity}/upnp/protocol/pupnp/pupnp.cpp (100%)
 rename src/{ => connectivity}/upnp/protocol/pupnp/pupnp.h (99%)
 rename src/{ => connectivity}/upnp/protocol/pupnp/upnp_igd.cpp (100%)
 rename src/{ => connectivity}/upnp/protocol/pupnp/upnp_igd.h (97%)
 rename src/{ => connectivity}/upnp/protocol/upnp_protocol.h (98%)
 rename src/{ => connectivity}/upnp/upnp_context.cpp (100%)
 rename src/{ => connectivity}/upnp/upnp_context.h (99%)
 rename src/{ => connectivity}/upnp/upnp_control.cpp (100%)
 rename src/{ => connectivity}/upnp/upnp_control.h (98%)
 rename src/{ => connectivity}/upnp/upnp_thread_util.h (100%)
 rename src/{ => connectivity}/utf8_utils.cpp (99%)
 rename src/{ => connectivity}/utf8_utils.h (100%)
 delete mode 100644 src/security/Makefile.am
 delete mode 100644 src/upnp/Makefile.am
 delete mode 100644 src/upnp/protocol/Makefile.am
 delete mode 100644 src/upnp/protocol/natpmp/Makefile.am
 delete mode 100644 src/upnp/protocol/pupnp/Makefile.am

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e8bdef9cdc..b986d2939d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,13 @@ add_subdirectory("src")
 source_group("Source Files" FILES ${Source_Files})
 source_group("Source Files\\client" FILES ${Source_Files__client})
 source_group("Source Files\\config" FILES ${Source_Files__config})
+source_group("Source Files\\connectivity" FILES ${Source_Files__connectivity})
+source_group("Source Files\\connectivity\\security" FILES ${Source_Files__security})
+source_group("Source Files\\connectivity\\sip" FILES ${Source_Files__sip})
+source_group("Source Files\\connectivity\\upnp" FILES ${Source_Files__upnp})
+source_group("Source Files\\connectivity\\upnp\\protocol" FILES ${Source_Files__upnp__protocol})
+source_group("Source Files\\connectivity\\upnp\\protocol\\natpmp" FILES ${Source_Files__upnp__protocol__natpmp})
+source_group("Source Files\\connectivity\\upnp\\protocol\\pupnp" FILES ${Source_Files__upnp__protocol__pupnp})
 source_group("Source Files\\jami" FILES ${Source_Files__jami})
 source_group("Source Files\\hooks" FILES ${Source_Files__hooks})
 source_group("Source Files\\im" FILES ${Source_Files__im})
@@ -35,17 +42,11 @@ if(MSVC)
    source_group("Source Files\\media\\video\\winvideo" FILES ${Source_Files__media__video__winvideo})
 endif()
 
-source_group("Source Files\\security" FILES ${Source_Files__security})
-source_group("Source Files\\sip" FILES ${Source_Files__sip})
-source_group("Source Files\\upnp" FILES ${Source_Files__upnp})
-source_group("Source Files\\upnp\\protocol" FILES ${Source_Files__upnp__protocol})
-source_group("Source Files\\upnp\\protocol\\natpmp" FILES ${Source_Files__upnp__protocol__natpmp})
-source_group("Source Files\\upnp\\protocol\\pupnp" FILES ${Source_Files__upnp__protocol__pupnp})
-
 list (APPEND ALL_FILES
       ${Source_Files}
       ${Source_Files__client}
       ${Source_Files__config}
+      ${Source_Files__connectivity}
       ${Source_Files__jami}
       ${Source_Files__hooks}
       ${Source_Files__im}
@@ -126,17 +127,18 @@ if(MSVC)
            "${CMAKE_CURRENT_SOURCE_DIR}/src;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/client;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/config;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity/security;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity/sip;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity/upnp;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity/upnp/igd;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity/upnp/protocol;"
+           "${CMAKE_CURRENT_SOURCE_DIR}/src/connectivity/upnp/mapping;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/jami;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/hooks;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/im;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/media;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/jamidht;"
-           "${CMAKE_CURRENT_SOURCE_DIR}/src/security;"
-           "${CMAKE_CURRENT_SOURCE_DIR}/src/sip;"
-           "${CMAKE_CURRENT_SOURCE_DIR}/src/upnp;"
-           "${CMAKE_CURRENT_SOURCE_DIR}/src/upnp/igd;"
-           "${CMAKE_CURRENT_SOURCE_DIR}/src/upnp/protocol;"
-           "${CMAKE_CURRENT_SOURCE_DIR}/src/upnp/mapping;"
            "${CMAKE_CURRENT_SOURCE_DIR}/src/jamidht/eth;"
            "${CMAKE_CURRENT_SOURCE_DIR}/compat/msvc;"
            "${CMAKE_CURRENT_SOURCE_DIR}/contrib/msvc;"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f5619a4ef1..35f295eded 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -2,7 +2,7 @@
 # Source groups - src
 ################################################################################
 
-# client|config|jami.hooks|im|jamidht|media|security|sip|transport|upnp
+# client|config|connectivity|jami.hooks|im|jamidht|media
 
 list (APPEND Source_Files
       "${CMAKE_CURRENT_SOURCE_DIR}/account.cpp"
@@ -31,22 +31,14 @@ list (APPEND Source_Files
       "${CMAKE_CURRENT_SOURCE_DIR}/fileutils.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/ftp_server.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/ftp_server.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/generic_io.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/gittransport.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/gittransport.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/ice_socket.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/ice_transport.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/ice_transport.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/ip_utils.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/ip_utils.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/logger.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/logger.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/manager.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/manager.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/map_utils.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/noncopyable.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/peer_connection.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/peer_connection.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/preferences.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/preferences.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/rational.h"
@@ -61,8 +53,6 @@ list (APPEND Source_Files
       "${CMAKE_CURRENT_SOURCE_DIR}/string_utils.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/threadloop.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/threadloop.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/utf8_utils.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/utf8_utils.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/uri.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/uri.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/vcard.h"
@@ -81,17 +71,17 @@ set (Source_Files ${Source_Files} PARENT_SCOPE)
 
 add_subdirectory(client)
 add_subdirectory(config)
+add_subdirectory(connectivity)
 add_subdirectory(jami)
 add_subdirectory(im)
 add_subdirectory(jamidht)
 add_subdirectory(media)
-add_subdirectory(security)
-add_subdirectory(sip)
-add_subdirectory(upnp)
 add_subdirectory(plugin)
+add_subdirectory(sip)
 
 set (Source_Files__client ${Source_Files__client} PARENT_SCOPE)
 set (Source_Files__config ${Source_Files__config} PARENT_SCOPE)
+set (Source_Files__connectivity ${Source_Files__connectivity} PARENT_SCOPE)
 set (Source_Files__jami ${Source_Files__jami} PARENT_SCOPE)
 set (Source_Files__hooks ${Source_Files__hooks} PARENT_SCOPE)
 set (Source_Files__im ${Source_Files__im} PARENT_SCOPE)
diff --git a/src/Makefile.am b/src/Makefile.am
index 273c63182a..6bed09fa71 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -12,14 +12,13 @@ lib_LTLIBRARIES = libjami.la
 libjami_la_LIBADD=
 
 include ./client/Makefile.am
-include ./media/Makefile.am
 include ./config/Makefile.am
-include ./sip/Makefile.am
-include ./upnp/Makefile.am
-include ./security/Makefile.am
-include ./jamidht/Makefile.am
+include ./connectivity/Makefile.am
 include ./im/Makefile.am
+include ./jamidht/Makefile.am
+include ./media/Makefile.am
 include ./plugin/Makefile.am
+include ./sip/Makefile.am
 
 # libjami
 
@@ -87,12 +86,7 @@ libjami_la_SOURCES = \
 		fileutils.cpp \
 		archiver.cpp \
 		threadloop.cpp \
-		ip_utils.h \
-		ip_utils.cpp \
-		utf8_utils.cpp \
 		vcard.cpp \
-		ice_transport.cpp \
-		ice_transport.h \
 		threadloop.h \
 		conference.h \
 		conference_protocol.h \
@@ -107,30 +101,25 @@ libjami_la_SOURCES = \
 		fileutils.h \
 		archiver.h \
 		noncopyable.h \
-		utf8_utils.h \
 		ring_types.h \
 		compiler_intrinsics.h \
 		account_schema.h \
 		registration_states.h \
 		map_utils.h \
-		string_utils.h \
-		string_utils.cpp \
 		ring_api.cpp \
 		rational.h \
 		smartools.cpp \
 		smartools.h \
 		base64.h \
 		base64.cpp \
-		peer_connection.cpp \
-		peer_connection.h \
 		data_transfer.cpp \
 		data_transfer.h \
 		ftp_server.cpp \
 		ftp_server.h \
-		generic_io.h \
 		scheduled_executor.h \
 		scheduled_executor.cpp \
-		transport/peer_channel.h \
+		string_utils.cpp \
+		string_utils.h \
 		uri.h \
 		uri.cpp \
 		vcard.h
diff --git a/src/account.cpp b/src/account.cpp
index ba025d8540..21c59ce8ae 100644
--- a/src/account.cpp
+++ b/src/account.cpp
@@ -52,8 +52,8 @@ using random_device = dht::crypto::random_device;
 #include <yaml-cpp/yaml.h>
 #pragma GCC diagnostic pop
 
-#include "upnp/upnp_control.h"
-#include "ip_utils.h"
+#include "connectivity/upnp/upnp_control.h"
+#include "connectivity/ip_utils.h"
 #include "compiler_intrinsics.h"
 #include "jami/account_const.h"
 
diff --git a/src/account.h b/src/account.h
index f7b3c24df7..0ce987713e 100644
--- a/src/account.h
+++ b/src/account.h
@@ -33,7 +33,7 @@
 #include "config/serializable.h"
 #include "registration_states.h"
 #include "im/message_engine.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "media_codec.h"
 #include "media/media_attribute.h"
 #include "logger.h"
diff --git a/src/base64.cpp b/src/base64.cpp
index 8d110e05b0..470c1b8f26 100644
--- a/src/base64.cpp
+++ b/src/base64.cpp
@@ -17,7 +17,7 @@
  */
 
 #include "base64.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <pjlib.h>
 #include <pjlib-util/base64.h>
diff --git a/src/call.cpp b/src/call.cpp
index 88262f1d1c..328c2af1f4 100644
--- a/src/call.cpp
+++ b/src/call.cpp
@@ -31,8 +31,8 @@
 #include "audio/ringbufferpool.h"
 #include "jami/call_const.h"
 #include "client/ring_signal.h"
-#include "sip/sip_utils.h"
-#include "ip_utils.h"
+#include "connectivity/sip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "map_utils.h"
 #include "call_factory.h"
 #include "string_utils.h"
diff --git a/src/call.h b/src/call.h
index 8351a20e48..ac423d60b6 100644
--- a/src/call.h
+++ b/src/call.h
@@ -31,7 +31,7 @@
 
 #include "recordable.h"
 #include "peerrecorder.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "conference.h"
 #include "media_codec.h"
 #include "media/media_attribute.h"
diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp
index 7c3b3da2b0..18aa5202f2 100644
--- a/src/client/configurationmanager.cpp
+++ b/src/client/configurationmanager.cpp
@@ -29,19 +29,19 @@
 #include "configurationmanager_interface.h"
 #include "account_schema.h"
 #include "manager.h"
-#include "security/tlsvalidator.h"
-#include "security/certstore.h"
+#include "connectivity/security/tlsvalidator.h"
+#include "connectivity/security/certstore.h"
 #include "logger.h"
 #include "fileutils.h"
 #include "archiver.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "sip/sipaccount.h"
 #include "jamidht/jamiaccount.h"
 #include "audio/audiolayer.h"
 #include "system_codec_container.h"
 #include "account_const.h"
 #include "client/ring_signal.h"
-#include "upnp/upnp_context.h"
+#include "connectivity/upnp/upnp_context.h"
 #include "audio/ringbufferpool.h"
 
 #ifdef __APPLE__
diff --git a/src/connectivity/CMakeLists.txt b/src/connectivity/CMakeLists.txt
new file mode 100644
index 0000000000..b9d9337ac1
--- /dev/null
+++ b/src/connectivity/CMakeLists.txt
@@ -0,0 +1,34 @@
+################################################################################
+# Source groups - connectivity
+################################################################################
+list (APPEND Source_Files__connectivity
+    "${CMAKE_CURRENT_SOURCE_DIR}/connectionmanager.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/connectionmanager.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/ice_socket.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/generic_io.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/ice_transport.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/ice_transport.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/ip_utils.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/ip_utils.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/multiplexed_socket.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/multiplexed_socket.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/peer_connection.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/peer_connection.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/sip_utils.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/sip_utils.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/utf8_utils.cpp"
+    "${CMAKE_CURRENT_SOURCE_DIR}/utf8_utils.h"
+)
+
+set (Source_Files__connectivity ${Source_Files__connectivity} PARENT_SCOPE)
+
+add_subdirectory(security)
+
+set (Source_Files__security ${Source_Files__security} PARENT_SCOPE)
+
+add_subdirectory(upnp)
+
+set (Source_Files__upnp ${Source_Files__upnp} PARENT_SCOPE)
+set (Source_Files__upnp__protocol ${Source_Files__upnp__protocol} PARENT_SCOPE)
+set (Source_Files__upnp__protocol__pupnp ${Source_Files__upnp__protocol__pupnp} PARENT_SCOPE)
+set (Source_Files__upnp__protocol__natpmp ${Source_Files__upnp__protocol__natpmp} PARENT_SCOPE)
diff --git a/src/connectivity/Makefile.am b/src/connectivity/Makefile.am
new file mode 100644
index 0000000000..d16c5cc4dc
--- /dev/null
+++ b/src/connectivity/Makefile.am
@@ -0,0 +1,25 @@
+noinst_LTLIBRARIES += libconnectivity.la
+
+include ./connectivity/security/Makefile.am
+include ./connectivity/upnp/Makefile.am
+
+libconnectivity_la_SOURCES = \
+		./connectivity/connectionmanager.cpp \
+		./connectivity/connectionmanager.h \
+		./connectivity/ice_socket.h \
+		./connectivity/generic_io.h \
+		./connectivity/ice_transport.cpp \
+		./connectivity/ice_transport.h \
+		./connectivity/ip_utils.cpp \
+		./connectivity/ip_utils.h \
+		./connectivity/multiplexed_socket.cpp \
+		./connectivity/multiplexed_socket.h \
+		./connectivity/peer_connection.cpp \
+		./connectivity/peer_connection.h \
+		./connectivity/sip_utils.cpp \
+		./connectivity/sip_utils.h \
+		./connectivity/utf8_utils.cpp \
+		./connectivity/utf8_utils.h \
+		./connectivity/transport/peer_channel.h
+
+libjami_la_LIBADD += libconnectivity.la
diff --git a/src/jamidht/connectionmanager.cpp b/src/connectivity/connectionmanager.cpp
similarity index 99%
rename from src/jamidht/connectionmanager.cpp
rename to src/connectivity/connectionmanager.cpp
index 412237812f..51bc23f7e9 100644
--- a/src/jamidht/connectionmanager.cpp
+++ b/src/connectivity/connectionmanager.cpp
@@ -16,9 +16,9 @@
  *  along with this program. If not, see <https://www.gnu.org/licenses/>.
  */
 #include "connectionmanager.h"
-#include "jamiaccount.h"
+#include "jamidht/jamiaccount.h"
 #include "account_const.h"
-#include "account_manager.h"
+#include "jamidht/account_manager.h"
 #include "manager.h"
 #include "peer_connection.h"
 #include "logger.h"
diff --git a/src/jamidht/connectionmanager.h b/src/connectivity/connectionmanager.h
similarity index 100%
rename from src/jamidht/connectionmanager.h
rename to src/connectivity/connectionmanager.h
diff --git a/src/generic_io.h b/src/connectivity/generic_io.h
similarity index 99%
rename from src/generic_io.h
rename to src/connectivity/generic_io.h
index c0eb60beae..e8cbc8527c 100644
--- a/src/generic_io.h
+++ b/src/connectivity/generic_io.h
@@ -20,7 +20,7 @@
 
 #pragma once
 
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 
 #include <functional>
 #include <vector>
diff --git a/src/ice_socket.h b/src/connectivity/ice_socket.h
similarity index 98%
rename from src/ice_socket.h
rename to src/connectivity/ice_socket.h
index c69797c5ce..24707e848d 100644
--- a/src/ice_socket.h
+++ b/src/connectivity/ice_socket.h
@@ -19,7 +19,7 @@
  */
 #pragma once
 
-#include "generic_io.h"
+#include "connectivity/generic_io.h"
 
 #include <memory>
 #include <functional>
diff --git a/src/ice_transport.cpp b/src/connectivity/ice_transport.cpp
similarity index 99%
rename from src/ice_transport.cpp
rename to src/connectivity/ice_transport.cpp
index eae6238718..625a7bab00 100644
--- a/src/ice_transport.cpp
+++ b/src/connectivity/ice_transport.cpp
@@ -21,10 +21,10 @@
 #include "ice_transport.h"
 #include "ice_socket.h"
 #include "logger.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "manager.h"
-#include "upnp/upnp_control.h"
-#include "transport/peer_channel.h"
+#include "connectivity/upnp/upnp_control.h"
+#include "connectivity/transport/peer_channel.h"
 #include "jami/callmanager_interface.h"
 #include "tracepoint.h"
 
diff --git a/src/ice_transport.h b/src/connectivity/ice_transport.h
similarity index 100%
rename from src/ice_transport.h
rename to src/connectivity/ice_transport.h
diff --git a/src/ip_utils.cpp b/src/connectivity/ip_utils.cpp
similarity index 99%
rename from src/ip_utils.cpp
rename to src/connectivity/ip_utils.cpp
index 33d6207325..217472bc30 100644
--- a/src/ip_utils.cpp
+++ b/src/connectivity/ip_utils.cpp
@@ -21,7 +21,7 @@
 #include "ip_utils.h"
 #include "logger.h"
 
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <sys/types.h>
 #include <unistd.h>
diff --git a/src/ip_utils.h b/src/connectivity/ip_utils.h
similarity index 100%
rename from src/ip_utils.h
rename to src/connectivity/ip_utils.h
diff --git a/src/jamidht/multiplexed_socket.cpp b/src/connectivity/multiplexed_socket.cpp
similarity index 99%
rename from src/jamidht/multiplexed_socket.cpp
rename to src/connectivity/multiplexed_socket.cpp
index 0fdb95cda3..54ec39cf00 100644
--- a/src/jamidht/multiplexed_socket.cpp
+++ b/src/connectivity/multiplexed_socket.cpp
@@ -21,7 +21,7 @@
 #include "multiplexed_socket.h"
 #include "peer_connection.h"
 #include "ice_transport.h"
-#include "security/certstore.h"
+#include "connectivity/security/certstore.h"
 
 #include <deque>
 #include <opendht/thread_pool.h>
diff --git a/src/jamidht/multiplexed_socket.h b/src/connectivity/multiplexed_socket.h
similarity index 99%
rename from src/jamidht/multiplexed_socket.h
rename to src/connectivity/multiplexed_socket.h
index a3cb4143bf..91f0f616eb 100644
--- a/src/jamidht/multiplexed_socket.h
+++ b/src/connectivity/multiplexed_socket.h
@@ -19,7 +19,7 @@
 
 #include <opendht/default_types.h>
 
-#include "generic_io.h"
+#include "connectivity/generic_io.h"
 #include <condition_variable>
 
 namespace jami {
@@ -344,4 +344,4 @@ private:
 
 } // namespace jami
 
-MSGPACK_ADD_ENUM(jami::ChannelRequestState);
\ No newline at end of file
+MSGPACK_ADD_ENUM(jami::ChannelRequestState);
diff --git a/src/peer_connection.cpp b/src/connectivity/peer_connection.cpp
similarity index 99%
rename from src/peer_connection.cpp
rename to src/connectivity/peer_connection.cpp
index 36e8367b94..adcfe91f58 100644
--- a/src/peer_connection.cpp
+++ b/src/connectivity/peer_connection.cpp
@@ -24,8 +24,7 @@
 #include "data_transfer.h"
 #include "manager.h"
 #include "jamidht/jamiaccount.h"
-#include "string_utils.h"
-#include "security/tls_session.h"
+#include "connectivity/security/tls_session.h"
 
 #include <opendht/thread_pool.h>
 
diff --git a/src/peer_connection.h b/src/connectivity/peer_connection.h
similarity index 96%
rename from src/peer_connection.h
rename to src/connectivity/peer_connection.h
index 8b696bc188..d3a74fdf10 100644
--- a/src/peer_connection.h
+++ b/src/connectivity/peer_connection.h
@@ -23,12 +23,12 @@
 
 #include "jami/datatransfer_interface.h"
 #include "data_transfer.h"
-#include "ip_utils.h"
-#include "generic_io.h"
-#include "security/diffie-hellman.h"
+#include "connectivity/ip_utils.h"
+#include "connectivity/generic_io.h"
+#include "connectivity/security/diffie-hellman.h"
 #include "opendht/crypto.h"
-#include "ice_transport.h"
-#include "security/tls_session.h"
+#include "connectivity/ice_transport.h"
+#include "connectivity/security/tls_session.h"
 
 #include <functional>
 #include <future>
diff --git a/src/security/CMakeLists.txt b/src/connectivity/security/CMakeLists.txt
similarity index 100%
rename from src/security/CMakeLists.txt
rename to src/connectivity/security/CMakeLists.txt
diff --git a/src/connectivity/security/Makefile.am b/src/connectivity/security/Makefile.am
new file mode 100644
index 0000000000..a140655226
--- /dev/null
+++ b/src/connectivity/security/Makefile.am
@@ -0,0 +1,17 @@
+noinst_LTLIBRARIES += libsecurity.la
+
+libsecurity_la_CXXFLAGS = -I$(top_srcdir)/src $(AM_CXXFLAGS)
+
+libsecurity_la_SOURCES = \
+		./connectivity/security/tls_session.cpp \
+		./connectivity/security/tls_session.h \
+		./connectivity/security/tlsvalidator.cpp \
+		./connectivity/security/tlsvalidator.h \
+		./connectivity/security/certstore.cpp \
+		./connectivity/security/certstore.h \
+		./connectivity/security/memory.cpp \
+		./connectivity/security/memory.h \
+		./connectivity/security/diffie-hellman.cpp \
+		./connectivity/security/diffie-hellman.h
+
+libjami_la_LIBADD += libsecurity.la
diff --git a/src/security/certstore.cpp b/src/connectivity/security/certstore.cpp
similarity index 100%
rename from src/security/certstore.cpp
rename to src/connectivity/security/certstore.cpp
diff --git a/src/security/certstore.h b/src/connectivity/security/certstore.h
similarity index 100%
rename from src/security/certstore.h
rename to src/connectivity/security/certstore.h
diff --git a/src/security/diffie-hellman.cpp b/src/connectivity/security/diffie-hellman.cpp
similarity index 100%
rename from src/security/diffie-hellman.cpp
rename to src/connectivity/security/diffie-hellman.cpp
diff --git a/src/security/diffie-hellman.h b/src/connectivity/security/diffie-hellman.h
similarity index 100%
rename from src/security/diffie-hellman.h
rename to src/connectivity/security/diffie-hellman.h
diff --git a/src/security/memory.cpp b/src/connectivity/security/memory.cpp
similarity index 100%
rename from src/security/memory.cpp
rename to src/connectivity/security/memory.cpp
diff --git a/src/security/memory.h b/src/connectivity/security/memory.h
similarity index 100%
rename from src/security/memory.h
rename to src/connectivity/security/memory.h
diff --git a/src/security/tls_session.cpp b/src/connectivity/security/tls_session.cpp
similarity index 99%
rename from src/security/tls_session.cpp
rename to src/connectivity/security/tls_session.cpp
index 86adea023c..ee648cb3c8 100644
--- a/src/security/tls_session.cpp
+++ b/src/connectivity/security/tls_session.cpp
@@ -21,7 +21,7 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include <ip_utils.h> // DO NOT CHANGE ORDER OF THIS INCLUDE OR MINGWIN FAILS TO BUILD
+#include <connectivity/ip_utils.h> // DO NOT CHANGE ORDER OF THIS INCLUDE OR MINGWIN FAILS TO BUILD
 
 #include "tls_session.h"
 
diff --git a/src/security/tls_session.h b/src/connectivity/security/tls_session.h
similarity index 99%
rename from src/security/tls_session.h
rename to src/connectivity/security/tls_session.h
index d93b075812..7d7af45324 100644
--- a/src/security/tls_session.h
+++ b/src/connectivity/security/tls_session.h
@@ -24,7 +24,7 @@
 #pragma once
 
 #include "noncopyable.h"
-#include "generic_io.h"
+#include "connectivity/generic_io.h"
 #include "diffie-hellman.h"
 
 #include <gnutls/gnutls.h>
diff --git a/src/security/tlsvalidator.cpp b/src/connectivity/security/tlsvalidator.cpp
similarity index 99%
rename from src/security/tlsvalidator.cpp
rename to src/connectivity/security/tlsvalidator.cpp
index 90f994404b..aa58f6520b 100644
--- a/src/security/tlsvalidator.cpp
+++ b/src/connectivity/security/tlsvalidator.cpp
@@ -30,7 +30,6 @@
 #include "certstore.h"
 
 #include "fileutils.h"
-#include "string_utils.h"
 #include "logger.h"
 #include "security_const.h"
 
diff --git a/src/security/tlsvalidator.h b/src/connectivity/security/tlsvalidator.h
similarity index 100%
rename from src/security/tlsvalidator.h
rename to src/connectivity/security/tlsvalidator.h
diff --git a/src/sip/sip_utils.cpp b/src/connectivity/sip_utils.cpp
similarity index 99%
rename from src/sip/sip_utils.cpp
rename to src/connectivity/sip_utils.cpp
index b2fcc2dab6..5096e5ec96 100644
--- a/src/sip/sip_utils.cpp
+++ b/src/connectivity/sip_utils.cpp
@@ -18,9 +18,9 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "logger.h"
-#include "utf8_utils.h"
+#include "connectivity/utf8_utils.h"
 
 #include <pjsip.h>
 #include <pjsip_ua.h>
diff --git a/src/sip/sip_utils.h b/src/connectivity/sip_utils.h
similarity index 99%
rename from src/sip/sip_utils.h
rename to src/connectivity/sip_utils.h
index 5cd9a61a78..17891ba51e 100644
--- a/src/sip/sip_utils.h
+++ b/src/connectivity/sip_utils.h
@@ -20,7 +20,7 @@
 
 #pragma once
 
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "media_codec.h"
 #include "media/audio/audiobuffer.h"
 #include "noncopyable.h"
diff --git a/src/transport/peer_channel.h b/src/connectivity/transport/peer_channel.h
similarity index 100%
rename from src/transport/peer_channel.h
rename to src/connectivity/transport/peer_channel.h
diff --git a/src/upnp/CMakeLists.txt b/src/connectivity/upnp/CMakeLists.txt
similarity index 100%
rename from src/upnp/CMakeLists.txt
rename to src/connectivity/upnp/CMakeLists.txt
diff --git a/src/connectivity/upnp/Makefile.am b/src/connectivity/upnp/Makefile.am
new file mode 100644
index 0000000000..7b13b96099
--- /dev/null
+++ b/src/connectivity/upnp/Makefile.am
@@ -0,0 +1,13 @@
+noinst_LTLIBRARIES += libupnpcontrol.la
+
+libupnpcontrol_la_LIBADD=
+
+libupnpcontrol_la_SOURCES = \
+	./connectivity/upnp/upnp_control.cpp \
+	./connectivity/upnp/upnp_control.h \
+	./connectivity/upnp/upnp_context.cpp \
+	./connectivity/upnp/upnp_context.h
+
+include ./connectivity/upnp/protocol/Makefile.am
+
+libjami_la_LIBADD += libupnpcontrol.la
diff --git a/src/upnp/protocol/CMakeLists.txt b/src/connectivity/upnp/protocol/CMakeLists.txt
similarity index 100%
rename from src/upnp/protocol/CMakeLists.txt
rename to src/connectivity/upnp/protocol/CMakeLists.txt
diff --git a/src/connectivity/upnp/protocol/Makefile.am b/src/connectivity/upnp/protocol/Makefile.am
new file mode 100644
index 0000000000..720d4a6d64
--- /dev/null
+++ b/src/connectivity/upnp/protocol/Makefile.am
@@ -0,0 +1,21 @@
+noinst_LTLIBRARIES += libupnpprotocol.la
+
+libupnpprotocol_la_SOURCES = \
+	./connectivity/upnp/protocol/igd.h \
+	./connectivity/upnp/protocol/igd.cpp \
+	./connectivity/upnp/protocol/mapping.h \
+	./connectivity/upnp/protocol/mapping.cpp \
+	./connectivity/upnp/protocol/global_mapping.h \
+	./connectivity/upnp/protocol/upnp_protocol.h
+
+libupnpprotocol_la_LIBADD =
+
+if BUILD_PUPNP
+include ./connectivity/upnp/protocol/pupnp/Makefile.am
+endif
+
+if BUILD_NATPMP
+include ./connectivity/upnp/protocol/natpmp/Makefile.am
+endif
+
+libupnpcontrol_la_LIBADD += libupnpprotocol.la
diff --git a/src/upnp/protocol/igd.cpp b/src/connectivity/upnp/protocol/igd.cpp
similarity index 100%
rename from src/upnp/protocol/igd.cpp
rename to src/connectivity/upnp/protocol/igd.cpp
diff --git a/src/upnp/protocol/igd.h b/src/connectivity/upnp/protocol/igd.h
similarity index 97%
rename from src/upnp/protocol/igd.h
rename to src/connectivity/upnp/protocol/igd.h
index 4925e57d9e..66425208cc 100644
--- a/src/upnp/protocol/igd.h
+++ b/src/connectivity/upnp/protocol/igd.h
@@ -27,10 +27,9 @@
 #endif
 
 #include "noncopyable.h"
-#include "ip_utils.h"
-#include "string_utils.h"
+#include "connectivity/ip_utils.h"
 
-#include "upnp/protocol/mapping.h"
+#include "connectivity/upnp/protocol/mapping.h"
 
 #ifdef _MSC_VER
 typedef uint16_t in_port_t;
diff --git a/src/upnp/protocol/mapping.cpp b/src/connectivity/upnp/protocol/mapping.cpp
similarity index 100%
rename from src/upnp/protocol/mapping.cpp
rename to src/connectivity/upnp/protocol/mapping.cpp
diff --git a/src/upnp/protocol/mapping.h b/src/connectivity/upnp/protocol/mapping.h
similarity index 99%
rename from src/upnp/protocol/mapping.h
rename to src/connectivity/upnp/protocol/mapping.h
index 8445b870ce..a3b5bae8f1 100644
--- a/src/upnp/protocol/mapping.h
+++ b/src/connectivity/upnp/protocol/mapping.h
@@ -26,8 +26,7 @@
 #endif
 
 #include "noncopyable.h"
-#include "ip_utils.h"
-#include "string_utils.h"
+#include "connectivity/ip_utils.h"
 #include "scheduled_executor.h"
 #include "igd.h"
 
diff --git a/src/upnp/protocol/natpmp/CMakeLists.txt b/src/connectivity/upnp/protocol/natpmp/CMakeLists.txt
similarity index 100%
rename from src/upnp/protocol/natpmp/CMakeLists.txt
rename to src/connectivity/upnp/protocol/natpmp/CMakeLists.txt
diff --git a/src/connectivity/upnp/protocol/natpmp/Makefile.am b/src/connectivity/upnp/protocol/natpmp/Makefile.am
new file mode 100644
index 0000000000..beaa9e9a5a
--- /dev/null
+++ b/src/connectivity/upnp/protocol/natpmp/Makefile.am
@@ -0,0 +1,9 @@
+noinst_LTLIBRARIES += libnat_pmp.la
+
+libnat_pmp_la_SOURCES = \
+	./connectivity/upnp/protocol/natpmp/pmp_igd.h \
+	./connectivity/upnp/protocol/natpmp/pmp_igd.cpp \
+	./connectivity/upnp/protocol/natpmp/nat_pmp.h \
+	./connectivity/upnp/protocol/natpmp/nat_pmp.cpp
+
+libupnpprotocol_la_LIBADD += libnat_pmp.la
diff --git a/src/upnp/protocol/natpmp/nat_pmp.cpp b/src/connectivity/upnp/protocol/natpmp/nat_pmp.cpp
similarity index 100%
rename from src/upnp/protocol/natpmp/nat_pmp.cpp
rename to src/connectivity/upnp/protocol/natpmp/nat_pmp.cpp
diff --git a/src/upnp/protocol/natpmp/nat_pmp.h b/src/connectivity/upnp/protocol/natpmp/nat_pmp.h
similarity index 97%
rename from src/upnp/protocol/natpmp/nat_pmp.h
rename to src/connectivity/upnp/protocol/natpmp/nat_pmp.h
index addd152849..c15bd87de0 100644
--- a/src/upnp/protocol/natpmp/nat_pmp.h
+++ b/src/connectivity/upnp/protocol/natpmp/nat_pmp.h
@@ -25,12 +25,12 @@
 #include "config.h"
 #endif
 
-#include "upnp/protocol/upnp_protocol.h"
-#include "upnp/protocol/igd.h"
+#include "connectivity/upnp/protocol/upnp_protocol.h"
+#include "connectivity/upnp/protocol/igd.h"
 #include "pmp_igd.h"
 
 #include "logger.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "noncopyable.h"
 #include "compiler_intrinsics.h"
 
diff --git a/src/upnp/protocol/natpmp/pmp_igd.cpp b/src/connectivity/upnp/protocol/natpmp/pmp_igd.cpp
similarity index 100%
rename from src/upnp/protocol/natpmp/pmp_igd.cpp
rename to src/connectivity/upnp/protocol/natpmp/pmp_igd.cpp
diff --git a/src/upnp/protocol/natpmp/pmp_igd.h b/src/connectivity/upnp/protocol/natpmp/pmp_igd.h
similarity index 97%
rename from src/upnp/protocol/natpmp/pmp_igd.h
rename to src/connectivity/upnp/protocol/natpmp/pmp_igd.h
index cde174fca4..d67678d18c 100644
--- a/src/upnp/protocol/natpmp/pmp_igd.h
+++ b/src/connectivity/upnp/protocol/natpmp/pmp_igd.h
@@ -27,7 +27,7 @@
 
 #include "../igd.h"
 #include "noncopyable.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 
 #include <map>
 #include <atomic>
diff --git a/src/upnp/protocol/pupnp/CMakeLists.txt b/src/connectivity/upnp/protocol/pupnp/CMakeLists.txt
similarity index 100%
rename from src/upnp/protocol/pupnp/CMakeLists.txt
rename to src/connectivity/upnp/protocol/pupnp/CMakeLists.txt
diff --git a/src/connectivity/upnp/protocol/pupnp/Makefile.am b/src/connectivity/upnp/protocol/pupnp/Makefile.am
new file mode 100644
index 0000000000..c74cbf7806
--- /dev/null
+++ b/src/connectivity/upnp/protocol/pupnp/Makefile.am
@@ -0,0 +1,9 @@
+noinst_LTLIBRARIES += libpupnp.la
+
+libpupnp_la_SOURCES = \
+	./connectivity/upnp/protocol/pupnp/upnp_igd.h \
+	./connectivity/upnp/protocol/pupnp/upnp_igd.cpp \
+	./connectivity/upnp/protocol/pupnp/pupnp.h \
+	./connectivity/upnp/protocol/pupnp/pupnp.cpp
+
+libupnpprotocol_la_LIBADD += libpupnp.la
diff --git a/src/upnp/protocol/pupnp/pupnp.cpp b/src/connectivity/upnp/protocol/pupnp/pupnp.cpp
similarity index 100%
rename from src/upnp/protocol/pupnp/pupnp.cpp
rename to src/connectivity/upnp/protocol/pupnp/pupnp.cpp
diff --git a/src/upnp/protocol/pupnp/pupnp.h b/src/connectivity/upnp/protocol/pupnp/pupnp.h
similarity index 99%
rename from src/upnp/protocol/pupnp/pupnp.h
rename to src/connectivity/upnp/protocol/pupnp/pupnp.h
index a15a9d34a8..4615ba73d7 100644
--- a/src/upnp/protocol/pupnp/pupnp.h
+++ b/src/connectivity/upnp/protocol/pupnp/pupnp.h
@@ -36,7 +36,7 @@
 #include "upnp_igd.h"
 
 #include "logger.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "noncopyable.h"
 #include "compiler_intrinsics.h"
 
diff --git a/src/upnp/protocol/pupnp/upnp_igd.cpp b/src/connectivity/upnp/protocol/pupnp/upnp_igd.cpp
similarity index 100%
rename from src/upnp/protocol/pupnp/upnp_igd.cpp
rename to src/connectivity/upnp/protocol/pupnp/upnp_igd.cpp
diff --git a/src/upnp/protocol/pupnp/upnp_igd.h b/src/connectivity/upnp/protocol/pupnp/upnp_igd.h
similarity index 97%
rename from src/upnp/protocol/pupnp/upnp_igd.h
rename to src/connectivity/upnp/protocol/pupnp/upnp_igd.h
index a952c300fd..cd92f79d26 100644
--- a/src/upnp/protocol/pupnp/upnp_igd.h
+++ b/src/connectivity/upnp/protocol/pupnp/upnp_igd.h
@@ -26,11 +26,10 @@
 #include "config.h"
 #endif
 
-#include "upnp/protocol/igd.h"
+#include "connectivity/upnp/protocol/igd.h"
 
 #include "noncopyable.h"
-#include "ip_utils.h"
-#include "string_utils.h"
+#include "connectivity/ip_utils.h"
 
 #include <map>
 #include <string>
diff --git a/src/upnp/protocol/upnp_protocol.h b/src/connectivity/upnp/protocol/upnp_protocol.h
similarity index 98%
rename from src/upnp/protocol/upnp_protocol.h
rename to src/connectivity/upnp/protocol/upnp_protocol.h
index 6ac591b250..a27eefb5a2 100644
--- a/src/upnp/protocol/upnp_protocol.h
+++ b/src/connectivity/upnp/protocol/upnp_protocol.h
@@ -31,8 +31,7 @@
 
 #include "logger.h"
 #include "noncopyable.h"
-#include "ip_utils.h"
-#include "string_utils.h"
+#include "connectivity/ip_utils.h"
 
 #include <map>
 #include <string>
@@ -41,7 +40,7 @@
 #include <condition_variable>
 #include <list>
 
-#include "upnp/upnp_thread_util.h"
+#include "connectivity/upnp/upnp_thread_util.h"
 
 namespace jami {
 namespace upnp {
diff --git a/src/upnp/upnp_context.cpp b/src/connectivity/upnp/upnp_context.cpp
similarity index 100%
rename from src/upnp/upnp_context.cpp
rename to src/connectivity/upnp/upnp_context.cpp
diff --git a/src/upnp/upnp_context.h b/src/connectivity/upnp/upnp_context.h
similarity index 99%
rename from src/upnp/upnp_context.h
rename to src/connectivity/upnp/upnp_context.h
index dea96d2fc7..a860203617 100644
--- a/src/upnp/upnp_context.h
+++ b/src/connectivity/upnp/upnp_context.h
@@ -36,7 +36,7 @@
 #include "protocol/igd.h"
 
 #include "logger.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "noncopyable.h"
 
 #include <opendht/rng.h>
diff --git a/src/upnp/upnp_control.cpp b/src/connectivity/upnp/upnp_control.cpp
similarity index 100%
rename from src/upnp/upnp_control.cpp
rename to src/connectivity/upnp/upnp_control.cpp
diff --git a/src/upnp/upnp_control.h b/src/connectivity/upnp/upnp_control.h
similarity index 98%
rename from src/upnp/upnp_control.h
rename to src/connectivity/upnp/upnp_control.h
index c3805d5389..a9c74fcd5b 100644
--- a/src/upnp/upnp_control.h
+++ b/src/connectivity/upnp/upnp_control.h
@@ -30,7 +30,7 @@
 
 #include "noncopyable.h"
 #include "logger.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 
 #include <memory>
 #include <chrono>
diff --git a/src/upnp/upnp_thread_util.h b/src/connectivity/upnp/upnp_thread_util.h
similarity index 100%
rename from src/upnp/upnp_thread_util.h
rename to src/connectivity/upnp/upnp_thread_util.h
diff --git a/src/utf8_utils.cpp b/src/connectivity/utf8_utils.cpp
similarity index 99%
rename from src/utf8_utils.cpp
rename to src/connectivity/utf8_utils.cpp
index 42fd505be9..a58c2cc83b 100644
--- a/src/utf8_utils.cpp
+++ b/src/connectivity/utf8_utils.cpp
@@ -22,7 +22,7 @@
 
 #include <cstring>
 #include <cassert>
-#include "utf8_utils.h"
+#include "connectivity/utf8_utils.h"
 
 #if defined(_MSC_VER)
 #include <BaseTsd.h>
diff --git a/src/utf8_utils.h b/src/connectivity/utf8_utils.h
similarity index 100%
rename from src/utf8_utils.h
rename to src/connectivity/utf8_utils.h
diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index 9256d7450e..6ee15c1e0a 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -27,7 +27,7 @@
 #include "jamidht/p2p.h"
 #include "manager.h"
 #include "map_utils.h"
-#include "peer_connection.h"
+#include "connectivity/peer_connection.h"
 #include "string_utils.h"
 
 #include <thread>
diff --git a/src/data_transfer.h b/src/data_transfer.h
index bea9883782..c3751c5194 100644
--- a/src/data_transfer.h
+++ b/src/data_transfer.h
@@ -21,7 +21,7 @@
 #pragma once
 
 #include "jami/datatransfer_interface.h"
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 #include "noncopyable.h"
 
 #include <memory>
diff --git a/src/ftp_server.h b/src/ftp_server.h
index fc5ab6198b..26591fed4f 100644
--- a/src/ftp_server.h
+++ b/src/ftp_server.h
@@ -21,7 +21,7 @@
 #pragma once
 
 #include "data_transfer.h"
-#include "peer_connection.h"
+#include "connectivity/peer_connection.h"
 
 #include <vector>
 #include <array>
diff --git a/src/gittransport.cpp b/src/gittransport.cpp
index 57bc10b62e..4232e03fb2 100644
--- a/src/gittransport.cpp
+++ b/src/gittransport.cpp
@@ -18,8 +18,8 @@
 #include "gittransport.h"
 
 #include "manager.h"
-#include "jamidht/multiplexed_socket.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/multiplexed_socket.h"
+#include "connectivity/connectionmanager.h"
 
 using namespace std::string_view_literals;
 
diff --git a/src/im/instant_messaging.cpp b/src/im/instant_messaging.cpp
index 52bc4aa37d..aacffda66f 100644
--- a/src/im/instant_messaging.cpp
+++ b/src/im/instant_messaging.cpp
@@ -23,7 +23,7 @@
 #include "instant_messaging.h"
 
 #include "logger.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <pjsip_ua.h>
 #include <pjsip.h>
diff --git a/src/jamidht/CMakeLists.txt b/src/jamidht/CMakeLists.txt
index b2b7812db0..1c08d51cf3 100644
--- a/src/jamidht/CMakeLists.txt
+++ b/src/jamidht/CMakeLists.txt
@@ -13,8 +13,6 @@ list (APPEND Source_Files__jamidht
       "${CMAKE_CURRENT_SOURCE_DIR}/archive_account_manager.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/archive_account_manager.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/configkeys.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/connectionmanager.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/connectionmanager.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/conversationrepository.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/conversationrepository.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/conversation.cpp"
@@ -30,8 +28,6 @@ list (APPEND Source_Files__jamidht
       "${CMAKE_CURRENT_SOURCE_DIR}/jami_contact.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/jamiaccount.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/jamiaccount.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/multiplexed_socket.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/multiplexed_socket.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/channel_handler.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/conversation_channel_handler.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/conversation_channel_handler.cpp"
diff --git a/src/jamidht/Makefile.am b/src/jamidht/Makefile.am
index 79fe3a35a5..bd64a47812 100644
--- a/src/jamidht/Makefile.am
+++ b/src/jamidht/Makefile.am
@@ -8,8 +8,6 @@ libjamiacc_la_SOURCES = \
 	./jamidht/abstract_sip_transport.h \
 	./jamidht/jamiaccount.cpp \
 	./jamidht/jamiaccount.h \
-	./jamidht/connectionmanager.h \
-	./jamidht/connectionmanager.cpp \
 	./jamidht/channeled_transport.h \
 	./jamidht/channeled_transport.cpp \
 	./jamidht/channeled_transfers.h \
@@ -25,8 +23,6 @@ libjamiacc_la_SOURCES = \
 	./jamidht/conversation_channel_handler.cpp \
 	./jamidht/conversation_module.h \
 	./jamidht/conversation_module.cpp \
-	./jamidht/multiplexed_socket.h \
-	./jamidht/multiplexed_socket.cpp \
 	./jamidht/accountarchive.cpp \
 	./jamidht/accountarchive.h \
 	./jamidht/p2p.cpp \
diff --git a/src/jamidht/abstract_sip_transport.h b/src/jamidht/abstract_sip_transport.h
index 337fffc421..87a36e00ac 100644
--- a/src/jamidht/abstract_sip_transport.h
+++ b/src/jamidht/abstract_sip_transport.h
@@ -20,8 +20,8 @@
 
 #pragma once
 
-#include "ip_utils.h"
-#include "sip/sip_utils.h"
+#include "connectivity/ip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <pjsip.h>
 #include <pj/pool.h>
diff --git a/src/jamidht/channel_handler.h b/src/jamidht/channel_handler.h
index 9546b2e3a9..2a45785235 100644
--- a/src/jamidht/channel_handler.h
+++ b/src/jamidht/channel_handler.h
@@ -20,7 +20,7 @@
 
 #pragma once
 
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 
 namespace jami {
 
diff --git a/src/jamidht/channeled_transfers.cpp b/src/jamidht/channeled_transfers.cpp
index 490ab629df..329229c4e0 100644
--- a/src/jamidht/channeled_transfers.cpp
+++ b/src/jamidht/channeled_transfers.cpp
@@ -21,7 +21,7 @@
 #include "channeled_transfers.h"
 
 #include "ftp_server.h"
-#include "multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 
 #include <opendht/thread_pool.h>
 
diff --git a/src/jamidht/channeled_transport.cpp b/src/jamidht/channeled_transport.cpp
index 2a8884a073..4fdd58f274 100644
--- a/src/jamidht/channeled_transport.cpp
+++ b/src/jamidht/channeled_transport.cpp
@@ -21,8 +21,8 @@
 #include "channeled_transport.h"
 
 #include "logger.h"
-#include "multiplexed_socket.h"
-#include "sip/sip_utils.h"
+#include "connectivity/multiplexed_socket.h"
+#include "connectivity/sip_utils.h"
 
 #include <pjsip/sip_transport.h>
 #include <pjsip/sip_endpoint.h>
diff --git a/src/jamidht/contact_list.h b/src/jamidht/contact_list.h
index 44b6d4ce25..84c1466de8 100644
--- a/src/jamidht/contact_list.h
+++ b/src/jamidht/contact_list.h
@@ -20,7 +20,7 @@
 #pragma once
 
 #include "jami_contact.h"
-#include "security/certstore.h"
+#include "connectivity/security/certstore.h"
 
 #include <opendht/infohash.h>
 #include <opendht/crypto.h>
diff --git a/src/jamidht/conversation_channel_handler.h b/src/jamidht/conversation_channel_handler.h
index 2656202ddf..50ba7414ef 100644
--- a/src/jamidht/conversation_channel_handler.h
+++ b/src/jamidht/conversation_channel_handler.h
@@ -21,7 +21,7 @@
 #pragma once
 
 #include "jamidht/channel_handler.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 
 namespace jami {
diff --git a/src/jamidht/gitserver.cpp b/src/jamidht/gitserver.cpp
index 51e15134a5..5371814d02 100644
--- a/src/jamidht/gitserver.cpp
+++ b/src/jamidht/gitserver.cpp
@@ -21,7 +21,7 @@
 #include "logger.h"
 #include "gittransport.h"
 #include "manager.h"
-#include "multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 #include "opendht/thread_pool.h"
 
 #include <charconv>
diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp
index bccc2580e9..d7da1f3325 100644
--- a/src/jamidht/jamiaccount.cpp
+++ b/src/jamidht/jamiaccount.cpp
@@ -37,7 +37,7 @@
 #include "archive_account_manager.h"
 #include "server_account_manager.h"
 #include "jamidht/channeled_transport.h"
-#include "multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 #include "conversation_channel_handler.h"
 #include "sync_channel_handler.h"
 #include "transfer_channel_handler.h"
@@ -46,7 +46,7 @@
 #include "sip/sipvoiplink.h"
 #include "sip/sipcall.h"
 #include "sip/siptransport.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include "p2p.h"
 #include "uri.h"
@@ -55,12 +55,12 @@
 #include "jami/call_const.h"
 #include "jami/account_const.h"
 
-#include "upnp/upnp_control.h"
+#include "connectivity/upnp/upnp_control.h"
 #include "system_codec_container.h"
 
 #include "account_schema.h"
 #include "manager.h"
-#include "utf8_utils.h"
+#include "connectivity/utf8_utils.h"
 
 #ifdef ENABLE_PLUGIN
 #include "plugin/jamipluginmanager.h"
@@ -77,7 +77,7 @@
 #include "conversation.h"
 
 #include "config/yamlparser.h"
-#include "security/certstore.h"
+#include "connectivity/security/certstore.h"
 #include "libdevcrypto/Common.h"
 #include "base64.h"
 #include "vcard.h"
diff --git a/src/jamidht/jamiaccount.h b/src/jamidht/jamiaccount.h
index 3dbc161767..5469355a0e 100644
--- a/src/jamidht/jamiaccount.h
+++ b/src/jamidht/jamiaccount.h
@@ -27,21 +27,21 @@
 #include "config.h"
 #endif
 
-#include "security/tls_session.h"
-#include "security/diffie-hellman.h"
+#include "connectivity/security/tls_session.h"
+#include "connectivity/security/diffie-hellman.h"
 #include "sip/sipaccountbase.h"
 #include "jami/datatransfer_interface.h"
 #include "jamidht/conversation.h"
-#include "multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 #include "data_transfer.h"
 #include "uri.h"
 
 #include "noncopyable.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "ring_types.h" // enable_if_base_of
-#include "security/certstore.h"
+#include "connectivity/security/certstore.h"
 #include "scheduled_executor.h"
-#include "connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "gitserver.h"
 #include "channel_handler.h"
 #include "conversation_module.h"
@@ -51,7 +51,7 @@
 #include <opendht/dhtrunner.h>
 #include <opendht/default_types.h>
 
-#include "upnp/protocol/mapping.h"
+#include "connectivity/upnp/protocol/mapping.h"
 
 #include <pjsip/sip_types.h>
 
diff --git a/src/jamidht/p2p.cpp b/src/jamidht/p2p.cpp
index 12c0cb9a49..3a10ccfda9 100644
--- a/src/jamidht/p2p.cpp
+++ b/src/jamidht/p2p.cpp
@@ -25,10 +25,10 @@
 #include "jamiaccount.h"
 #include "ftp_server.h"
 #include "manager.h"
-#include "peer_connection.h"
+#include "connectivity/peer_connection.h"
 #include "account_manager.h"
-#include "multiplexed_socket.h"
-#include "connectionmanager.h"
+#include "connectivity/multiplexed_socket.h"
+#include "connectivity/connectionmanager.h"
 #include "fileutils.h"
 
 #include <opendht/default_types.h>
diff --git a/src/jamidht/sync_channel_handler.h b/src/jamidht/sync_channel_handler.h
index e88e168f7f..2d1adf2776 100644
--- a/src/jamidht/sync_channel_handler.h
+++ b/src/jamidht/sync_channel_handler.h
@@ -21,7 +21,7 @@
 #pragma once
 
 #include "jamidht/channel_handler.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 
 namespace jami {
diff --git a/src/jamidht/sync_module.cpp b/src/jamidht/sync_module.cpp
index 348a1d6294..137b0a309d 100644
--- a/src/jamidht/sync_module.cpp
+++ b/src/jamidht/sync_module.cpp
@@ -20,7 +20,7 @@
 
 #include "sync_module.h"
 
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 #include "jamidht/conversation_module.h"
 #include "jamidht/archive_account_manager.h"
 
diff --git a/src/jamidht/transfer_channel_handler.h b/src/jamidht/transfer_channel_handler.h
index 790d51e538..560df3f194 100644
--- a/src/jamidht/transfer_channel_handler.h
+++ b/src/jamidht/transfer_channel_handler.h
@@ -21,7 +21,7 @@
 #pragma once
 
 #include "jamidht/channel_handler.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 
 namespace jami {
diff --git a/src/manager.cpp b/src/manager.cpp
index adc711fcc8..1f92858d89 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -50,7 +50,7 @@ using random_device = dht::crypto::random_device;
 
 #include "call_factory.h"
 
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "sip/sipvoiplink.h"
 
 #include "im/instant_messaging.h"
@@ -74,7 +74,7 @@ using random_device = dht::crypto::random_device;
 #include "client/videomanager.h"
 
 #include "conference.h"
-#include "ice_transport.h"
+#include "connectivity/ice_transport.h"
 
 #include "client/ring_signal.h"
 #include "jami/call_const.h"
@@ -92,7 +92,7 @@ using random_device = dht::crypto::random_device;
 #include "data_transfer.h"
 #include "jami/media_const.h"
 
-#include "upnp/upnp_context.h"
+#include "connectivity/upnp/upnp_context.h"
 
 #include <libavutil/ffversion.h>
 
diff --git a/src/media/media_codec.h b/src/media/media_codec.h
index e1a2ea554f..005d335b32 100644
--- a/src/media/media_codec.h
+++ b/src/media/media_codec.h
@@ -26,7 +26,7 @@
 #endif
 
 #include "audio/audiobuffer.h" // for AudioFormat
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 
 #include <cctype>
 #include <string>
diff --git a/src/media/rtp_session.h b/src/media/rtp_session.h
index 1f6bb75429..182ef3a91f 100644
--- a/src/media/rtp_session.h
+++ b/src/media/rtp_session.h
@@ -23,7 +23,7 @@
 #pragma once
 
 #include "socket_pair.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "media/media_codec.h"
 
 #include <functional>
diff --git a/src/media/socket_pair.cpp b/src/media/socket_pair.cpp
index 9ca32d367c..afa7790382 100644
--- a/src/media/socket_pair.cpp
+++ b/src/media/socket_pair.cpp
@@ -20,14 +20,14 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "ip_utils.h"   // MUST BE INCLUDED FIRST
+#include "connectivity/ip_utils.h"   // MUST BE INCLUDED FIRST
 #include "libav_deps.h" // THEN THIS ONE AFTER
 
 #include "socket_pair.h"
-#include "ice_socket.h"
+#include "connectivity/ice_socket.h"
 #include "libav_utils.h"
 #include "logger.h"
-#include "security/memory.h"
+#include "connectivity/security/memory.h"
 
 #include <iostream>
 #include <string>
diff --git a/src/media/socket_pair.h b/src/media/socket_pair.h
index 037513282b..3fcbfbc2eb 100644
--- a/src/media/socket_pair.h
+++ b/src/media/socket_pair.h
@@ -25,7 +25,7 @@
 #include <config.h>
 #endif
 
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "media_io_handle.h"
 
 #ifndef _WIN32
diff --git a/src/media/srtp.c b/src/media/srtp.c
index ea529460d3..96738d367a 100644
--- a/src/media/srtp.c
+++ b/src/media/srtp.c
@@ -29,7 +29,7 @@
 #include <libavutil/log.h>
 #include "srtp.h"
 
-#include "security/memory.h"
+#include "connectivity/security/memory.h"
 
 void ff_srtp_free(struct SRTPContext *s)
 {
diff --git a/src/media/video/video_mixer.cpp b/src/media/video/video_mixer.cpp
index 274a499c8c..6dceb2003f 100644
--- a/src/media/video/video_mixer.cpp
+++ b/src/media/video/video_mixer.cpp
@@ -32,7 +32,7 @@
 #ifdef RING_ACCEL
 #include "accel.h"
 #endif
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <cmath>
 #include <unistd.h>
diff --git a/src/media/video/video_rtp_session.cpp b/src/media/video/video_rtp_session.cpp
index 2957f77727..c3a0d46cd2 100644
--- a/src/media/video/video_rtp_session.cpp
+++ b/src/media/video/video_rtp_session.cpp
@@ -25,7 +25,7 @@
 #include "video_sender.h"
 #include "video_receive_thread.h"
 #include "video_mixer.h"
-#include "ice_socket.h"
+#include "connectivity/ice_socket.h"
 #include "socket_pair.h"
 #include "sip/sipvoiplink.h" // for enqueueKeyframeRequest
 #include "manager.h"
diff --git a/src/meson.build b/src/meson.build
index d637fb5b0a..86452aea04 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -14,6 +14,22 @@ libjami_sources = files(
     'client/ring_signal.cpp',
     'client/videomanager.cpp',
     'config/yamlparser.cpp',
+    'connectivity/security/certstore.cpp',
+    'connectivity/security/diffie-hellman.cpp',
+    'connectivity/security/memory.cpp',
+    'connectivity/security/tls_session.cpp',
+    'connectivity/security/tlsvalidator.cpp',
+    'connectivity/upnp/protocol/igd.cpp',
+    'connectivity/upnp/protocol/mapping.cpp',
+    'connectivity/upnp/upnp_context.cpp',
+    'connectivity/upnp/upnp_control.cpp',
+    'connectivity/connectionmanager.cpp',
+    'connectivity/ice_transport.cpp',
+    'connectivity/ip_utils.cpp',
+    'connectivity/multiplexed_socket.cpp',
+    'connectivity/peer_connection.cpp',
+    'connectivity/sip_utils.cpp',
+    'connectivity/utf8_utils.cpp',
     'im/instant_messaging.cpp',
     'im/message_engine.cpp',
     'jamidht/eth/libdevcore/Common.cpp',
@@ -26,7 +42,6 @@ libjami_sources = files(
     'jamidht/archive_account_manager.cpp',
     'jamidht/channeled_transfers.cpp',
     'jamidht/channeled_transport.cpp',
-    'jamidht/connectionmanager.cpp',
     'jamidht/contact_list.cpp',
     'jamidht/conversation.cpp',
     'jamidht/conversation_channel_handler.cpp',
@@ -34,7 +49,6 @@ libjami_sources = files(
     'jamidht/conversationrepository.cpp',
     'jamidht/gitserver.cpp',
     'jamidht/jamiaccount.cpp',
-    'jamidht/multiplexed_socket.cpp',
     'jamidht/namedirectory.cpp',
     'jamidht/p2p.cpp',
     'jamidht/server_account_manager.cpp',
@@ -78,26 +92,6 @@ libjami_sources = files(
     'media/socket_pair.cpp',
     'media/srtp.c',
     'media/system_codec_container.cpp',
-    'security/certstore.cpp',
-    'security/diffie-hellman.cpp',
-    'security/memory.cpp',
-    'security/tls_session.cpp',
-    'security/tlsvalidator.cpp',
-    'sip/pres_sub_client.cpp',
-    'sip/pres_sub_server.cpp',
-    'sip/sdes_negotiator.cpp',
-    'sip/sdp.cpp',
-    'sip/sipaccountbase.cpp',
-    'sip/sipaccount.cpp',
-    'sip/sipcall.cpp',
-    'sip/sippresence.cpp',
-    'sip/siptransport.cpp',
-    'sip/sip_utils.cpp',
-    'sip/sipvoiplink.cpp',
-    'upnp/protocol/igd.cpp',
-    'upnp/protocol/mapping.cpp',
-    'upnp/upnp_context.cpp',
-    'upnp/upnp_control.cpp',
     'account.cpp',
     'account_factory.cpp',
     'archiver.cpp',
@@ -111,19 +105,25 @@ libjami_sources = files(
     'fileutils.cpp',
     'ftp_server.cpp',
     'gittransport.cpp',
-    'ice_transport.cpp',
-    'ip_utils.cpp',
     'logger.cpp',
     'manager.cpp',
-    'peer_connection.cpp',
     'preferences.cpp',
     'ring_api.cpp',
+    'sip/pres_sub_client.cpp',
+    'sip/pres_sub_server.cpp',
+    'sip/sdes_negotiator.cpp',
+    'sip/sdp.cpp',
+    'sip/sipaccountbase.cpp',
+    'sip/sipaccount.cpp',
+    'sip/sipcall.cpp',
+    'sip/sippresence.cpp',
+    'sip/siptransport.cpp',
+    'sip/sipvoiplink.cpp',
     'scheduled_executor.cpp',
     'smartools.cpp',
     'string_utils.cpp',
     'threadloop.cpp',
     'uri.cpp',
-    'utf8_utils.cpp',
     'vcard.cpp'
 )
 if host_machine.system() == 'windows'
@@ -207,16 +207,16 @@ endif
 
 if conf.get('HAVE_LIBUPNP') == 1
     libjami_sources += files(
-        'upnp/protocol/pupnp/pupnp.cpp',
-        'upnp/protocol/pupnp/upnp_igd.cpp'
+        'connectivity/upnp/protocol/pupnp/pupnp.cpp',
+        'connectivity/upnp/protocol/pupnp/upnp_igd.cpp'
     )
     libjami_dependencies += deplibupnp
 endif
 
 if conf.get('HAVE_LIBNATPMP') == 1
     libjami_sources += files(
-        'upnp/protocol/natpmp/nat_pmp.cpp',
-        'upnp/protocol/natpmp/pmp_igd.cpp'
+        'connectivity/upnp/protocol/natpmp/nat_pmp.cpp',
+        'connectivity/upnp/protocol/natpmp/pmp_igd.cpp'
     )
     libjami_dependencies += depnatpmp
 endif
diff --git a/src/preferences.cpp b/src/preferences.cpp
index ee148e26ee..67080035c1 100644
--- a/src/preferences.cpp
+++ b/src/preferences.cpp
@@ -64,7 +64,7 @@
 #pragma GCC diagnostic pop
 
 #include "config/yamlparser.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include <sstream>
 #include <algorithm>
 #include <stdexcept>
diff --git a/src/security/Makefile.am b/src/security/Makefile.am
deleted file mode 100644
index ccaa114558..0000000000
--- a/src/security/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-noinst_LTLIBRARIES += libsecurity.la
-
-libsecurity_la_CXXFLAGS = -I$(top_srcdir)/src $(AM_CXXFLAGS)
-
-libsecurity_la_SOURCES = \
-		./security/tls_session.cpp \
-		./security/tls_session.h \
-		./security/tlsvalidator.cpp \
-		./security/tlsvalidator.h \
-		./security/certstore.cpp \
-		./security/certstore.h \
-		./security/memory.cpp \
-		./security/memory.h \
-		./security/diffie-hellman.cpp \
-		./security/diffie-hellman.h
-
-libjami_la_LIBADD += libsecurity.la
diff --git a/src/sip/CMakeLists.txt b/src/sip/CMakeLists.txt
index 67f9573d59..329b760d5d 100644
--- a/src/sip/CMakeLists.txt
+++ b/src/sip/CMakeLists.txt
@@ -10,8 +10,6 @@ list (APPEND Source_Files__sip
       "${CMAKE_CURRENT_SOURCE_DIR}/sdes_negotiator.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/sdp.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/sdp.h"
-      "${CMAKE_CURRENT_SOURCE_DIR}/sip_utils.cpp"
-      "${CMAKE_CURRENT_SOURCE_DIR}/sip_utils.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/sipaccount.cpp"
       "${CMAKE_CURRENT_SOURCE_DIR}/sipaccount.h"
       "${CMAKE_CURRENT_SOURCE_DIR}/sipaccountbase.cpp"
diff --git a/src/sip/Makefile.am b/src/sip/Makefile.am
index fee0b0918f..9193ef9ddd 100644
--- a/src/sip/Makefile.am
+++ b/src/sip/Makefile.am
@@ -15,8 +15,6 @@ libsiplink_la_SOURCES = \
 	./sip/sipcall.h \
 	./sip/sipvoiplink.h \
 	./sip/siptransport.h \
-	./sip/sip_utils.cpp \
-	./sip/sip_utils.h \
 	./sip/sippresence.cpp \
 	./sip/sippresence.h \
 	./sip/pres_sub_server.cpp\
diff --git a/src/sip/pres_sub_client.cpp b/src/sip/pres_sub_client.cpp
index 882abc42f3..2562445595 100644
--- a/src/sip/pres_sub_client.cpp
+++ b/src/sip/pres_sub_client.cpp
@@ -35,10 +35,10 @@
 #include <unistd.h>
 
 #include "pres_sub_client.h"
-#include "sipaccount.h"
-#include "sippresence.h"
-#include "sipvoiplink.h"
-#include "sip_utils.h"
+#include "sip/sipaccount.h"
+#include "sip/sippresence.h"
+#include "sip/sipvoiplink.h"
+#include "connectivity/sip_utils.h"
 #include "manager.h"
 #include "client/ring_signal.h"
 
diff --git a/src/sip/pres_sub_server.cpp b/src/sip/pres_sub_server.cpp
index 847c84436b..c7012db510 100644
--- a/src/sip/pres_sub_server.cpp
+++ b/src/sip/pres_sub_server.cpp
@@ -20,14 +20,14 @@
 
 #include "pjsip/sip_multipart.h"
 
-#include "sipaccount.h"
-#include "sipvoiplink.h"
+#include "sip/sipaccount.h"
+#include "sip/sipvoiplink.h"
 #include "manager.h"
-#include "sippresence.h"
+#include "sip/sippresence.h"
 #include "logger.h"
 #include "pres_sub_server.h"
 #include "client/ring_signal.h"
-#include "sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "compiler_intrinsics.h"
 
 namespace jami {
diff --git a/src/sip/sdp.cpp b/src/sip/sdp.cpp
index 13554edcc0..3cd0c6a398 100644
--- a/src/sip/sdp.cpp
+++ b/src/sip/sdp.cpp
@@ -27,8 +27,8 @@
 #include "config.h"
 #endif
 
-#include "sipaccount.h"
-#include "sipvoiplink.h"
+#include "sip/sipaccount.h"
+#include "sip/sipvoiplink.h"
 #include "string_utils.h"
 #include "base64.h"
 
diff --git a/src/sip/sdp.h b/src/sip/sdp.h
index c0faf47f15..a122f5cbce 100644
--- a/src/sip/sdp.h
+++ b/src/sip/sdp.h
@@ -24,12 +24,12 @@
 
 #include "noncopyable.h"
 #include "sdes_negotiator.h"
-#include "sip_utils.h"
-#include "ip_utils.h"
-#include "ice_transport.h"
+#include "connectivity/sip_utils.h"
+#include "connectivity/ip_utils.h"
+#include "connectivity/ice_transport.h"
 #include "media_codec.h"
 #include "media/media_attribute.h"
-#include "sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <pjmedia/sdp.h>
 #include <pjmedia/sdp_neg.h>
diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp
index d83ccccf26..071511ceb9 100644
--- a/src/sip/sipaccount.cpp
+++ b/src/sip/sipaccount.cpp
@@ -20,7 +20,7 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "sipaccount.h"
+#include "sip/sipaccount.h"
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -29,13 +29,13 @@
 #include "compiler_intrinsics.h"
 
 #include "sdp.h"
-#include "sipvoiplink.h"
-#include "sipcall.h"
-#include "sip_utils.h"
+#include "sip/sipvoiplink.h"
+#include "sip/sipcall.h"
+#include "connectivity/sip_utils.h"
 
 #include "call_factory.h"
 
-#include "sippresence.h"
+#include "sip/sippresence.h"
 
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
@@ -55,8 +55,8 @@
 
 #include "system_codec_container.h"
 
-#include "upnp/upnp_control.h"
-#include "ip_utils.h"
+#include "connectivity/upnp/upnp_control.h"
+#include "connectivity/ip_utils.h"
 #include "string_utils.h"
 
 #include "im/instant_messaging.h"
diff --git a/src/sip/sipaccount.h b/src/sip/sipaccount.h
index 3ee3dca850..6b4ddf04b4 100644
--- a/src/sip/sipaccount.h
+++ b/src/sip/sipaccount.h
@@ -27,8 +27,8 @@
 #include "config.h"
 #endif
 
-#include "sipaccountbase.h"
-#include "siptransport.h"
+#include "sip/sipaccountbase.h"
+#include "sip/siptransport.h"
 #include "noncopyable.h"
 #include "ring_types.h" // enable_if_base_of
 
diff --git a/src/sip/sipaccountbase.cpp b/src/sip/sipaccountbase.cpp
index 1e6a79ced5..114d3a40b8 100644
--- a/src/sip/sipaccountbase.cpp
+++ b/src/sip/sipaccountbase.cpp
@@ -18,8 +18,8 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "sipaccountbase.h"
-#include "sipvoiplink.h"
+#include "sip/sipaccountbase.h"
+#include "sip/sipvoiplink.h"
 
 #ifdef ENABLE_VIDEO
 #include "libav_utils.h"
@@ -27,7 +27,7 @@
 
 #include "account_schema.h"
 #include "manager.h"
-#include "ice_transport.h"
+#include "connectivity/ice_transport.h"
 
 #include "config/yamlparser.h"
 
@@ -35,8 +35,8 @@
 #include "jami/account_const.h"
 #include "string_utils.h"
 #include "fileutils.h"
-#include "sip_utils.h"
-#include "utf8_utils.h"
+#include "connectivity/sip_utils.h"
+#include "connectivity/utf8_utils.h"
 #include "uri.h"
 
 #include "manager.h"
diff --git a/src/sip/sipaccountbase.h b/src/sip/sipaccountbase.h
index 0896b86e50..011360606b 100644
--- a/src/sip/sipaccountbase.h
+++ b/src/sip/sipaccountbase.h
@@ -26,8 +26,8 @@
 
 #include "account.h"
 
-#include "sip_utils.h"
-#include "ip_utils.h"
+#include "connectivity/sip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "noncopyable.h"
 #include "im/message_engine.h"
 
diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index d4a03f8381..85fb222a8f 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -24,16 +24,16 @@
  */
 
 #include "call_factory.h"
-#include "sipcall.h"
-#include "sipaccount.h"
-#include "sipaccountbase.h"
-#include "sipvoiplink.h"
+#include "sip/sipcall.h"
+#include "sip/sipaccount.h"
+#include "sip/sipaccountbase.h"
+#include "sip/sipvoiplink.h"
 #include "logger.h"
 #include "sdp.h"
 #include "manager.h"
 #include "string_utils.h"
-#include "upnp/upnp_control.h"
-#include "sip_utils.h"
+#include "connectivity/upnp/upnp_control.h"
+#include "connectivity/sip_utils.h"
 #include "audio/audio_rtp_session.h"
 #include "system_codec_container.h"
 #include "im/instant_messaging.h"
diff --git a/src/sip/sipcall.h b/src/sip/sipcall.h
index 182596e2de..0b9a6d8288 100644
--- a/src/sip/sipcall.h
+++ b/src/sip/sipcall.h
@@ -29,9 +29,9 @@
 #endif
 
 #include "call.h"
-#include "ice_transport.h"
+#include "connectivity/ice_transport.h"
 #include "media_codec.h" // for MediaType enum
-#include "sip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "sip/sdp.h"
 
 #include "media/rtp_session.h"
diff --git a/src/sip/sippresence.cpp b/src/sip/sippresence.cpp
index 370982e42d..125603c2be 100644
--- a/src/sip/sippresence.cpp
+++ b/src/sip/sippresence.cpp
@@ -18,17 +18,17 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "sippresence.h"
+#include "sip/sippresence.h"
 
 #include "logger.h"
 #include "manager.h"
-#include "sipaccount.h"
-#include "sip_utils.h"
+#include "sip/sipaccount.h"
+#include "connectivity/sip_utils.h"
 #include "pres_sub_server.h"
 #include "pres_sub_client.h"
-#include "sipvoiplink.h"
+#include "sip/sipvoiplink.h"
 #include "client/ring_signal.h"
-#include "sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <opendht/crypto.h>
 #include <fmt/core.h>
diff --git a/src/sip/siptransport.cpp b/src/sip/siptransport.cpp
index 17443390ff..897d4b7f31 100644
--- a/src/sip/siptransport.cpp
+++ b/src/sip/siptransport.cpp
@@ -19,17 +19,17 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "siptransport.h"
-#include "sip_utils.h"
-#include "ip_utils.h"
-#include "security/tls_session.h"
+#include "sip/siptransport.h"
+#include "connectivity/sip_utils.h"
+#include "connectivity/ip_utils.h"
+#include "connectivity/security/tls_session.h"
 
 #include "jamidht/abstract_sip_transport.h"
 #include "jamidht/channeled_transport.h"
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 
 #include "compiler_intrinsics.h"
-#include "sipvoiplink.h"
+#include "sip/sipvoiplink.h"
 
 #include <pjsip.h>
 #include <pjsip/sip_types.h>
diff --git a/src/sip/siptransport.h b/src/sip/siptransport.h
index e21cb4d32e..57e9cbd225 100644
--- a/src/sip/siptransport.h
+++ b/src/sip/siptransport.h
@@ -25,7 +25,7 @@
 #include "config.h"
 #endif
 
-#include "sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include "noncopyable.h"
 #include "logger.h"
diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index 3c19cd5cbf..4afe4dc217 100644
--- a/src/sip/sipvoiplink.cpp
+++ b/src/sip/sipvoiplink.cpp
@@ -22,15 +22,15 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
  */
 
-#include "sipvoiplink.h"
+#include "sip/sipvoiplink.h"
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
 #include "sdp.h"
-#include "sipcall.h"
-#include "sipaccount.h"
+#include "sip/sipcall.h"
+#include "sip/sipaccount.h"
 
 #include "jamidht/jamiaccount.h"
 
@@ -47,8 +47,8 @@
 
 #include "pres_sub_server.h"
 
-#include "ip_utils.h"
-#include "sip_utils.h"
+#include "connectivity/ip_utils.h"
+#include "connectivity/sip_utils.h"
 #include "string_utils.h"
 #include "logger.h"
 
diff --git a/src/sip/sipvoiplink.h b/src/sip/sipvoiplink.h
index f44bcc3533..6c7538e7dd 100644
--- a/src/sip/sipvoiplink.h
+++ b/src/sip/sipvoiplink.h
@@ -29,7 +29,7 @@
 #endif
 
 #include "ring_types.h"
-#include "ip_utils.h"
+#include "connectivity/ip_utils.h"
 #include "noncopyable.h"
 
 #include <pjsip.h>
diff --git a/src/upnp/Makefile.am b/src/upnp/Makefile.am
deleted file mode 100644
index db133eb7dc..0000000000
--- a/src/upnp/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-noinst_LTLIBRARIES += libupnpcontrol.la
-
-libupnpcontrol_la_LIBADD=
-
-libupnpcontrol_la_SOURCES = \
-	./upnp/upnp_control.cpp \
-	./upnp/upnp_control.h \
-	./upnp/upnp_context.cpp \
-	./upnp/upnp_context.h
-
-include ./upnp/protocol/Makefile.am
-
-libjami_la_LIBADD += libupnpcontrol.la
diff --git a/src/upnp/protocol/Makefile.am b/src/upnp/protocol/Makefile.am
deleted file mode 100644
index 5db50e1987..0000000000
--- a/src/upnp/protocol/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
-noinst_LTLIBRARIES += libupnpprotocol.la
-
-libupnpprotocol_la_SOURCES = \
-	./upnp/protocol/igd.h \
-	./upnp/protocol/igd.cpp \
-	./upnp/protocol/mapping.h \
-	./upnp/protocol/mapping.cpp \
-	./upnp/protocol/global_mapping.h \
-	./upnp/protocol/upnp_protocol.h
-
-libupnpprotocol_la_LIBADD =
-
-if BUILD_PUPNP
-include ./upnp/protocol/pupnp/Makefile.am
-endif
-
-if BUILD_NATPMP
-include ./upnp/protocol/natpmp/Makefile.am
-endif
-
-libupnpcontrol_la_LIBADD += libupnpprotocol.la
diff --git a/src/upnp/protocol/natpmp/Makefile.am b/src/upnp/protocol/natpmp/Makefile.am
deleted file mode 100644
index 8b0309f785..0000000000
--- a/src/upnp/protocol/natpmp/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-noinst_LTLIBRARIES += libnat_pmp.la
-
-libnat_pmp_la_SOURCES = \
-	./upnp/protocol/natpmp/pmp_igd.h \
-	./upnp/protocol/natpmp/pmp_igd.cpp \
-	./upnp/protocol/natpmp/nat_pmp.h \
-	./upnp/protocol/natpmp/nat_pmp.cpp
-
-libupnpprotocol_la_LIBADD += libnat_pmp.la
diff --git a/src/upnp/protocol/pupnp/Makefile.am b/src/upnp/protocol/pupnp/Makefile.am
deleted file mode 100644
index 18a3f65151..0000000000
--- a/src/upnp/protocol/pupnp/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-noinst_LTLIBRARIES += libpupnp.la
-
-libpupnp_la_SOURCES = \
-	./upnp/protocol/pupnp/upnp_igd.h \
-	./upnp/protocol/pupnp/upnp_igd.cpp \
-	./upnp/protocol/pupnp/pupnp.h \
-	./upnp/protocol/pupnp/pupnp.cpp
-
-libupnpprotocol_la_LIBADD += libpupnp.la
diff --git a/test/fuzzing/examples/fuzz-channel-request.cpp b/test/fuzzing/examples/fuzz-channel-request.cpp
index 1783fb295b..081d3553e3 100644
--- a/test/fuzzing/examples/fuzz-channel-request.cpp
+++ b/test/fuzzing/examples/fuzz-channel-request.cpp
@@ -23,7 +23,7 @@
 
 #include <msgpack.hpp>
 
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 
 #include "lib/gnutls.h"
 
diff --git a/test/fuzzing/examples/fuzz-channel.cpp b/test/fuzzing/examples/fuzz-channel.cpp
index d411848cf8..53a1d68f95 100644
--- a/test/fuzzing/examples/fuzz-channel.cpp
+++ b/test/fuzzing/examples/fuzz-channel.cpp
@@ -21,7 +21,7 @@
 #include <cstdlib>
 #include <set>
 
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 
 #include "lib/gnutls.h"
 
diff --git a/test/fuzzing/examples/fuzz-jami-version.cpp b/test/fuzzing/examples/fuzz-jami-version.cpp
index 1da8514fce..5e920906e7 100644
--- a/test/fuzzing/examples/fuzz-jami-version.cpp
+++ b/test/fuzzing/examples/fuzz-jami-version.cpp
@@ -28,7 +28,7 @@
 #include "lib/gnutls.h"
 
 /* Jami */
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/multiplexed_socket.h"
 
 static gnutls_session_t captured_session = nullptr;
 
diff --git a/test/fuzzing/fuzz-spam-channel-creation.cpp b/test/fuzzing/fuzz-spam-channel-creation.cpp
index b71f3f0102..9911445672 100644
--- a/test/fuzzing/fuzz-spam-channel-creation.cpp
+++ b/test/fuzzing/fuzz-spam-channel-creation.cpp
@@ -24,7 +24,7 @@
 #include <mutex>
 #include <thread>
 
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 
 #include "lib/gnutls.h"
 #include "lib/utils.h"
diff --git a/test/fuzzing/scenarios/classic-alice-and-bob.h b/test/fuzzing/scenarios/classic-alice-and-bob.h
index 6895cf4491..bf0cf63341 100644
--- a/test/fuzzing/scenarios/classic-alice-and-bob.h
+++ b/test/fuzzing/scenarios/classic-alice-and-bob.h
@@ -21,7 +21,7 @@
 #include <condition_variable>
 
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "jami.h"
 #include "account_const.h"
diff --git a/test/sip/test_SIP.h b/test/sip/test_SIP.h
index 70cfeb00db..3bebe2619e 100644
--- a/test/sip/test_SIP.h
+++ b/test/sip/test_SIP.h
@@ -31,7 +31,7 @@
 #include "manager.h"
 
 #include "sip/sipvoiplink.h"
-#include "sip/sip_utils.h"
+#include "connectivity/sip_utils.h"
 
 #include <atomic>
 
diff --git a/test/unitTest/account_archive/account_archive.cpp b/test/unitTest/account_archive/account_archive.cpp
index e8a11fdc57..dd8976b3a5 100644
--- a/test/unitTest/account_archive/account_archive.cpp
+++ b/test/unitTest/account_archive/account_archive.cpp
@@ -27,7 +27,7 @@
 
 #include "manager.h"
 #include "jamidht/conversationrepository.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/gitserver.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
diff --git a/test/unitTest/call/call.cpp b/test/unitTest/call/call.cpp
index 8a76962510..4e6f24965d 100644
--- a/test/unitTest/call/call.cpp
+++ b/test/unitTest/call/call.cpp
@@ -25,7 +25,7 @@
 #include <string>
 
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "sip/sipcall.h"
 #include "sip/siptransport.h"
diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp
index f138eb522c..c28f03ad32 100644
--- a/test/unitTest/call/conference.cpp
+++ b/test/unitTest/call/conference.cpp
@@ -25,7 +25,7 @@
 
 #include "manager.h"
 #include "client/videomanager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
 #include "jami.h"
diff --git a/test/unitTest/certstore.cpp b/test/unitTest/certstore.cpp
index 13e2fe42aa..9fbb4b5827 100644
--- a/test/unitTest/certstore.cpp
+++ b/test/unitTest/certstore.cpp
@@ -24,7 +24,7 @@
 
 #include "test_runner.h"
 
-#include "security/certstore.h"
+#include "connectivity/security/certstore.h"
 
 namespace jami {
 namespace test {
diff --git a/test/unitTest/connectionManager/connectionManager.cpp b/test/unitTest/connectionManager/connectionManager.cpp
index efdb17f28a..2b4728e2c7 100644
--- a/test/unitTest/connectionManager/connectionManager.cpp
+++ b/test/unitTest/connectionManager/connectionManager.cpp
@@ -23,8 +23,8 @@
 #include <condition_variable>
 
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/connectionmanager.h"
+#include "connectivity/multiplexed_socket.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
 #include "jami.h"
diff --git a/test/unitTest/conversation/conversation.cpp b/test/unitTest/conversation/conversation.cpp
index 644f70e243..fa8d07b2af 100644
--- a/test/unitTest/conversation/conversation.cpp
+++ b/test/unitTest/conversation/conversation.cpp
@@ -37,7 +37,7 @@
 #include "fileutils.h"
 #include "jami.h"
 #include "manager.h"
-#include "security/certstore.h"
+#include "connectivity/security/certstore.h"
 
 using namespace std::string_literals;
 using namespace std::literals::chrono_literals;
diff --git a/test/unitTest/conversationRepository/conversationRepository.cpp b/test/unitTest/conversationRepository/conversationRepository.cpp
index a263e627e8..78e47bc26d 100644
--- a/test/unitTest/conversationRepository/conversationRepository.cpp
+++ b/test/unitTest/conversationRepository/conversationRepository.cpp
@@ -27,7 +27,7 @@
 
 #include "manager.h"
 #include "jamidht/conversationrepository.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/gitserver.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
diff --git a/test/unitTest/fileTransfer/fileTransfer.cpp b/test/unitTest/fileTransfer/fileTransfer.cpp
index 365aa5e9c3..698a5f91bd 100644
--- a/test/unitTest/fileTransfer/fileTransfer.cpp
+++ b/test/unitTest/fileTransfer/fileTransfer.cpp
@@ -26,7 +26,7 @@
 
 #include "fileutils.h"
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
 #include "jami.h"
diff --git a/test/unitTest/ice/ice.cpp b/test/unitTest/ice/ice.cpp
index a64c51e077..c53c326b9e 100644
--- a/test/unitTest/ice/ice.cpp
+++ b/test/unitTest/ice/ice.cpp
@@ -25,7 +25,7 @@
 #include "manager.h"
 #include "opendht/dhtrunner.h"
 #include "opendht/thread_pool.h"
-#include "src/ice_transport.h"
+#include "connectivity/ice_transport.h"
 #include "../../test_runner.h"
 #include "jami.h"
 #include "account_const.h"
diff --git a/test/unitTest/ice/ice_media_cand_exchange.cpp b/test/unitTest/ice/ice_media_cand_exchange.cpp
index 885ac62e10..47d24078ef 100644
--- a/test/unitTest/ice/ice_media_cand_exchange.cpp
+++ b/test/unitTest/ice/ice_media_cand_exchange.cpp
@@ -35,7 +35,7 @@
 #include "account_const.h"
 #include "sip/sipcall.h"
 
-#include "upnp/upnp_control.h"
+#include "connectivity/upnp/upnp_control.h"
 
 #include "common.h"
 
diff --git a/test/unitTest/media_negotiation/auto_answer.cpp b/test/unitTest/media_negotiation/auto_answer.cpp
index a706ce2f17..d8a15a0d36 100644
--- a/test/unitTest/media_negotiation/auto_answer.cpp
+++ b/test/unitTest/media_negotiation/auto_answer.cpp
@@ -27,7 +27,7 @@
 #include "../../test_runner.h"
 
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "account.h"
 #include "sip/sipaccount.h"
 #include "jami.h"
diff --git a/test/unitTest/media_negotiation/hold_resume.cpp b/test/unitTest/media_negotiation/hold_resume.cpp
index 398f547b1c..d19c402c57 100644
--- a/test/unitTest/media_negotiation/hold_resume.cpp
+++ b/test/unitTest/media_negotiation/hold_resume.cpp
@@ -25,7 +25,7 @@
 #include <string>
 
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
 #include "jami.h"
diff --git a/test/unitTest/media_negotiation/media_negotiation.cpp b/test/unitTest/media_negotiation/media_negotiation.cpp
index 098bf1e6b9..52ff0ceac3 100644
--- a/test/unitTest/media_negotiation/media_negotiation.cpp
+++ b/test/unitTest/media_negotiation/media_negotiation.cpp
@@ -25,7 +25,7 @@
 #include <string>
 
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
+#include "connectivity/connectionmanager.h"
 #include "jamidht/jamiaccount.h"
 #include "sip/sipaccount.h"
 #include "../../test_runner.h"
diff --git a/test/unitTest/syncHistory/syncHistory.cpp b/test/unitTest/syncHistory/syncHistory.cpp
index 01feade714..2aacb3b644 100644
--- a/test/unitTest/syncHistory/syncHistory.cpp
+++ b/test/unitTest/syncHistory/syncHistory.cpp
@@ -26,8 +26,8 @@
 
 #include "fileutils.h"
 #include "manager.h"
-#include "jamidht/connectionmanager.h"
-#include "jamidht/multiplexed_socket.h"
+#include "connectivity/connectionmanager.h"
+#include "connectivity/multiplexed_socket.h"
 #include "jamidht/jamiaccount.h"
 #include "../../test_runner.h"
 #include "jami.h"
diff --git a/test/unitTest/utf8_utils/testUtf8_utils.cpp b/test/unitTest/utf8_utils/testUtf8_utils.cpp
index cc823c04ee..00d06bbbae 100644
--- a/test/unitTest/utf8_utils/testUtf8_utils.cpp
+++ b/test/unitTest/utf8_utils/testUtf8_utils.cpp
@@ -23,7 +23,7 @@
 
 #include <string>
 
-#include "utf8_utils.h"
+#include "connectivity/utf8_utils.h"
 #include "../../test_runner.h"
 
 
-- 
GitLab