Fix holiday router 3CX IVR calls (Receptionists entity, not IVRs)

get_ivr/set_ivr_routes/extract_ivr_routes targeted a nonexistent IVRs entity set
with an Options[].Route/TimeoutForward shape. The live 3CX IVR is the
Receptionists entity: the no-input/timeout route is the scalar TimeoutForwardDN,
and the key-0 route is a child of the Forwards collection (matched by Input=='0'),
written via a parent deep-PATCH. Routes are now represented as destination
numbers. Caught by the live prod round-trip test (get_ivr returned 405) before any
holiday ran; rewritten and re-verified against the live PBX. v1.11.1.
This commit is contained in:
Adam Moussa 2026-06-17 11:44:51 -04:00
parent 88e782c205
commit bc861f1ccc

View file

@ -282,6 +282,29 @@ Resources:
Description: "Update 3CX queue at 5pm EDT weekends"
Enabled: true
# Lambda error alarm for the ring scheduler. Mirrors the account-wide
# operational convention (Lambda-Errors-<fn>, threshold 1 over one 5-min
# period, Sum, missing=notBreaching) and pages the same site-alerts SNS topic
# → AWS Chatbot → Slack as the other afterhours-* functions.
RingSchedulerErrorAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: !Sub "Lambda-Errors-${RingSchedulerFunction}"
AlarmDescription: "Ring scheduler Lambda reported one or more errors"
Namespace: AWS/Lambda
MetricName: Errors
Dimensions:
- Name: FunctionName
Value: !Ref RingSchedulerFunction
Statistic: Sum
Period: 300
EvaluationPeriods: 1
Threshold: 1
ComparisonOperator: GreaterThanOrEqualToThreshold
TreatMissingData: notBreaching
AlarmActions:
- !Sub "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:site-alerts"
# --- Holiday Router (repoints 3CX IVR/queue for a holiday day-shift) ---
# Invoked with {"action": "activate"|"deactivate", "date": "<YYYY-MM-DD>"} at
# 08:00 ET (activate) and 17:00 ET (deactivate) for each holiday date. Both