I have followed the same steps given in the Orthanc book. Talking about remote modality, I have registered my Orthanc server there and when I click on test echo there also it says succeeded. I am sharing my log, perhaps that can help to find the error.
W0128 10:30:32.598032 main.cpp:1776] Orthanc version: 1.8.2
W0128 10:30:32.598032 OrthancConfiguration.cpp:114] Scanning folder "Configuration" for configuration files
W0128 10:30:32.598032 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\dicomweb.json"
W0128 10:30:32.598996 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\mysql.json"
W0128 10:30:32.598996 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\orthanc.json"
W0128 10:30:32.600019 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\postgresql.json"
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\serve-folders.json"
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\stone-webviewer.json"
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\transfers.json"
W0128 10:30:32.602253 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\webviewer.json"
W0128 10:30:32.603253 OrthancConfiguration.cpp:62] Reading the configuration from: "Configuration\worklists.json"
W0128 10:30:32.831642 main.cpp:852] Loading plugin(s) from: C:\Program Files\Orthanc Server\Plugins
W0128 10:30:32.833637 PluginsManager.cpp:269] Registering plugin 'connectivity-checks' (version 1.8.2)
W0128 10:30:32.834634 PluginsManager.cpp:269] Registering plugin 'stone-webviewer' (version 1.0)
W0128 10:30:32.834634 PluginsManager.cpp:269] Registering plugin 'worklists' (version 1.8.2)
W0128 10:30:32.834634 PluginsManager.cpp:168] Sample worklist plugin is initializing
W0128 10:30:32.835632 PluginsManager.cpp:168] Worklist server is disabled by the configuration file
W0128 10:30:32.836629 PluginsManager.cpp:269] Registering plugin 'authorization' (version 0.2.4)
W0128 10:30:32.836629 PluginsManager.cpp:168] Initializing the authorization plugin
W0128 10:30:32.836629 PluginsManager.cpp:168] No section "Authorization" in the configuration file, the authorization plugin is disabled
W0128 10:30:32.838624 PluginsManager.cpp:269] Registering plugin 'dicom-web' (version 1.4)
W0128 10:30:32.838624 PluginsManager.cpp:168] URI to the DICOMweb REST API: /dicom-web/
W0128 10:30:32.839621 PluginsManager.cpp:168] URI to the WADO-URI API: /wado
W0128 10:30:32.854581 PluginsManager.cpp:269] Registering plugin 'gdcm' (version 1.2)
W0128 10:30:32.854581 PluginsManager.cpp:168] Version of GDCM: 3.0.8
W0128 10:30:32.854581 PluginsManager.cpp:168] GDCM throttling is disabled
W0128 10:30:32.856576 PluginsManager.cpp:269] Registering plugin 'mysql-index' (version 3.0)
W0128 10:30:32.857573 PluginsManager.cpp:168] The MySQL index is currently disabled, set "EnableIndex" to "true" in the "MySQL" section of the configuration file of Orthanc
W0128 10:30:32.858570 PluginsManager.cpp:269] Registering plugin 'mysql-storage' (version 3.0)
W0128 10:30:32.859568 PluginsManager.cpp:168] The MySQL storage area is currently disabled, set "EnableStorage" to "true" in the "MySQL" section of the configuration file of Orthanc
W0128 10:30:32.861562 PluginsManager.cpp:269] Registering plugin 'osimis-cloud' (version 0.2)
W0128 10:30:32.863557 PluginsManager.cpp:269] Registering plugin 'postgresql-index' (version 3.3)
W0128 10:30:32.863557 PluginsManager.cpp:168] The PostgreSQL index is currently disabled, set "EnableIndex" to "true" in the "PostgreSQL" section of the configuration file of Orthanc
W0128 10:30:32.864554 PluginsManager.cpp:269] Registering plugin 'postgresql-storage' (version 3.3)
W0128 10:30:32.865552 PluginsManager.cpp:168] The PostgreSQL storage area is currently disabled, set "EnableStorage" to "true" in the "PostgreSQL" section of the configuration file of Orthanc
W0128 10:30:32.866549 PluginsManager.cpp:269] Registering plugin 'transfers' (version 1.0)
W0128 10:30:32.867547 PluginsManager.cpp:269] Registering plugin 'web-viewer' (version 2.7)
W0128 10:30:32.867547 PluginsManager.cpp:168] Initializing the Web viewer
W0128 10:30:32.868544 PluginsManager.cpp:168] Web viewer using 2 threads for the decoding of the DICOM images
W0128 10:30:32.868544 PluginsManager.cpp:168] Storing the cache of the Web viewer in folder: E:\Orthanc Storage\WebViewerCache
W0128 10:30:32.869541 PluginsManager.cpp:168] Web viewer using a cache of 100 MB
W0128 10:30:32.872148 PluginsManager.cpp:269] Registering plugin 'wsi' (version 0.7)
W0128 10:30:32.872148 PluginsManager.cpp:168] The whole-slide imaging plugin will use at most 4 threads to transcode the tiles
W0128 10:30:32.886089 PluginsManager.cpp:269] Registering plugin 'osimis-web-viewer' (version 1.4.1.0-c6ca764)
W0128 10:30:32.886089 PluginsManager.cpp:168] Initializing the Web viewer
W0128 10:30:32.887086 PluginsManager.cpp:168] Using GDCM instead of the DICOM decoder that is built in Orthanc
W0128 10:30:32.888084 PluginsManager.cpp:269] Registering plugin 'serve-folders' (version 1.8.2)
W0128 10:30:32.888084 PluginsManager.cpp:168] ServeFolders: Empty configuration file: No additional folder will be served!
W0128 10:30:32.889109 OrthancInitialization.cpp:329] SQLite index directory: "E:\Orthanc Storage"
W0128 10:30:32.889109 OrthancInitialization.cpp:406] Storage directory: "E:\Orthanc Storage"
W0128 10:30:32.890079 HttpClient.cpp:1125] HTTPS will use the CA certificates from this file: C:\Program Files\Orthanc Server\Configuration\ca-certificates.crt
W0128 10:30:32.890079 LuaContext.cpp:93] Lua says: Lua toolbox installed
W0128 10:30:32.891076 LuaContext.cpp:93] Lua says: Lua toolbox installed
W0128 10:30:32.891076 ServerContext.cpp:452] Disk compression is disabled
W0128 10:30:32.891076 ServerIndex.cpp:1641] No limit on the number of stored patients
W0128 10:30:32.891076 ServerIndex.cpp:1658] No limit on the size of the storage area
W0128 10:30:32.891076 ServerContext.cpp:221] Reloading the jobs from the last execution of Orthanc
W0128 10:30:32.893098 JobsEngine.cpp:272] The jobs engine has started with 2 threads
W0128 10:30:32.895343 main.cpp:1218] DICOM server listening with AET ORTHANC on port: 4242
W0128 10:30:32.895343 HttpServer.cpp:1936] HTTP compression is enabled
W0128 10:30:32.895343 main.cpp:1110] Remote LUA script execution is disabled
W0128 10:30:32.896339 HttpServer.cpp:1713] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is not allowed)
W0128 10:30:32.896339 main.cpp:864] Orthanc has started
W0128 10:31:05.071405 OrthancRestModalities.cpp:717] Driving C-Move SCU on remote modality NCT to target modality ORTHANC
W0128 10:31:08.841263 OrthancRestModalities.cpp:717] Driving C-Move SCU on remote modality NCT to target modality ORTHANC
E0128 10:31:15.163673 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET "NCT": DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:19.168020 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET "NCT": DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:25.164475 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET "NCT": DIMSE No data available (timeout in non-blocking mode)
E0128 10:31:29.169348 OrthancException.cpp:57] Error in the network protocol: DicomAssociation - C-MOVE to AET "NCT": DIMSE No data available (timeout in non-blocking mode)