From 0c67fa5356094f446e149cdb74dceba4e77029c1 Mon Sep 17 00:00:00 2001 From: Andrew Stoltz Date: Fri, 17 Apr 2026 15:51:49 -0500 Subject: [PATCH] asterisk: add *832 test-entry dialplan for VDAY workflow AATs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lets live SIP AATs (ext 901–904, from-internal context) dial *832 to exercise the Victory Day workflow + Fun Menu + AsteriskGameHandler path without routing through Twilio. Mnemonic: *832 = V-D-A (8-3-2) from the V-D-A-Y keypad pattern. Maps to Stasis(flowercore-pbx,inbound-pstn,+15074618329) — same call- type classification as a real Twilio-inbound call to the VDAY DID, so InboundPstnHandler routes to the seeded VDAY workflow identically. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/asterisk/configmap.yaml | 253 ++++++++++++++++++----------------- 1 file changed, 130 insertions(+), 123 deletions(-) diff --git a/apps/asterisk/configmap.yaml b/apps/asterisk/configmap.yaml index 1b85a78..625b556 100644 --- a/apps/asterisk/configmap.yaml +++ b/apps/asterisk/configmap.yaml @@ -96,9 +96,9 @@ data: allow=ulaw allow=alaw direct_media=no - ; Yealink provisioning sends RFC2833/RFC4733 DTMF (payload 101). - ; Keep the PBX template aligned so physical desk phones emit ARI DTMF events. - dtmf_mode=rfc4733 + ; Yealink provisioning sends RFC2833/RFC4733 DTMF (payload 101). + ; Keep the PBX template aligned so physical desk phones emit ARI DTMF events. + dtmf_mode=rfc4733 rtp_symmetric=yes force_rport=yes rewrite_contact=yes @@ -157,11 +157,11 @@ data: remove_existing=yes qualify_frequency=60 - ; Extension 103 - Office 3 - [103](phone-template) - auth=auth103 - aors=103 - callerid="Office 3" <103> + ; Extension 103 - Office 3 + [103](phone-template) + auth=auth103 + aors=103 + callerid="Office 3" <103> [auth103] type=auth @@ -169,90 +169,90 @@ data: username=103 password=bluejay-ext-103 - [103] - type=aor - max_contacts=1 - remove_existing=yes - qualify_frequency=60 - - ; Test endpoints 901-904 for softphone proof - [test-endpoint](!) - type=endpoint - context=from-internal - transport=transport-udp - disallow=all - allow=ulaw - allow=alaw - direct_media=no - rtp_symmetric=yes - force_rport=yes - rewrite_contact=yes - - [901](test-endpoint) - auth=auth901 - aors=901 - callerid="Proof Caller" <901> - - [auth901] - type=auth - auth_type=userpass - username=901 - password=test-sip-secret-901 - - [901] - type=aor - max_contacts=1 - remove_existing=yes - - [902](test-endpoint) - auth=auth902 - aors=902 - callerid="Proof Callee" <902> - - [auth902] - type=auth - auth_type=userpass - username=902 - password=test-sip-secret-901 - - [902] - type=aor - max_contacts=1 - remove_existing=yes - - [903](test-endpoint) - auth=auth903 - aors=903 - callerid="Proof Endpoint 3" <903> - - [auth903] - type=auth - auth_type=userpass - username=903 - password=test-sip-secret-901 - - [903] - type=aor - max_contacts=1 - remove_existing=yes - - [904](test-endpoint) - auth=auth904 - aors=904 - callerid="Proof Endpoint 4" <904> - - [auth904] - type=auth - auth_type=userpass - username=904 - password=test-sip-secret-901 - - [904] - type=aor - max_contacts=1 - remove_existing=yes - - extensions.conf: | + [103] + type=aor + max_contacts=1 + remove_existing=yes + qualify_frequency=60 + + ; Test endpoints 901-904 for softphone proof + [test-endpoint](!) + type=endpoint + context=from-internal + transport=transport-udp + disallow=all + allow=ulaw + allow=alaw + direct_media=no + rtp_symmetric=yes + force_rport=yes + rewrite_contact=yes + + [901](test-endpoint) + auth=auth901 + aors=901 + callerid="Proof Caller" <901> + + [auth901] + type=auth + auth_type=userpass + username=901 + password=test-sip-secret-901 + + [901] + type=aor + max_contacts=1 + remove_existing=yes + + [902](test-endpoint) + auth=auth902 + aors=902 + callerid="Proof Callee" <902> + + [auth902] + type=auth + auth_type=userpass + username=902 + password=test-sip-secret-901 + + [902] + type=aor + max_contacts=1 + remove_existing=yes + + [903](test-endpoint) + auth=auth903 + aors=903 + callerid="Proof Endpoint 3" <903> + + [auth903] + type=auth + auth_type=userpass + username=903 + password=test-sip-secret-901 + + [903] + type=aor + max_contacts=1 + remove_existing=yes + + [904](test-endpoint) + auth=auth904 + aors=904 + callerid="Proof Endpoint 4" <904> + + [auth904] + type=auth + auth_type=userpass + username=904 + password=test-sip-secret-901 + + [904] + type=aor + max_contacts=1 + remove_existing=yes + + extensions.conf: | [general] static=yes writeprotect=no @@ -270,37 +270,37 @@ data: same => n,Hangup() [from-internal] - ; Internal extension-to-extension dialing - exten => _1XX,1,Dial(PJSIP/${EXTEN},30) - same => n,Hangup() - - ; Softphone proof endpoints and utility extensions - exten => _9XX,1,NoOp(Proof call to ${EXTEN}) - same => n,Dial(PJSIP/${EXTEN},30) - same => n,Hangup() - - exten => 999,1,Answer() - same => n,Playback(demo-echotest) - same => n,Echo() - same => n,Hangup() - - exten => 998,1,Answer() - same => n,Milliwatt() - same => n,Hangup() - - exten => 997,1,Answer() - same => n,Wait(0.5) - same => n,Playback(hello-world) - same => n,Wait(1) - same => n,Hangup() - - exten => 996,1,Answer() - same => n,Wait(0.5) - same => n,Read(DIGITS,,4,,,5) - same => n,SayDigits(${DIGITS}) - same => n,Hangup() - - ; Outbound via Twilio SIP trunk (11-digit US) + ; Internal extension-to-extension dialing + exten => _1XX,1,Dial(PJSIP/${EXTEN},30) + same => n,Hangup() + + ; Softphone proof endpoints and utility extensions + exten => _9XX,1,NoOp(Proof call to ${EXTEN}) + same => n,Dial(PJSIP/${EXTEN},30) + same => n,Hangup() + + exten => 999,1,Answer() + same => n,Playback(demo-echotest) + same => n,Echo() + same => n,Hangup() + + exten => 998,1,Answer() + same => n,Milliwatt() + same => n,Hangup() + + exten => 997,1,Answer() + same => n,Wait(0.5) + same => n,Playback(hello-world) + same => n,Wait(1) + same => n,Hangup() + + exten => 996,1,Answer() + same => n,Wait(0.5) + same => n,Read(DIGITS,,4,,,5) + same => n,SayDigits(${DIGITS}) + same => n,Hangup() + + ; Outbound via Twilio SIP trunk (11-digit US) exten => _1NXXNXXXXXX,1,Set(CALLERID(num)=+13202332529) same => n,Dial(PJSIP/+${EXTEN}@twilio-trunk,60) same => n,Hangup() @@ -314,6 +314,13 @@ data: exten => *100,1,Stasis(flowercore-pbx,internal,ivr) same => n,Hangup() + ; Test-only entry into the Victory Day workflow (DID +15074618329). + ; Used by live SIP AATs to exercise the VDAY Fun Menu + AsteriskGameHandler + ; path without dialing in over Twilio. Mnemonic: *832 = "V-D-A" (8-3-2). + exten => *832,1,NoOp(Test entry: Victory Day workflow via AAT) + same => n,Stasis(flowercore-pbx,inbound-pstn,+15074618329) + same => n,Hangup() + ; Star codes routed to FlowerCore Stasis app for handling exten => *0,1,Stasis(flowercore-pbx,starcode,*0) same => n,Hangup()