Files
claudetools/clients/valleywide/voip/PROVISIONING-STATUS.md
Mike Swanson db10206aea feat(voip): VWP complete provisioning prep + setup documentation
Critical RPS provisioning URL fix + CSV bulk import ready + complete VoIP setup guide

CRITICAL FIX:
- RPS server URL corrected: http://ndp.ucaasnetwork.com/cfg (was ftp://p.packetdials.net)
- Discovered ACG has TWO whitelabel accounts (WLC vs OIT/PacketDial)
- Test phone (805e0cdd71b1) now registered immediately after fix (Status 1)

USER PROVISIONING:
- M365 account matching: 11 matched users, 7 unmatched (need clarification)
- CSV bulk import prepared (vwp-users-import.csv)
- Strategy: users WITHOUT devices initially (add phone extension: no)
- Device assignment workflow: incremental as phones distributed

COMPLETE VOIP SETUP DOCUMENTED:
- DID (phone number) management + routing options
- Call queues (ring groups) - recommended queues for VWP
- Auto-attendants (IVR menus) - main menu design
- Time frames (business hours routing)
- Additional features (hunt groups, voicemail-only, fax-to-email)
- All components with API commands + examples

FILES CREATED (7):
- README.md: Quick navigation hub + domain info
- PROVISIONING-STATUS.md: Current status + next steps
- SESSION-SUMMARY-2026-07-09.md: Complete session documentation (18 pages)
- COMPLETE-CLIENT-SETUP.md: Full VoIP setup guide (15 pages)
- DEVICE-ASSIGNMENT-COMMANDS.md: Copy-paste command reference
- extension-mapping.md: Extension to M365 account mapping
- vwp-users-import.csv: Bulk import file (READY for upload)

IMPLEMENTATION PHASES:
Phase 1 (In Progress): Basic connectivity - CSV ready for upload
Phase 2 (Planned): Main line setup - queue + auto-attendant + DID
Phase 3 (Planned): Business hours routing - time-based call handling
Phase 4 (Optional): Additional features per client needs

NEXT ACTIONS:
- Upload CSV to PacketDial web UI (manual step)
- Get client clarification on 7 unmatched users
- Assign devices as phones distributed (per-phone workflow documented)

Domain: vwp.91912.service
Main Number: 480-705-9500
E911: a-6a395c03d4cfe (301 N 56TH ST, CHANDLER AZ)
YMCS Site: 1e7578a6fe0e41cfb5a3e8b40933ffee

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-09 20:21:57 -07:00

5.9 KiB

VWP Phone Provisioning Status

Last Updated: 2026-07-09 20:45 MST Status: Ready for CSV bulk import + Complete VoIP setup documented Session Summary: SESSION-SUMMARY-2026-07-09.md


CRITICAL FIX COMPLETED

RPS Provisioning URL corrected:

  • Wrong: ftp://p.packetdials.net (Whitelabel Communication)
  • Correct: http://ndp.ucaasnetwork.com/cfg (OIT/PacketDial)

Result: Test phone (MAC 805e0cdd71b1) REGISTERED immediately after fix!

Two whitelabel accounts:

  • Whitelabel Communication (WLC): ftp://p.packetdials.net
  • OIT/PacketDial: http://ndp.ucaasnetwork.com/cfg ← VWP uses this one

READY FOR IMPORT

CSV File Created: clients/valleywide/voip/vwp-users-import.csv

Contains 11 matched users with:

  • ✓ Correct M365 email addresses
  • ✓ Proper first/last names
  • ✓ Users only, NO devices (add phone extension: no)
  • ✓ All PacketDial defaults (voicemail, caller ID, dial permissions)

Device Assignment Strategy: Users will be created without SIP devices. Physical phones will be assigned later as they're distributed to staff.

Matched Extensions:


NEXT STEPS (Tomorrow Morning)

1. Upload CSV to PacketDial (Users Only)

  1. Log in to https://pbx.packetdial.com/

    • Credentials: vault msp-tools/oitvoip-provisioning.sops.yaml
    • Username: Prov_Admin
    • Password: YJ5UgRd9pV
  2. Navigate to: Domainsvwp.91912.serviceUsersImport

  3. Upload: clients/valleywide/voip/vwp-users-import.csv

  4. Verify import completed successfully (all 11 users created WITHOUT devices)

2. Device Assignment Workflow (Per Phone)

As each physical phone is distributed to a user, follow this process:

Step A: Create SIP Device in PacketDial

# Example for extension 102
bash .claude/scripts/py.sh ns.py create-device vwp.91912.service 102 --body '{
  "device": "sip:102a@vwp.91912.service"
}' --confirm

Step B: Get SIP Password

bash .claude/scripts/py.sh ns.py devices vwp.91912.service 102 | \
  python3 -c "import sys, json; d=json.load(sys.stdin); \
  print(f\"102: {d[0].get('device-sip-registration-password')}\")"

Step C: Create YMCS SIP Account

ymcs.py add-sipaccount --body '{
  "registerName": "102@vwp.91912.service",
  "username": "102@vwp.91912.service",
  "password": "<SIP-PASSWORD-FROM-STEP-B>",
  "label": "Ext 102 - Jesse Guerrero",
  "displayName": "Jesse Guerrero",
  "sipServer1": {
    "host": "pbx.packetdial.com",
    "port": 5060
  },
  "siteId": "1e7578a6fe0e41cfb5a3e8b40933ffee"
}' --confirm

Step D: Identify Physical Phone

User provides last 4 digits of MAC address. Find device in YMCS:

ymcs.py devices | grep -i "<LAST-4-OF-MAC>"

Step E: Bind Account to Phone

# Get account ID from step C output, device ID from step D
ymcs.py raw POST /v2/dm/devices/{device-id}/bindAccounts --body '[{
  "lineId": 1,
  "accountType": 0,
  "accountId": "{account-id}"
}]' --confirm

# Reboot phone to apply
ymcs.py reboot --body '{
  "deviceIds": ["{device-id}"],
  "deviceType": 1
}' --confirm

3. Test Phone Identification

Test phone (805e0cdd71b1) is for the receptionist (one of the 7 unmatched users, NOT in the CSV import).

  • Last 4 of MAC: 71b1
  • This phone is already configured and registered
  • Do NOT create a device for this extension yet (waiting on user clarification)

PARKED FOR LATER (7 Extensions)

Need client clarification on these names:

Ext Name Given Status Notes
101 Natalya No M365 match Verify real name
106 Tammy No M365 match Verify real name
108 Shannon No M365 match Verify real name
111 Kitchen Shared phone May not need M365 account
112 Conference Room Shared phone May not need M365 account
117 Jesse III No M365 match Possibly Ryan Guerrero?
118 Warehouse Shared phone May not need M365 account

Action: Get client clarification, then create a second CSV for these 7 extensions.


FILES CREATED

  • Extension Mapping: clients/valleywide/voip/extension-mapping.md
  • Bulk Import CSV: clients/valleywide/voip/vwp-users-import.csv
  • This Status: clients/valleywide/voip/PROVISIONING-STATUS.md

DOCUMENTATION UPDATE NEEDED

docs/VOIP_ONBOARDING_WORKFLOW.md needs update:

  • Add OIT vs WLC provisioning URL distinction
  • Document CSV bulk import method
  • Add troubleshooting section for wrong RPS URL

This Directory (clients/valleywide/voip/)

  • extension-mapping.md - M365 account matching (11 matched, 7 unmatched)
  • vwp-users-import.csv - Bulk import file for PacketDial
  • PROVISIONING-STATUS.md - This file (status + next steps)
  • COMPLETE-CLIENT-SETUP.md - Full VoIP setup guide (DIDs, queues, IVRs, time frames)
  • SESSION-SUMMARY-2026-07-09.md - Complete session documentation

Skills Documentation

  • .claude/skills/packetdial/SKILL.md - PacketDial skill reference
  • .claude/skills/packetdial/docs/VOIP_ONBOARDING_WORKFLOW.md - Workflow guide
  • .claude/skills/yealink-ymcs/SKILL.md - YMCS skill reference
  • .claude/skills/yealink-ymcs/docs/SIPSERVER_SCHEMA.md - SIP account schema

Wiki

  • wiki/clients/valleywide.md - VWP client infrastructure (M365 tenant, phones, etc.)