I have an an Azure server running an instance of Ignition. I have an Airlink RV55 in the field. I am able to send messages from the server to the airlink however the return status update never gets back to me. A timeout is reached and an error is logged in the Ignition gateway.
java.io.IOException: java.util.concurrent.TimeoutException
at com.inductiveautomation.ignition.alarming.notification.sms.airlink.AirlinkUdpConnection.sendSms(AirlinkUdpConnection.java:115)
at com.inductiveautomation.ignition.alarming.notification.sms.profile.SmsNotificationProfile$2.run(SmsNotificationProfile.java:214)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.util.concurrent.TimeoutException: null
at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)
at com.inductiveautomation.ignition.alarming.notification.sms.airlink.AirlinkUdpConnection.sendSms(AirlinkUdpConnection.java:108)
I had to deviate from the Ignition setup guide significantly to get this far so really I am looking for any general advice on how to proceed.
I don't know a lot about Azure so I was wondering if there is some setting that might prevent traffic from being returned to the server from the airlink. (Pinging from the server to the airlink also fails).
The RV55 is going to try to send a UDP packet back to the configured IP/port of your Ignition Gateway. It's highly unlikely that Azure's default network/firewall configuration is going to allow this traffic through.
If you're running Ignition in the cloud the Twilio module is a much better fit.
Is the ack happening on port 17341 as well? Your post in this thread seems to confirm it is happening on the 17341 port so I should swap my outbound firewall rule to 17341.
I just modified the inbound rule to allow UDP traffic on 17341/17342 and got the same error so like you said this is likely a configuration issue I'll have to ask the Azure team about.
import socket
target_ip = "receiver_computer_ip"
target_port = 12345 # Use the port you want to send the message to
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
message = "Hello, receiver!"
client_socket.sendto(message.encode(), (target_ip, target_port))
client_socket.close()
and then had a client PC on the same subnet as the Airlink run the following code in a python script:
import socket
listen_ip = "0.0.0.0" # Listen on all available network interfaces
listen_port = 12345 # The same port you used on the sender computer
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((listen_ip, listen_port))
while True:
data, addr = server_socket.recvfrom(1024)
print(f"Received message: {data.decode()} from {addr}")
The goal of this was to test if a UDP message could get to any device on the same subnet as the Airlink and we were unable to get that to work so I told the IT group they need to check the settings again.