Voice fulfillment checklist (ops)
Engage. Execute. Deploy. — after Snipcart checkout for Desk Voice or Office Voice.
This is the ordered list of work LightningArrows completes for the customer. A checklist file is created automatically when Snipcart reports a paid Voice order.
What the system does on checkout
- Detects Snipcart items
la-voice-desk/la-voice-office/la-voice-did/la-voice-did-payg/la-voice-minutes-500/la-voice-trunk/la-voice-payg-credit-*(and matching names). - Works when Voice is standalone on the Voice page or bolted onto a cloud server checkout (second cart line).
- Reads cart custom field Outside calling (PSTN) when present (DID + outbound, 500 min, PayG, etc.).
- Creates a fulfillment record under
user/data/la-domains/voice-orders/. - Creates or attaches a member account (same hub as domains/servers).
- Marks Voice on the customer record so My Tickets is allowed.
- Emails ops the full checklist (DID / LA PSTN steps required when outside calling was ordered).
- Emails the customer that setup has started + useful guides (LA branding only — never expose upstream carrier brands).
CLI:
cd /var/www/html/lightningarrows.com/grav
php user/plugins/la-domains/bin/manage-voice.php list
php user/plugins/la-domains/bin/manage-voice.php show vff_YYYYMMDD_xxxx
php user/plugins/la-domains/bin/manage-voice.php done vff_… create_sip_seat "ext 101"
php user/plugins/la-domains/bin/manage-voice.php seat vff_… --ext=101 --pass='…' --token=…
LA PSTN webhooks (ops)
Signed carrier messaging/call webhooks land at /domains-api/telnyx-webhook (Ed25519 verify).
Connection/account names and keys live only in server env — never in public docs. Logs: user/data/la-domains/telnyx-webhooks/.
Inbound verification SMS (Google Voice codes, etc.) surface for authorized ops at:
| Surface | Path |
|---|---|
| HTML inbox | /domains-api/voice-sms?view=1 |
| Site page | /cloud-servers/voice-sms |
| JSON | /domains-api/voice-sms |
Do not publish live DIDs, SIP passwords, or webhook secrets on these pages.
php user/plugins/la-domains/bin/manage-telnyx-webhooks.php health
php user/plugins/la-domains/bin/manage-telnyx-webhooks.php list
php user/plugins/la-domains/bin/manage-telnyx-webhooks.php register-connection
Checklist — complete in order
| # | Step ID | What to do for the customer |
|---|---|---|
| 1 | confirm_order |
Confirm paid Snipcart order (invoice, email, SKU, amount). Usually auto-checked. |
| 2 | member_account |
Ensure LightningArrows login exists and Voice seat is on the customer record. Often auto-checked. |
| 3 | create_sip_seat |
Create unique PJSIP extension(s) + password on the PBX (Desk = 1 seat, Office = up to 5). Never reuse shared lab extensions for paid customers. |
| 4 | provision_profile |
Write tokenized phone.xml under /la-voice-prov/<token>/ (Proxy, User ID, Auth ID, Password). Optional SEP<MAC>.xml when MAC known. |
| 5 | email_customer |
Email Ext 1 fields + Profile Rule URL + bolt-in + Enterprise→MPP if Cisco. |
| 6 | mac_optional |
Record handset MAC when customer provides it; attach to seat / provision file. Optional. |
| 7 | verify_register |
Confirm Registered on Asterisk; help with proxy, password, NAT, DNS. |
| 8 | e911 |
Collect dispatchable service address before real outbound. Required when PSTN/DID was ordered. |
| 9 | did_optional / LA PSTN |
Provision US DID + outbound on LA carrier platform when cart option or DID / trunk SKU ordered; set caller ID + dialplan routes. |
| 9b | minutes_pack |
Apply 500 min (or ordered) allotment when selected. |
| 10 | support_access |
Confirm they can log in and open My Tickets for line setup issues. |
| 11 | activate_close |
Set seat status=active, finish required steps, close checklist. |
Customer-facing path (what they experience)
Pay for Desk/Office Voice
→ “Setup started” email
→ Ops creates SIP + provision URL
→ Credentials email
→ Customer sets Ext 1 or Profile Rule
→ Registered
→ e911
→ Tickets if stuck
Related docs:
Support tickets
Members with a Voice seat on their account can use My Tickets the same way as domain/server customers. Suggested categories: voice, billing, account.
Security notes
- Store extension passwords only in restricted checklist / provision files (not public pages).
- Rotate any credential that was ever used only for lab testing before assigning to a paid customer.
- Snipcart Test mode does not create production Voice checklists.
LightningArrows Inc. — Cloud · domains · voice. Engage. Execute. Deploy.