Fix false "TLS: NOT LOADED" startup banner in Easy Asterisk entrypoint

pjsip show transports was checked once, immediately after "core show
version" first responded — but res_pjsip can take a moment longer to
finish binding its transports, so the check would sometimes read an
empty transport list and print "NOT LOADED" even though transport-tls
came up correctly a second later (confirmed live: TLS SIP traffic on
5061 in the container logs right after the misleading banner).

Poll for up to 10s instead of checking once, matching the existing
core-show-version wait pattern further up the same script.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015X1jRGHwrvovz2qkhKfDZi
This commit is contained in:
Claude
2026-07-20 16:16:34 +00:00
parent 45609c2cb1
commit 0035804b38
+11 -7
View File
@@ -479,15 +479,19 @@ for i in $(seq 1 60); do
sleep 1 sleep 1
done done
# Verify PJSIP transports are listening # Verify PJSIP transports are listening. res_pjsip finishes binding its
# transports a beat after "core show version" first responds, so a single
# immediate check can catch it mid-startup and misreport TLS as down even
# though it comes up a second later — poll for a few seconds before giving up.
tls_ok=false tls_ok=false
udp_ok=false udp_ok=false
if asterisk -rx "pjsip show transports" 2>/dev/null | grep -q "transport-tls"; then for i in $(seq 1 10); do
tls_ok=true transports_output=$(asterisk -rx "pjsip show transports" 2>/dev/null)
fi echo "$transports_output" | grep -q "transport-tls" && tls_ok=true
if asterisk -rx "pjsip show transports" 2>/dev/null | grep -q "transport-udp"; then echo "$transports_output" | grep -q "transport-udp" && udp_ok=true
udp_ok=true $tls_ok && $udp_ok && break
fi sleep 1
done
# Check if port 5061 is actually bound # Check if port 5061 is actually bound
tls_listen="" tls_listen=""