Files
claudetools/clients/valleywide/voip/provision-natalya-101.md
Mike Swanson 736d43f482 feat(voip): Extension 101 clarification - Natalya is receptionist
CLARIFIED (2026-07-10):
- Extension 101: Natalya (Receptionist)
- M365 Account: Customer Service (customerservice@valleywideplastering.com)
- Phone: Test phone from yesterday (MAC 805e0cdd71b1 / Last 4: 71b1)
- Status: Phone already registered, ready for user provisioning

UPDATED:
- Matched users: 11 -> 12 (Natalya now matched)
- Unmatched users: 7 -> 6 (removed Natalya from unmatched list)
- Created provision-natalya-101.md with step-by-step commands

FILES MODIFIED:
- extension-mapping.md: Updated ext 101 to show customerservice@ match
- PROVISIONING-STATUS.md: Added clarified section for ext 101
- README.md: Updated user counts and added provision-natalya-101.md link
- provision-natalya-101.md: NEW - Complete provisioning guide for receptionist

NEXT ACTIONS:
1. Upload 11-user CSV to PacketDial (unchanged)
2. Provision extension 101 separately (commands documented)
3. Remaining 6 unmatched extensions need clarification

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-07-10 07:09:35 -07:00

5.5 KiB

Provision Extension 101 - Natalya (Receptionist)

Date: 2026-07-10 Status: Ready to provision Phone: Already registered (test phone from yesterday)


User Information

Extension: 101
Name: Natalya (Receptionist)
M365 Account: Customer Service
Email: customerservice@valleywideplastering.com
Phone MAC: 805e0cdd71b1
Phone Last 4: 71b1
Domain: vwp.91912.service

Current Status

Phone Hardware:

  • MAC: 805e0cdd71b1
  • Status: Already registered (Status 1) with test credentials
  • YMCS Device ID: (need to look up)

PacketDial:

  • User 101: Does NOT exist yet (needs to be created)
  • Device for 101: Does NOT exist yet (will be created with user)

YMCS:

  • Physical phone: Exists and online
  • SIP account: Currently has test credentials (need to update with real user 101 credentials)

Provisioning Steps

Step 1: Create User 101 in PacketDial

bash .claude/scripts/py.sh .claude/skills/packetdial/scripts/ns.py \
  create-user vwp.91912.service --body '{
    "user": "101",
    "name-first-name": "Natalya",
    "name-last-name": "Receptionist",
    "email": "customerservice@valleywideplastering.com",
    "emergency-address-id": "a-6a395c03d4cfe"
  }' --confirm

Step 2: Create SIP Device for Extension 101

bash .claude/scripts/py.sh .claude/skills/packetdial/scripts/ns.py \
  create-device vwp.91912.service 101 --body '{
    "device": "101a@vwp.91912.service"
  }' --confirm

Step 3: Get Auto-Generated SIP Password

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

Save this password - you'll need it for YMCS update.

Step 4: Find Existing YMCS SIP Account

The test phone already has a SIP account. Find it:

bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py devices | grep -i "71b1" -A 20

Extract:

  • Device ID (the "id" field)
  • Look for bound accounts
# Get device ID from above, then check bound accounts
bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  raw GET /v2/dm/devices/{DEVICE-ID}/boundAccounts

Extract the account ID from the bound account.

Step 5: Update Existing YMCS SIP Account with New Credentials

bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  raw PATCH /v2/dm/sipAccounts/{ACCOUNT-ID} --body '{
    "registerName": "101@vwp.91912.service",
    "username": "101@vwp.91912.service",
    "password": "{SIP-PASSWORD-FROM-STEP-3}",
    "label": "Ext 101 - Natalya (Receptionist)",
    "displayName": "Natalya",
    "sipServer1": {
      "host": "pbx.packetdial.com",
      "port": 5060
    },
    "remark": "Valley Wide Plastering - customerservice@valleywideplastering.com"
  }' --confirm

Step 6: Reboot Phone to Apply New Credentials

bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  reboot --body '{
    "deviceIds": ["{DEVICE-ID}"],
    "deviceType": 1
  }' --confirm

Step 7: Verify Registration

Check in PacketDial:

bash .claude/scripts/py.sh .claude/skills/packetdial/scripts/ns.py \
  devices vwp.91912.service 101

Look for:

  • device-sip-registration-state: "registered"
  • device-sip-registration-contact: Shows phone IP

Check in YMCS:

bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  raw GET /v2/dm/devices/{DEVICE-ID}

Look for:

  • accounts[].status: 1 (Registered)

Alternative: Create New YMCS Account Instead of Updating

If you prefer to create a NEW SIP account instead of updating the test account:

Step 4 (Alternative): Unbind Old Account

# First, get the old account ID from boundAccounts
bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  raw DELETE /v2/dm/devices/{DEVICE-ID}/bindAccounts/{OLD-ACCOUNT-ID} --confirm

Step 5 (Alternative): Create New SIP Account

bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  add-sipaccount --body '{
    "registerName": "101@vwp.91912.service",
    "username": "101@vwp.91912.service",
    "password": "{SIP-PASSWORD-FROM-STEP-3}",
    "label": "Ext 101 - Natalya (Receptionist)",
    "displayName": "Natalya",
    "sipServer1": {
      "host": "pbx.packetdial.com",
      "port": 5060
    },
    "remark": "Valley Wide Plastering - customerservice@valleywideplastering.com",
    "siteId": "1e7578a6fe0e41cfb5a3e8b40933ffee"
  }' --confirm

Save the account ID from response.

Step 6 (Alternative): Bind New Account to Phone

bash .claude/scripts/py.sh .claude/skills/yealink-ymcs/scripts/ymcs.py \
  raw POST /v2/dm/devices/{DEVICE-ID}/bindAccounts --body '[{
    "lineId": 1,
    "accountType": 0,
    "accountId": "{NEW-ACCOUNT-ID}"
  }]' --confirm

Step 7 (Alternative): Reboot and Verify (Same as Above)


Notes

  • Recommended approach: Update existing YMCS account (simpler, phone already bound)
  • Alternative approach: Create new account if you want clean separation from test
  • Phone should remain registered throughout (just credentials change)
  • Extension 101 should be ready for calls immediately after reboot

Status After Provisioning:

  • Extension 101 created in PacketDial ✓
  • SIP device 101a created with password ✓
  • YMCS SIP account updated with real credentials ✓
  • Phone registered to extension 101 ✓
  • Receptionist can make/receive calls ✓