When attempting to use the AlarmServiceToken I receive the following error.
getaddrinfo ENOTFOUND
I am using NodeJS and the soap module (require(‘soap’)). The error occurs when creating the SOAP client (soap.createClientAsync(`http://${ServerFullyQualifiedDomainName}:22331/Central/AlarmServiceToken?wsdl’).
The root cause appears to be due to the lack of a fully qualified domain name (FQDN) for the host in the WSDL provided by Milestone XProtect.
I am able to invoke services provided by the ServerCommandService.svc and ConfigurationApiService.svc services because the FQDN is provided in their WSDLs.
I am am 2019R3. Are there any workarounds? Is this fixed in a later release?
Thank you
I have tested and have made observations about the returned WSDL containing server name instead of FQDN, my observations match yours.
A workaround might be to download and modify the WSDL. I have asked developer colleagues to investigate and I will let you know what they find.
I had the same idea and tried with a local modified WSDL containing the FQDN. However, the soap client still threw the same ENOTFOUND error.
I ended up not using the soap client for this service (still use it for command and config services) and replaced it with basic http which works.
A fix has been made and is included in the XProtect 2019R3 patch installer. The fix will ensure that the WSDL includes the FQDN instead of the server name. With your comment above being what it is I am in doubt if it will solve your issue because I would have expected the locally modified WSDL to work.
I hope you will test this but I understand it if you say you are happy with the workaround instead.
-
https://developer.milestonesys.com/s/article/XProtect-2019-R3-cumulative-patch-installers