commit 9fdaead9f2a8feb2c1e2b628c5f2a7659f7c9636
parent d88952d5d1c76dab90cfc780af905096a78d08a3
Author: Christian Grothoff <christian@grothoff.org>
Date: Sat, 7 Feb 2026 13:42:03 +0100
more verbose logging for SMS transmissions (#10981)
Diffstat:
3 files changed, 44 insertions(+), 38 deletions(-)
diff --git a/src/challenger/challenger-send-sms-clicksend.sh b/src/challenger/challenger-send-sms-clicksend.sh
@@ -46,23 +46,24 @@ RESPONSE_CODE=$(echo "$RESPONSE" | jq -r '.response_code')
if [ "$RESPONSE_CODE" != "SUCCESS" ];
then
- echo "Failed to send message, got response code $RESPONSE_CODE." 1>&2
- exit 1
+ echo "Clicksend: failed to send SMS to $PHONE_NUMBER, got response code $RESPONSE_CODE." 1>&2
+ exit 2
fi
MESSAGE_ID=$(echo "$RESPONSE" | jq -r '.data.messages[0].message_id')
if [ "$MESSAGE_ID" == "null" ];
then
- echo "Failed to retrieve message ID." 1>&2
- exit 1
+ echo "Clicksend: failed to retrieve message ID for message to $PHONE_NUMBER." 1>&2
+ echo "$RESPONSE" 1>&2
+ exit 3
fi
MESSAGE_STATUS=$(echo "$RESPONSE" | jq -r '.data.messages[0].status')
if [ "$MESSAGE_STATUS" == "SUCCESS" ];
then
- echo "Message delivered successfully." 1>&2
+ echo "Clicksend: message delivered successfully to $PHONE_NUMBER." 1>&2
exit 0
fi
@@ -82,8 +83,9 @@ do
if [ "$RESPONSE_CODE" != "SUCCESS" ];
then
- echo "Failed to get message status, assuming failure." 1>&2
- exit 1
+ echo "Clicksend: failed to get status for message to $PHONE_NUMBER, assuming failure." 1>&2
+ echo "$RESPONSE" 1>&2
+ exit 4
fi
STATUS_CODE=$(echo "$STATUS_RESPONSE" | jq -r '.data.status_code')
@@ -113,7 +115,7 @@ do
;;
"201")
# Message delivered to the handset
- echo "Message delivered successfully." 1>&2
+ echo "Clicksend: message delivered successfully to $PHONE_NUMBER." 1>&2
exit 0
;;
"300")
@@ -122,19 +124,19 @@ do
;;
"301")
# Delivery failed
- echo "Message delivery failed: $DESCRIPTION" 1>&2
+ echo "Clicksend: message delivery to $PHONE_NUMBER failed: $DESCRIPTION" 1>&2
exit 1
;;
"FAILED"|"INVALID_RECIPIENT")
- echo "Message delivery to $PHONE_NUMBER failed: $DESCRIPTION" 1>&2
- exit 1
+ echo "Clicksend: message delivery to $PHONE_NUMBER failed: $DESCRIPTION" 1>&2
+ exit 6
;;
*)
- echo "Message delivery to $PHONE_NUMBER failed: $DESCRIPTION" 1>&2
+ echo "Clicksend: message delivery to $PHONE_NUMBER failed: $DESCRIPTION" 1>&2
sleep 5
;;
esac
done
-echo "Unclear message delivery status $STATUS_CODE ($DESCRIPTION) after $MAX_ITERATIONS iterations. Assuming failure." 1>&2
+echo "Clicksend: unclear message delivery status $STATUS_CODE ($DESCRIPTION) after $MAX_ITERATIONS iterations. Assuming failure." 1>&2
exit 1
diff --git a/src/challenger/challenger-send-sms-telesign.sh b/src/challenger/challenger-send-sms-telesign.sh
@@ -35,7 +35,8 @@ REFERENCE_ID=$(jq -r '.reference_id' "$TMPFILE")
if [ "$REFERENCE_ID" == "null" ];
then
- echo "Failed to retrieve reference ID." 1>&2
+ echo "Telesign: failed to retrieve reference ID for message to $PHONE_NUMBER." 1>&2
+ echo "$RESPONSE" 1>&2
exit 1
fi
@@ -44,6 +45,7 @@ STATUS_CODE=$(echo "$RESPONSE" | jq -r '.status.code')
case "$STATUS_CODE" in
"200")
# Delivered to headset. Should basically never happen here.
+ echo "Telesign: message delivered successfully to $PHONE_NUMBER." 1>&2
exit 0
;;
"203"|"292"|"295")
@@ -52,7 +54,7 @@ case "$STATUS_CODE" in
;;
"207"|"211"|"220"|"221"|"222"|"231"|"237"|"238")
# Failure to deliver (hard)
- echo "Could not deliver" 1>&2
+ echo "Telesign: could not deliver message to $PHONE_NUMBER: $STATUS_CODE" 1>&2
exit 1
;;
"210")
@@ -60,7 +62,7 @@ case "$STATUS_CODE" in
;;
"250")
# Final status unknown
- echo "Final status unknown, assuming success" 1>&2
+ echo "Telesign: final status unknown for message to $PHONE_NUMBER, assuming success" 1>&2
exit 0
;;
"290")
@@ -68,22 +70,24 @@ case "$STATUS_CODE" in
sleep 2
;;
"502"|"503"|"504"|"505"|"506"|"507"|"508"|"509"|"510"|"511"|"512"|"513"|"514"|"515"|"517"|"520"|"521")
- echo "Carrier problem ($STATUS_CODE)" 1>&2
+ echo "Telesign: carrier problem ($STATUS_CODE) delivering to $PHONE_NUMBER" 1>&2
exit 1
;;
"10000")
# Internal error at telesign...
- echo "Telesign internal error" 1>&2
+ echo "Telesign: internal error delivering to $PHONE_NUMBER" 1>&2
+ echo "$RESPONSE" 1>&2
exit 1
;;
"10019"|"10020")
# Rate limit exceeded. Treating as hard failure for now.
- echo "Rate limit exceeded" 1>&2
+ echo "Telesign: Rate limit exceeded ($STATUS_CODE) delivering to $PHONE_NUMBER" 1>&2
+ echo "$RESPONSE" 1>&2
exit 1
;;
*)
# Many possible status codes for failure...
- echo "Message delivery to $PHONE_NUMBER failed: $STATUS_CODE" 1>&2
+ echo "Telesign: Message delivery to $PHONE_NUMBER failed: $STATUS_CODE" 1>&2
echo "$RESPONSE" 1&>2
exit 1
;;
@@ -107,8 +111,8 @@ do
case "$STATUS_CODE" in
"200")
# Delivered to headset. Great!
- echo "Delivered to headset" 1>&2
- exit 0
+ echo "Telesign: message delivered successfully to $PHONE_NUMBER." 1>&2
+ exit 0
;;
"203"|"290"|"292"|"295")
# Delivered to gateway, wait a bit for an update
@@ -120,36 +124,36 @@ do
;;
"207"|"211"|"220"|"221"|"222"|"231"|"237"|"238")
# Failure to deliver (hard)
- echo "Could not deliver" 1>&2
- exit 1
+ echo "Telesign: could not deliver message to $PHONE_NUMBER ($STATUS_CODE)" 1>&2
+ exit 8
;;
"250")
# Final status unknown
- echo "Final status unknown, assuming success" 1>&2
+ echo "Telesign: final status for delivery to $PHONE_NUMBER unknown, assuming success" 1>&2
exit 0
;;
"502"|"503"|"504"|"505"|"506"|"507"|"508"|"509"|"510"|"511"|"512"|"513"|"514"|"515"|"517"|"520"|"521")
- echo "Carrier problem ($STATUS_CODE)" 1>&2
- exit 1
+ echo "Telesign: carrier problem ($STATUS_CODE) for message to $PHONE_NUMBER" 1>&2
+ exit 7
;;
"10000")
# Internal error at telesign...
- echo "Telesign internal error" 1>&2
- exit 1
+ echo "Telesign: internal error for message to $PHONE_NUMBER" 1>&2
+ exit 9
;;
"10019"|"10020")
# Rate limit exceeded. Treating as hard failure for now.
- echo "Rate limit exceeded" 1>&2
- exit 1
+ echo "Telesign: rate limit exceeded for message to $PHONE_NUMBER" 1>&2
+ exit 10
;;
*)
# Many possible status codes for failure...
- echo "Message delivery to $PHONE_NUMBER failed: $STATUS_CODE" 1>&2
+ echo "Telesign: message delivery to $PHONE_NUMBER failed: $STATUS_CODE" 1>&2
echo "$RESPONSE" 1&>2
- exit 1
+ exit 11
;;
esac
done
-echo "Unclear message delivery status $STATUS_CODE ($DESCRIPTION) after $MAX_ITERATIONS iterations. Assuming failure." 1>&2
-exit 1
+echo "Telesign: unclear delivery status ${STATUS_CODE:-} (${DESCRIPTION:-}) for message to $PHONE_NUMBER after ${MAX_ITERATIONS:-} iterations. Assuming failure." 1>&2
+exit 12
diff --git a/src/challenger/challenger-send-sms.sh b/src/challenger/challenger-send-sms.sh
@@ -5,7 +5,7 @@ set -eu
if [ $# -ne 1 ]
then
- echo "Usage: $0 '{\"CONTACT_PHONE\":\"+4112345678\"}'" 1>&2
+ echo "Usage: $0 '{\"CONTACT_PHONE\":\"+41712345678\"}'" 1>&2
exit 1
fi
@@ -28,10 +28,10 @@ do
then
exit 0
else
- echo "$PROVIDER failed." 1>&2
+ echo "$PROVIDER failed to send to $PHONE_NUMBER." 1>&2
fi
fi
done
-echo "All SMS providers failed." 1>&2
+echo "All SMS providers failed to send to $PHONE_NUMBER." 1>&2
exit 1