wxcli 1.3.0__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/agents/wxc-calling-builder.md +3 -3
- wxcli-1.4.0/.claude/settings.json +16 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/audit-compliance/SKILL.md +73 -1
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/configure-features/SKILL.md +346 -2
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/configure-routing/SKILL.md +4 -5
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/cucm-migrate/SKILL.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/customer-assist/SKILL.md +32 -14
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/skills/manage-call-settings/SKILL.md +176 -6
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/skills/manage-devices/SKILL.md +116 -9
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/skills/manage-identity/SKILL.md +165 -2
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/skills/manage-licensing/SKILL.md +72 -4
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/manage-meetings/SKILL.md +7 -6
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/provision-calling/SKILL.md +95 -3
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/query-live/domains/routing.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/skills/reporting/SKILL.md +79 -5
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/.claude/skills/teardown/SKILL.md +1 -1
- wxcli-1.4.0/.github/workflows/ci.yml +114 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.github/workflows/release.yml +3 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.gitignore +2 -0
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/CLAUDE.md +41 -19
- {wxcli-1.3.0 → wxcli-1.4.0}/PKG-INFO +11 -11
- {wxcli-1.3.0 → wxcli-1.4.0}/README.md +10 -10
- {wxcli-1.3.0 → wxcli-1.4.0}/TODO.md +2 -2
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-apps-data.md +4 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-hybrid.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-identity-scim.md +4 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-licensing.md +12 -16
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-partner.md +34 -28
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/authentication.md +58 -69
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/call-control.md +6 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/call-features-additional.md +123 -78
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/call-features-major.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/contact-center-analytics.md +21 -31
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/contact-center-core.md +145 -143
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/contact-center-journey.md +15 -16
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/contact-center-routing.md +105 -95
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/devices-core.md +20 -9
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/devices-dect.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/devices-workspaces.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/location-calling-core.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/location-calling-media.md +2 -2
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/location-recording-advanced.md +6 -5
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/meetings-content.md +13 -10
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/meetings-core.md +42 -35
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/meetings-infrastructure.md +58 -44
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/meetings-settings.md +47 -38
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/messaging-bots.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/messaging-spaces.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/person-call-settings-behavior.md +31 -9
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/person-call-settings-media.md +33 -13
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/person-call-settings-permissions.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook → wxcli-1.4.0}/docs/reference/provisioning.md +8 -6
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/reporting-analytics.md +22 -22
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/runbooks/cucm-migration/decision-guide.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/runbooks/cucm-migration/operator-runbook.md +2 -2
- {wxcli-1.3.0 → wxcli-1.4.0}/pyproject.toml +3 -3
- wxcli-1.4.0/specs/overlays/webex-cloud-calling.overlay.json +178 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-admin.json +8 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-cloud-calling.json +503 -2
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-contact-center.json +526 -216
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/agents/wxc-calling-builder.md +3 -3
- wxcli-1.4.0/src/wxcli/_playbook/.claude/settings.json +21 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/audit-compliance/SKILL.md +73 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/configure-features/SKILL.md +346 -2
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/configure-routing/SKILL.md +4 -5
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/cucm-migrate/SKILL.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/customer-assist/SKILL.md +32 -14
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/manage-call-settings/SKILL.md +176 -6
- {wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/src/wxcli/_playbook/.claude}/skills/manage-devices/SKILL.md +116 -9
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/manage-identity/SKILL.md +165 -2
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/manage-licensing/SKILL.md +72 -4
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/manage-meetings/SKILL.md +7 -6
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/provision-calling/SKILL.md +95 -3
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/domains/routing.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/reporting/SKILL.md +79 -5
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/.claude/skills/teardown/SKILL.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/agents/wxc-calling-builder.toml +3 -3
- wxcli-1.4.0/src/wxcli/_playbook/.codex/config.toml +17 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/audit-compliance/SKILL.md +73 -1
- {wxcli-1.3.0/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/configure-features/SKILL.md +346 -2
- {wxcli-1.3.0/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/configure-routing/SKILL.md +4 -5
- {wxcli-1.3.0/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/cucm-migrate/SKILL.md +1 -1
- {wxcli-1.3.0/src/wxcli/_playbook/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/customer-assist/SKILL.md +32 -14
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/manage-call-settings/SKILL.md +176 -6
- {wxcli-1.3.0/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/manage-devices/SKILL.md +116 -9
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/manage-identity/SKILL.md +165 -2
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/manage-licensing/SKILL.md +72 -4
- {wxcli-1.3.0/src/wxcli/_playbook/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/manage-meetings/SKILL.md +7 -6
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/provision-calling/SKILL.md +95 -3
- {wxcli-1.3.0/.claude → wxcli-1.4.0/src/wxcli/_playbook/.codex}/skills/query-live/domains/routing.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/reporting/SKILL.md +79 -5
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/teardown/SKILL.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/AGENTS.md +39 -17
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/CLAUDE.md +41 -19
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-css-routing.md +243 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-device-migration.md +341 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-feature-mapping.md +250 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-identity-numbering.md +134 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-location-design.md +305 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-trunk-pstn.md +274 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-user-settings.md +331 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/knowledge-base/migration/kb-webex-limits.md +270 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-apps-data.md +4 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-hybrid.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-identity-scim.md +4 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-licensing.md +12 -16
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-partner.md +34 -28
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/authentication.md +58 -69
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/call-control.md +6 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/call-features-additional.md +123 -78
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/call-features-major.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/contact-center-analytics.md +21 -31
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/contact-center-core.md +145 -143
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/contact-center-journey.md +15 -16
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/contact-center-routing.md +105 -95
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/devices-core.md +20 -9
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/devices-dect.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/devices-workspaces.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/location-calling-core.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/location-calling-media.md +2 -2
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/location-recording-advanced.md +6 -5
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/meetings-content.md +13 -10
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/meetings-core.md +42 -35
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/meetings-infrastructure.md +58 -44
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/meetings-settings.md +47 -38
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/messaging-bots.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/messaging-spaces.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/person-call-settings-behavior.md +31 -9
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/person-call-settings-media.md +33 -13
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/person-call-settings-permissions.md +1 -1
- {wxcli-1.3.0 → wxcli-1.4.0/src/wxcli/_playbook}/docs/reference/provisioning.md +8 -6
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/reporting-analytics.md +22 -22
- wxcli-1.4.0/src/wxcli/_playbook/docs/runbooks/cucm-migration/decision-guide.md +928 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/runbooks/cucm-migration/operator-runbook.md +988 -0
- wxcli-1.4.0/src/wxcli/_playbook/docs/runbooks/cucm-migration/tuning-reference.md +817 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_version.py +3 -3
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/customer_assist.py +62 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/update.py +46 -2
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/user_settings.py +166 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/virtual_line_settings.py +58 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/workspace_settings.py +58 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/main.py +10 -1
- wxcli-1.4.0/src/wxcli/update_check.py +145 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/PKG-INFO +11 -11
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/SOURCES.txt +16 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/scm_file_list.json +17 -1
- wxcli-1.4.0/src/wxcli.egg-info/scm_version.json +8 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/CLAUDE.md +21 -1
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/drift_check.py +256 -13
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/drift_check_allowlist.txt +6 -4
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/openapi_parser.py +8 -2
- wxcli-1.4.0/tools/spec_overlay.py +106 -0
- wxcli-1.4.0/tools/wheel_playbook_smoke.py +149 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/wxcli-dist/assemble.py +17 -1
- wxcli-1.4.0/wxcli-dist/codex/config.toml +17 -0
- wxcli-1.4.0/wxcli-dist/settings.bundled.json +21 -0
- wxcli-1.3.0/.claude/settings.json +0 -29
- wxcli-1.3.0/src/wxcli/_playbook/.claude/settings.json +0 -8
- wxcli-1.3.0/src/wxcli/_playbook/.codex/config.toml +0 -14
- wxcli-1.3.0/src/wxcli.egg-info/scm_version.json +0 -8
- wxcli-1.3.0/wxcli-dist/codex/config.toml +0 -14
- wxcli-1.3.0/wxcli-dist/settings.bundled.json +0 -8
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/agents/migration-advisor.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/projects/-Users-ahobgood-Documents-webexCalling/memory/feedback_help_gate_for_skills.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/rules/cleanup.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/rules/cucm-migration.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/rules/org-health.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/call-control/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/contact-center/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/device-platform/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/messaging-bots/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/messaging-spaces/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/org-health/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/query-live/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/query-live/domains/call-flow-trace.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/query-live/domains/call-history.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/query-live/domains/features.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/query-live/domains/numbers.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/query-live/domains/people-and-settings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/reporting/references/cdr-recipes.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/reporting-cc/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/reporting-meetings/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/video-mesh/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/.claude/skills/wxc-calling-debug/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/LICENSE +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/architecture/00-index.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/architecture/01-structural-map.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/architecture/02-decisions.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/architecture/03-behavior.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/architecture/04-operations-and-evolution.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/architecture/05-purpose.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-css-routing.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-device-migration.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-feature-mapping.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-identity-numbering.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-location-design.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-trunk-pstn.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-user-settings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/knowledge-base/migration/kb-webex-limits.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/TODO.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-audit-security.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/admin-org-management.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxc-sdk-patterns.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-advanced.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-core.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-devices-workspaces.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-features.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-locations.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-person.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/archive/wxcadm-routing.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/call-routing.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/devices-platform.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/emergency-services.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/migration-spec-template.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/person-call-settings-handling.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/self-service-call-settings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/virtual-lines.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/webhooks-events.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/reference/wxcadm-xsi-realtime.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/runbooks/cucm-migration/self-review-findings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/runbooks/cucm-migration/tuning-reference.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/templates/deployment-plan.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/docs/templates/execution-report.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/setup.cfg +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-broadworks.json +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-device.json +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-meetings.json +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-messaging.json +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-ucm.json +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/specs/webex-wholesale.json +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/agents/migration-advisor.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/rules/cleanup.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/rules/cucm-migration.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/rules/org-health.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/call-control/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/contact-center/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/device-platform/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/messaging-bots/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/messaging-spaces/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/org-health/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/domains/call-flow-trace.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/domains/call-history.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/domains/features.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/domains/numbers.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/query-live/domains/people-and-settings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/reporting/references/cdr-recipes.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/reporting-cc/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/reporting-meetings/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/video-mesh/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.claude/skills/wxc-calling-debug/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/agents/migration-advisor.toml +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/rules/cleanup.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/rules/cucm-migration.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/rules/org-health.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/call-control/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/contact-center/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/device-platform/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/messaging-bots/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/messaging-spaces/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/org-health/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/query-live/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/query-live/domains/call-flow-trace.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/query-live/domains/call-history.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/query-live/domains/features.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/query-live/domains/numbers.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/query-live/domains/people-and-settings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/reporting/references/cdr-recipes.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/reporting-cc/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/reporting-meetings/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/video-mesh/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/.codex/skills/wxc-calling-debug/SKILL.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-audit-security.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/admin-org-management.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxc-sdk-patterns.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-advanced.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-core.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-devices-workspaces.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-features.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-locations.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-person.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/archive/wxcadm-routing.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/call-routing.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/devices-platform.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/emergency-services.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/person-call-settings-handling.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/self-service-call-settings.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/virtual-lines.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/webhooks-events.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/_playbook/docs/reference/wxcadm-xsi-realtime.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/auth.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/_registry.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/activation_email.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/admin_recordings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/analytics.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/announcement_playlists.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/announcements.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/archive_users.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/attachment_actions.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/audit_events.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/authorizations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/auto_attendant.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/broadworks_billing_reports.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/broadworks_enterprises.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/broadworks_subscribers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/broadworks_workspaces.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_controls.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_park.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_pickup.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_queue.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_recording.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_routing.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/call_settings_for_me_phase_5.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/caller_reputation.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/calling_service.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_address_book.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_agent_greetings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_agent_summaries.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_agent_wellbeing.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_agents.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_ai_assistant.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_ai_feature.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_audio_files.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_auto_csat.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_aux_code.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_business_hour.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_call_monitoring.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_callbacks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_campaign.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_captures.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_contact_list.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_contact_number.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_data_sources.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_desktop_layout.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_desktop_profile.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_dial_number.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_dial_plan.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_dnc.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_entry_point.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_ewt.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_flow.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_global_vars.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_holiday_list.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_journey.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_legacy_flows.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_multimedia_profile.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_notification.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_outdial_ani.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_overrides.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_queue.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_queue_stats.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_realtime.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_resource_collection.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_search.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_site.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_skill.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_skill_profile.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_subscriptions.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_summaries.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_tasks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_team.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_user_profiles.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_users.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cc_work_types.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cdr.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/classifications.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cleanup.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/client_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/conference.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/configure.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/converged_recordings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/converged_recordings_export.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cq_playlists.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cucm.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/cucm_config.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/data_sources.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/dect_devices.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/device_configurations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/device_dynamic_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/device_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/devices.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/domains.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/ecm.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/emergency_services.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/events.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/external_voicemail.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/groups.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/guest_management.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hds.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hot_desk.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hot_desking_members.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hot_desking_portal.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hunt_group.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hybrid_clusters.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/hybrid_connectors.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/identity_org.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/init_playbook.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/licenses.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/live_monitoring.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/location_call_handling.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/location_schedules.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/location_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/location_voicemail.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/locations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_captions.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_chats.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_invitees.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_messages.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_participants.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_polls.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_preferences.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_qa.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_qualities.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_reports.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_session_types.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_site.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_slido.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_summaries.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_tracking_codes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meeting_transcripts.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/meetings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/memberships.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/messages.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/mode_management.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/my_call_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/numbers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/operating_modes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/org_contacts.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/org_health_cli.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/org_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/organizations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/paging_group.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/partner_admins.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/partner_reports.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/partner_tags.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/people.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/person_call_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/pstn.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/recording_report.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/report_templates.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/reports.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/resource_group_memberships.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/resource_groups.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/roles.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/room_tabs.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/rooms.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/scim_bulk.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/scim_groups.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/scim_schemas.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/scim_users.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/security_audit.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/service_apps.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/single_number_reach.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/team_memberships.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/teams.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/ucm_profile.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/video_mesh.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/virtual_extensions.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/webhooks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/wholesale_billing_reports.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/wholesale_provisioning.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/workspace_locations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/workspace_metrics.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/workspace_personalization.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/workspaces.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/commands/xapi.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/config.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/errors.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/advisory/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/advisory/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/advisory/advisor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/advisory/advisory_patterns.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/advisory/recommendation_rules.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/connection.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/discovery.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/announcements.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/base.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/device_profiles.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/devices.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/e911.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/features.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/helpers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/informational.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/locations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/moh.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/remote_destinations.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/routing.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/shared_lines.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/templates.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/tier4.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/users.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/voicemail.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/extractors/workspaces.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/cucm/unity_connection.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/batch.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/dependency.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/engine.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/planner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/execute/runtime.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/export/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/export/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/export/csv_export.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/export/deployment_plan.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/export/json_export.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/models.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/phone_models.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/preflight/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/preflight/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/preflight/checks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/preflight/runner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/rate_limiter.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/appendix.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/assembler.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/charts.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/executive.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/explainer.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/helpers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/ingest.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/notice_templates.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/score.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/styles.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/user_diff.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/report/user_notice.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/state.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/store.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analysis_pipeline.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/css_permission.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/css_routing.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/device_compatibility.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/dn_ambiguity.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/duplicate_user.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/extension_conflict.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/feature_approximation.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/layout_overflow.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/location_ambiguity.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/missing_data.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/selective_call_handling.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/shared_line.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/voicemail_compatibility.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/analyzers/workspace_license.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/cross_reference.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/cucm_pattern.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/decisions.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/e164.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/engine.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/announcement_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/base.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/button_template_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/call_forwarding_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/call_settings_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/css_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/dect_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/device_layout_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/device_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/device_profile_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/device_settings_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/e911_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/ecbn_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/executive_assistant_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/feature_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/line_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/location_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/moh_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/monitoring_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/receptionist_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/routing_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/snr_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/softkey_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/user_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/voicemail_group_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/voicemail_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/mappers/workspace_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/normalizers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/pattern_converter.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/pipeline.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/migration/transform/rules.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/CLAUDE.md +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/analyze.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/checks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/collector.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/models.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/org_health/report.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli/output.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/dependency_links.txt +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/entry_points.txt +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/requires.txt +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/src/wxcli.egg-info/top_level.txt +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_advisor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_advisory_executive_assistant.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_advisory_intercept.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_advisory_patterns.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_advisory_selective.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_foundation.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_new_patterns.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_receptionist_advisory.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_recommendation_rules.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_recommendation_rules_tier2p2.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_recommendation_selective.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/advisory/test_tier4_patterns.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/fixtures/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_connection.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_cpc_detail_fetch.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_device_settings_tags.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_discovery.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_executive_assistant_extractor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_extractors.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_informational_extractor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_intercept_extractor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_template_extractor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_tier4_extractor.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/cucm/test_unity_shared_mailboxes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/conftest.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_advisory_to_execution_bridge.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_batch.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bridge_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_batch.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_config.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_constants.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_e2e.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_fallback.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_planner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_polling.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_bulk_serialization.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_cascade_and_retry.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_dect_handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_dect_planner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_dependency.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_device_settings_handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_device_settings_planner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_engine.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_engine_409_recovery.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_executive_assistant_handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_handlers_forwarding.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_handlers_workspace_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_hoteling_handlers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_phase12a_planner_fixes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_planner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_planner_forwarding.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_planner_settings_ops.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_planner_silent_skip_visibility.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_receptionist_handler.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_runtime.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_silent_failure_wave1.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_silent_failure_wave2a.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_silent_failure_wave2b.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_silent_failure_wave2c.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_silent_failure_wave3a.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_silent_failure_wave3b.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_voicemail_group_handler.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/execute/test_voicemail_group_planner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/export/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/export/test_csv_activation_codes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/export/test_deployment_plan.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/preflight/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/preflight/test_checks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/preflight/test_runner.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/conftest.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_appendix.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_appendix_selective.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_appendix_tier2p2.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_appendix_tier3.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_assembler.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_cli_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_dect_appendix.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_device_settings_score.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_e2e.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_executive.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_executive_selective.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_explainer.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_from_file.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_helpers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_score.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_tier4_appendix.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_user_diff.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/report/test_user_notice.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_cucm_cli.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_decision_cli.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_dect_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_device_settings_lossy_type.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_models.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_models_tier2p2.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_models_voicemail_group.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_pipeline_e2e.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_rate_limiter.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_state.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/test_store.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/conftest.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_advisor_routing_coverage.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_advisory_pattern_coverage.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_config_key_coverage.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_decision_type_coverage.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_default_auto_rules_coverage.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_recommendation_output_coverage.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_runbook_cites.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_runbook_cli_commands.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_runbook_links.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_runbook_parsability.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transferability/test_score_factor_display_names.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/analyzers/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/analyzers/test_each_analyzer.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/analyzers/test_layout_overflow.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/conftest.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_announcement_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_button_template_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_call_forwarding_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_call_settings_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_call_settings_mapper_intercept.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_css_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_dect_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_device_layout_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_device_layout_mapper_convertible.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_device_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_device_profile_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_device_settings_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_e911_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_executive_assistant_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_feature_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_feature_mapper_forwarding.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_feature_mapper_voicemail_gap.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_line_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_location_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_moh_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_monitoring_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_phase12a_feature_fixes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_receptionist_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_routing_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_snr_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_softkey_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_user_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_voicemail_enrichment.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_voicemail_group_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_voicemail_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_workspace_mapper.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/mappers/test_workspace_mapper_call_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_analysis_pipeline.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_classify_decisions.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_cpc_cross_ref.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_cross_decision_enrichment.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_cross_ref_phone_mirror.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_cross_ref_tier2p2.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_cross_reference.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_cucm_pattern.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_decision_merge.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_dect_classification.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_default_auto_rules_field_alignment.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_e164.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_engine.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_executive_assistant_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_intercept_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_normalize_phone_device_settings.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_normalizers.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_normalizers_executive.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_normalizers_intercept.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_normalizers_tier2p2.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_normalizers_voicemail_group.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_pattern_converter.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_phase12a_analyzer_routing_fixes.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_pipeline.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_pipeline_common_area.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_rules.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_selective_call_handling_analyzer.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_selective_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_shared_line_status.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_voicemail_group_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_voicemail_group_pipeline.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/migration/transform/test_workspace_call_settings_integration.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/conftest.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/test_analyze.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/test_checks.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/test_cli.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/test_collector.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/test_models.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tests/org_health/test_report.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/__init__.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/command_renderer.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/create_stress_test_db.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/expand_cucm_data.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/field_overrides.yaml +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/generate_commands.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/postman_parser.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/postman_spec_diff.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/spec_sync.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/update-specs.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/tools/webhook_receiver.py +0 -0
- {wxcli-1.3.0 → wxcli-1.4.0}/wxcli-dist/codex/agents-md-sections.md +0 -0
|
@@ -156,7 +156,7 @@ The query-live skill handles classification, domain routing, command execution,
|
|
|
156
156
|
Before asking the interview questions, check for an existing CUCM migration project:
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
wxcli cucm status
|
|
159
|
+
wxcli cucm status 2>/dev/null
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
**If the pipeline is at stage ANALYZED or later** (or a deployment plan exists at `docs/plans/*cucm-migration*`):
|
|
@@ -174,7 +174,7 @@ Walk them through the analysis pipeline conversationally. Do NOT tell them to ru
|
|
|
174
174
|
> "Let's start by setting up a migration project. What would you like to name it? (e.g., your company name or site name)"
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
|
-
wxcli cucm init
|
|
177
|
+
wxcli cucm init <name>
|
|
178
178
|
```
|
|
179
179
|
|
|
180
180
|
Before asking for credentials, explain what's needed:
|
|
@@ -670,7 +670,7 @@ Overwrite this file at each boundary — it is a cursor, not a log. The migratio
|
|
|
670
670
|
|
|
671
671
|
When spawned (regardless of what the prompt says):
|
|
672
672
|
1. Check for active project state:
|
|
673
|
-
- `wxcli cucm status
|
|
673
|
+
- `wxcli cucm status 2>/dev/null` for CUCM workflows
|
|
674
674
|
- `ls docs/plans/` for standard builds
|
|
675
675
|
2. Read `session-state.md` if it exists
|
|
676
676
|
3. Validate the prompt's claims against disk state (if the prompt says "pipeline is at ANALYZED" but `wxcli cucm status` says PLANNED, trust disk)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"env": {
|
|
3
|
+
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
|
|
4
|
+
},
|
|
5
|
+
"permissions": {
|
|
6
|
+
"allow": [
|
|
7
|
+
"Bash(wxcli:*)",
|
|
8
|
+
"Bash(which:*)",
|
|
9
|
+
"Bash(pip install -e:*)",
|
|
10
|
+
"Bash(pip3 install -e:*)",
|
|
11
|
+
"Bash(pip3.11:*)",
|
|
12
|
+
"Bash(python3.11:*)",
|
|
13
|
+
"Bash(PYTHONPATH=.:*)"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -3,7 +3,9 @@ name: audit-compliance
|
|
|
3
3
|
description: |
|
|
4
4
|
Pull and analyze Webex audit logs, security events, and compliance data.
|
|
5
5
|
Covers admin audit trail, security audit events, authorization review,
|
|
6
|
-
|
|
6
|
+
service app credential management, and data sources (the JWT-authenticated
|
|
7
|
+
endpoints service apps register to receive streamed Webex data).
|
|
8
|
+
Guides from query design through export.
|
|
7
9
|
NOT for: org health assessment (use org-health skill), CDR/call analytics (use reporting skill),
|
|
8
10
|
or license auditing (use manage-licensing skill).
|
|
9
11
|
allowed-tools: Read, Grep, Glob, Bash
|
|
@@ -21,6 +23,7 @@ If you cannot answer both, you skipped reading this skill. Go back and read it.
|
|
|
21
23
|
## Step 1: Load references
|
|
22
24
|
|
|
23
25
|
1. Read `docs/reference/admin-audit-security.md` for audit event APIs, security audit scopes, event categories, and date parameter conventions
|
|
26
|
+
2. For data source operations (Step 6f) only, read `docs/reference/admin-apps-data.md` § "Data Source Registration Flow" — skip this unless the user asks about data sources or streaming Webex data to a service app
|
|
24
27
|
|
|
25
28
|
**Mandatory --help verification:** Before constructing any wxcli command, run `wxcli <group> --help` to verify the subcommand exists, then `wxcli <group> <subcommand> --help` to verify the exact flags (e.g. `wxcli audit-events list --help` and `wxcli security-audit --help` — date/range parameter names are spec-generated, not guessable). Do NOT rely on examples in this skill or reference docs — the CLI is auto-generated and flag names may differ from what documentation suggests.
|
|
26
29
|
|
|
@@ -43,6 +46,7 @@ If this fails, stop and resolve authentication first (`wxcli configure`).
|
|
|
43
46
|
| Platform events (compliance) | `events` | Standard admin token | `--from` / `--to` | Full or read-only admin. Compliance officer role also works. |
|
|
44
47
|
| Authorizations review | `authorizations` | Standard admin token | N/A | Lists OAuth grants for users and the org. Full admin required for delete. |
|
|
45
48
|
| Service app tokens | `service-apps` | Admin + service app credentials | N/A | Requires `client-id`, `client-secret`, and `target-org-id`. |
|
|
49
|
+
| Data sources | `data-sources` | `spark-admin:datasource_read` / `_write` | N/A | **A full-admin PAT is not enough** — see the gotcha in Step 6f. `list-schemas` works without the scope; `list` returns 403. |
|
|
46
50
|
|
|
47
51
|
### Verification gate
|
|
48
52
|
|
|
@@ -84,6 +88,7 @@ Ask the user what they want to investigate. Present this decision matrix if they
|
|
|
84
88
|
| Review OAuth grants and integrations | Authorization audit | `authorizations` |
|
|
85
89
|
| Create/rotate service app credentials | Service app token | `service-apps` |
|
|
86
90
|
| List available audit event categories | Category reference | `audit-events` |
|
|
91
|
+
| Register/inspect where Webex streams data to a service app | Data source management | `data-sources` |
|
|
87
92
|
|
|
88
93
|
## Step 4: Check prerequisites
|
|
89
94
|
|
|
@@ -372,6 +377,66 @@ wxcli service-apps create APPLICATION_ID \
|
|
|
372
377
|
|
|
373
378
|
The returned token is short-lived. Store it immediately -- the secret is only shown once at creation time.
|
|
374
379
|
|
|
380
|
+
### 6f. Data sources (`data-sources`)
|
|
381
|
+
|
|
382
|
+
Use `wxcli data-sources` to manage where Webex **pushes** data to a service app. This is the outbound counterpart to the pull-based audit APIs above: instead of you querying events, you register an endpoint and Webex streams data to it, authenticated with a JWT that Webex mints from the parameters you supply.
|
|
383
|
+
|
|
384
|
+
A data source is always tied to a **schema**, which fixes the data type and transport. Discover schemas before registering anything — do not assume a schema exists for the data you want.
|
|
385
|
+
|
|
386
|
+
**Discover the schemas this org supports:**
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
# List schema IDs available to the org
|
|
390
|
+
wxcli data-sources list-schemas
|
|
391
|
+
|
|
392
|
+
# Inspect one schema — returns serviceType, protocol, appType, and a link to the
|
|
393
|
+
# schema definition on GitHub. Takes a SCHEMA_ID, not a data source ID.
|
|
394
|
+
wxcli data-sources show "523e1b7f-4693-47bc-b84e-a7b7a505fb0b"
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
Verified against a live org, the returned schemas were `audio_forking_schema` (gRPC), `VoiceVirtualAgent_WebSocket` (web-socket), and `VA_service_schema` (gRPC) — all `appType: serviceApp`. These are real-time media/AI streaming schemas, not audit or compliance event feeds. **If the user wants message, call, or admin event history, this is the wrong API — use `events`, `audit-events`, or `security-audit` (Steps 6a-6c).**
|
|
398
|
+
|
|
399
|
+
**Read registered data sources:**
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
# All data sources registered in the org
|
|
403
|
+
wxcli data-sources list
|
|
404
|
+
|
|
405
|
+
# One data source (takes a DATA_SOURCE_ID — note this is a different command
|
|
406
|
+
# from `show`, which takes a SCHEMA_ID)
|
|
407
|
+
wxcli data-sources show-data-sources "DATA_SOURCE_ID"
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
**Register a data source (write — show the plan first):**
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
wxcli data-sources create \
|
|
414
|
+
--schema-id "SCHEMA_ID_FROM_LIST_SCHEMAS" \
|
|
415
|
+
--url "https://your-endpoint.example.com/webex-data" \
|
|
416
|
+
--audience "your-service-app-name" \
|
|
417
|
+
--subject "data-source-purpose" \
|
|
418
|
+
--nonce "UNIQUE_NONCE_VALUE" \
|
|
419
|
+
--token-lifetime-minutes "1440"
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**Maintain and remove:**
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
# Pause a data source without deleting it. --status takes `active` or `disabled`;
|
|
426
|
+
# --error-message is what Control Hub displays while it is disabled.
|
|
427
|
+
wxcli data-sources update "DATA_SOURCE_ID" \
|
|
428
|
+
--status "disabled" \
|
|
429
|
+
--error-message "Paused for maintenance window"
|
|
430
|
+
|
|
431
|
+
# Re-enable
|
|
432
|
+
wxcli data-sources update "DATA_SOURCE_ID" --status "active"
|
|
433
|
+
|
|
434
|
+
# Delete permanently -- destructive, confirm with the user first
|
|
435
|
+
wxcli data-sources delete "DATA_SOURCE_ID" --force
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**Scope gotcha (verified live):** `data-sources list` returns **403 "missing required scopes"** even with a full-admin personal access token, while `data-sources list-schemas` succeeds with the same token. The data source APIs require `spark-admin:datasource_read` / `spark-admin:datasource_write`, which PATs do not carry. If you hit this 403, do not retry or assume the org has no data sources — the token is the problem. Use a service app or an OAuth integration with those scopes explicitly selected.
|
|
439
|
+
|
|
375
440
|
## Step 7: Verify
|
|
376
441
|
|
|
377
442
|
After executing the query, verify the results are correct and complete.
|
|
@@ -482,6 +547,9 @@ for auth in data:
|
|
|
482
547
|
9. **ISO 8601 datetime format required.** All date parameters expect ISO 8601 format: `2026-03-18T00:00:00.000Z`. Other formats return errors or unexpected results.
|
|
483
548
|
10. **Event categories — treat as case-sensitive.** Always run `wxcli audit-events list-event-categories` first (Step 4b) to discover the exact category names before filtering. Use exact values from the list output.
|
|
484
549
|
11. **`events list` resource types are not validated client-side.** Misspelled `--resource` values return empty result sets, not errors. Use the known resource types listed in Step 6c.
|
|
550
|
+
12. **`data-sources` needs its own scopes -- a full-admin PAT gets 403.** `spark-admin:datasource_read`/`_write` are not carried by personal access tokens. `list-schemas` works without them, so a passing `list-schemas` does NOT mean `list` will work. Do not read a 403 here as "the org has no data sources."
|
|
551
|
+
13. **`data-sources show` and `show-data-sources` take different IDs.** `show SCHEMA_ID` returns a schema definition. `show-data-sources DATA_SOURCE_ID` returns a registered data source. Passing the wrong ID type to either one fails.
|
|
552
|
+
14. **Data sources push data out; they are not an audit query API.** They stream real-time media/AI payloads (audio forking, voice virtual agent) to a service app endpoint. For event history use `events`, `audit-events`, or `security-audit` instead.
|
|
485
553
|
|
|
486
554
|
---
|
|
487
555
|
|
|
@@ -492,6 +560,8 @@ for auth in data:
|
|
|
492
560
|
| Standard admin token | Admin audit events (`wxcli audit-events`), platform events (`wxcli events`), authorizations (`wxcli authorizations`) |
|
|
493
561
|
| `audit:events_read` | Security audit events (`wxcli security-audit`) |
|
|
494
562
|
| Compliance officer role | Platform events with compliance-level access (`wxcli events`) |
|
|
563
|
+
| `spark-admin:datasource_read` | List and retrieve data sources (`wxcli data-sources list`, `show-data-sources`) |
|
|
564
|
+
| `spark-admin:datasource_write` | Register, update, delete data sources (`wxcli data-sources create`, `update`, `delete`) |
|
|
495
565
|
|
|
496
566
|
---
|
|
497
567
|
|
|
@@ -504,6 +574,8 @@ for auth in data:
|
|
|
504
574
|
| 403 on `authorizations list` | Insufficient admin privileges | Requires full admin, not read-only |
|
|
505
575
|
| Empty results from `audit-events list` | Date range too narrow or no admin activity | Widen the date range; verify org has admin activity in that period |
|
|
506
576
|
| 400 on date parameters | Wrong date format or wrong parameter names for the API | Use ISO 8601 (`2026-03-18T00:00:00.000Z`); check Step 2 table for which date params the API expects |
|
|
577
|
+
| 403 on `data-sources list` (but `list-schemas` works) | PAT does not carry `spark-admin:datasource_read` | Use a service app or OAuth integration with the datasource scopes selected — see Step 6f |
|
|
578
|
+
| 404 / ID error on `data-sources show` | Passed a data source ID to the schema command | `show` takes a SCHEMA_ID; use `show-data-sources DATA_SOURCE_ID` for a registered source |
|
|
507
579
|
|
|
508
580
|
---
|
|
509
581
|
|
{wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/configure-features/SKILL.md
RENAMED
|
@@ -3,8 +3,12 @@ name: configure-features
|
|
|
3
3
|
description: |
|
|
4
4
|
Create, modify, or delete Webex Calling call features using wxcli CLI commands: Auto Attendants, Call Queues,
|
|
5
5
|
Hunt Groups, Paging Groups, Call Park, Call Pickup, Voicemail Groups, and Calling schedules
|
|
6
|
-
(business hours, holidays).
|
|
7
|
-
|
|
6
|
+
(business hours, holidays). Also covers the announcement repository (greeting files) and
|
|
7
|
+
text-to-speech prompt generation, announcement playlists (music on hold) and playlist usage,
|
|
8
|
+
location call handling (internal dialing, location intercept, outgoing calling permissions,
|
|
9
|
+
access/authorization codes, outgoing digit patterns), caller reputation (spam/fraud call scoring),
|
|
10
|
+
and external voicemail MWI control. Guides the user from prerequisites through creation,
|
|
11
|
+
modification, deletion, and verification.
|
|
8
12
|
Use for: create, update, delete, remove, list, or troubleshoot any Calling call feature.
|
|
9
13
|
NOT for: Contact Center queues/teams/flows (use contact-center skill), Customer Assist/CX Essentials
|
|
10
14
|
(use customer-assist skill), or per-person call settings (use manage-call-settings skill).
|
|
@@ -26,6 +30,10 @@ If you cannot answer both, you skipped reading this skill. Go back and read it.
|
|
|
26
30
|
|
|
27
31
|
1. Read `docs/reference/call-features-major.md` for AA, CQ, HG data models and API signatures
|
|
28
32
|
2. Read `docs/reference/call-features-additional.md` for Paging, Call Park, Call Pickup, VM Groups, CX Essentials
|
|
33
|
+
3. Read `docs/reference/location-calling-media.md` for announcements, playlists, and access codes (only when working those groups)
|
|
34
|
+
4. Read `docs/reference/location-calling-core.md` for internal dialing and location-level call handling
|
|
35
|
+
5. Read `docs/reference/location-recording-advanced.md` for caller reputation
|
|
36
|
+
6. Read `docs/reference/call-control.md` §6 for external voicemail MWI
|
|
29
37
|
|
|
30
38
|
**Mandatory --help verification:** Before constructing any wxcli command, run `wxcli <group> --help` to verify the subcommand exists, then `wxcli <group> <subcommand> --help` to verify the exact flags (e.g. `wxcli call-queue create --help` reveals the kebab-cased flags like `--has-cx-essentials` and the `--json-body` shape you cannot guess from training data). Do NOT rely on examples in this skill or reference docs — the CLI is auto-generated and flag names may differ from what documentation suggests.
|
|
31
39
|
|
|
@@ -55,6 +63,12 @@ Ask the user which feature they want to create. Present this decision matrix if
|
|
|
55
63
|
| Let team members answer each other's ringing phones | **Call Pickup** |
|
|
56
64
|
| Shared voicemail box for a team or feature | **Voicemail Group** |
|
|
57
65
|
| Screen pop, recording, wrap-up, supervisors on a CQ | **Customer Assist** (use `customer-assist` skill) |
|
|
66
|
+
| Upload/manage greeting audio files used by AA/CQ; generate a spoken prompt from text | **Announcements** (`announcements`) |
|
|
67
|
+
| Group announcements into a music-on-hold rotation and assign to locations | **Announcement Playlists** (`announcement-playlists`) |
|
|
68
|
+
| See which queues/locations reference a playlist before changing or deleting it | **Playlist Usage** (`cq-playlists`) |
|
|
69
|
+
| Route unknown extensions off-net; block/allow outbound call types; access codes; digit patterns | **Location Call Handling** (`location-call-handling`) |
|
|
70
|
+
| Score inbound calls for spam/fraud via an external reputation provider | **Caller Reputation** (`caller-reputation`) |
|
|
71
|
+
| Turn a user's or workspace's voicemail waiting light on/off from an external voicemail system | **External Voicemail MWI** (`external-voicemail`) |
|
|
58
72
|
|
|
59
73
|
## Step 4: Check prerequisites
|
|
60
74
|
|
|
@@ -466,6 +480,143 @@ Optional flags: `--phone-number`, `--first-name`, `--last-name`.
|
|
|
466
480
|
|
|
467
481
|
---
|
|
468
482
|
|
|
483
|
+
### Announcements (greeting repository + text-to-speech)
|
|
484
|
+
|
|
485
|
+
The announcement repository holds the audio files that AAs, CQs, and playlists play to callers. Every announcement lives at **one of two scopes**: org-level (available to all locations) or location-level (that location only). Each scope has its own set of commands — this is the main source of confusion in this group.
|
|
486
|
+
|
|
487
|
+
| Scope | List | Create | Show details | Update | Delete | Repo usage |
|
|
488
|
+
|-------|------|--------|--------------|--------|--------|------------|
|
|
489
|
+
| Org | `list` | `create` | `show-announcements-config` | `update` | `delete` | `show` |
|
|
490
|
+
| Location | `list --location-id LOC_ID` | `create-announcements LOC_ID` | `show-announcements-locations LOC_ID ANN_ID` | `update-announcements LOC_ID ANN_ID` | `delete-announcements LOC_ID ANN_ID` | `show-usage-announcements LOC_ID` |
|
|
491
|
+
|
|
492
|
+
> **NAMING TRAP:** `wxcli announcements show` does **not** show an announcement — it returns org repository usage (space used, size limits). To fetch one announcement's details use `show-announcements-config ANNOUNCEMENT_ID` (org) or `show-announcements-locations LOCATION_ID ANNOUNCEMENT_ID` (location).
|
|
493
|
+
|
|
494
|
+
**Discovery — start here:**
|
|
495
|
+
|
|
496
|
+
```bash
|
|
497
|
+
# List org-level announcements
|
|
498
|
+
wxcli announcements list --output json
|
|
499
|
+
|
|
500
|
+
# List announcements for one location, or across all locations
|
|
501
|
+
wxcli announcements list --location-id LOCATION_ID --output json
|
|
502
|
+
wxcli announcements list --location-id all --output json
|
|
503
|
+
|
|
504
|
+
# Check repository space before uploading
|
|
505
|
+
wxcli announcements show --output json
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
`list` also filters with `--name`, `--file-name`, `--file-type`, `--media-file-type`, and sorts with `--order`.
|
|
509
|
+
|
|
510
|
+
**Create an announcement.** `create` (org) and `create-announcements LOCATION_ID` take a file **URI**, not a local file path — all four flags are required:
|
|
511
|
+
|
|
512
|
+
```bash
|
|
513
|
+
wxcli announcements create \
|
|
514
|
+
--name "Welcome Greeting" \
|
|
515
|
+
--file-uri "https://example.com/welcome.wav" \
|
|
516
|
+
--file-name "welcome.wav" \
|
|
517
|
+
--no-is-text-to-speech
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
Use `--is-text-to-speech` instead of `--no-is-text-to-speech` when registering a TTS-generated prompt.
|
|
521
|
+
|
|
522
|
+
**Delete (both scopes need `--force` for non-interactive runs):**
|
|
523
|
+
|
|
524
|
+
```bash
|
|
525
|
+
wxcli announcements delete ANNOUNCEMENT_ID --force
|
|
526
|
+
wxcli announcements delete-announcements LOCATION_ID ANNOUNCEMENT_ID --force
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
**Before deleting, check what references the announcement.** The details command returns `featureReferences` and `playlists` — an announcement in use by an AA/CQ/playlist should not be deleted blind:
|
|
530
|
+
|
|
531
|
+
```bash
|
|
532
|
+
wxcli announcements show-announcements-config ANNOUNCEMENT_ID --output json
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
#### Text-to-Speech prompts
|
|
536
|
+
|
|
537
|
+
Generate spoken audio from text instead of recording and uploading a WAV. The flow is: pick a voice → generate → poll status.
|
|
538
|
+
|
|
539
|
+
```bash
|
|
540
|
+
# 1. List available voices (get the voice ID and language code)
|
|
541
|
+
wxcli announcements tts-voices --output json
|
|
542
|
+
|
|
543
|
+
# 2. Generate the prompt
|
|
544
|
+
wxcli announcements tts-generate --voice VOICE_ID --text "Thank you for calling. Please hold." --language-code en_US
|
|
545
|
+
|
|
546
|
+
# 3. Check generation status (tts-status requires a ttsId)
|
|
547
|
+
wxcli announcements tts-status TTS_ID --output json
|
|
548
|
+
|
|
549
|
+
# 4. Check TTS quota/consumption for the org
|
|
550
|
+
wxcli announcements tts-usage --output json
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
All four flags on `tts-generate` (`--voice`, `--text`, `--language-code`, plus `--json-body`) are optional per `--help`, but voice and text are needed for a usable prompt. Use `tts-voices` to get a valid `--voice` ID and `--language-code` rather than guessing.
|
|
554
|
+
|
|
555
|
+
> **Unverified — confirm on first run:** the existence of a separate `tts-status TTS_ID` command implies generation is asynchronous and that `tts-generate` returns a `ttsId` to poll, but this flow has not been executed live. Capture the actual `tts-generate` output on first use and check the prompt reached a completed state before wiring it into a feature.
|
|
556
|
+
|
|
557
|
+
---
|
|
558
|
+
|
|
559
|
+
### Announcement Playlists (music on hold)
|
|
560
|
+
|
|
561
|
+
A playlist groups announcement files into a rotation (typically music on hold) and is then assigned to locations. **Playlists are org-level objects** — you create one playlist and assign it to many locations.
|
|
562
|
+
|
|
563
|
+
**Order of operations:** upload announcements first → create the playlist referencing those announcement IDs → assign the playlist to locations.
|
|
564
|
+
|
|
565
|
+
| Parameter | Required | Notes |
|
|
566
|
+
|-----------|:--------:|-------|
|
|
567
|
+
| Name | Yes | Unique name for the playlist |
|
|
568
|
+
| Announcement IDs | No (on create) | Array of announcement IDs — `--json-body` only, no flag exists |
|
|
569
|
+
| Location IDs | No | Assigned separately via `update-playlists` |
|
|
570
|
+
|
|
571
|
+
```bash
|
|
572
|
+
# List playlists in the org
|
|
573
|
+
wxcli announcement-playlists list --output json
|
|
574
|
+
|
|
575
|
+
# Get one playlist (includes its announcement list)
|
|
576
|
+
wxcli announcement-playlists show PLAYLIST_ID --output json
|
|
577
|
+
|
|
578
|
+
# Create a playlist — announcement IDs require --json-body
|
|
579
|
+
wxcli announcement-playlists create --json-body '{"name":"Lobby MOH","announcementIds":["ANN_ID_1","ANN_ID_2"]}'
|
|
580
|
+
|
|
581
|
+
# Rename (flag) or change its announcements (--json-body)
|
|
582
|
+
wxcli announcement-playlists update PLAYLIST_ID --name "Lobby MOH v2"
|
|
583
|
+
wxcli announcement-playlists update PLAYLIST_ID --json-body '{"name":"Lobby MOH v2","announcementIds":["ANN_ID_1"]}'
|
|
584
|
+
|
|
585
|
+
# Delete
|
|
586
|
+
wxcli announcement-playlists delete PLAYLIST_ID --force
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
**Location assignment:**
|
|
590
|
+
|
|
591
|
+
```bash
|
|
592
|
+
# Which locations use this playlist
|
|
593
|
+
wxcli announcement-playlists list-playlists PLAYLIST_ID --output json
|
|
594
|
+
|
|
595
|
+
# Assign locations — FULL REPLACE, not incremental
|
|
596
|
+
wxcli announcement-playlists update-playlists PLAYLIST_ID --json-body '{"locationIds":["LOC_ID_1","LOC_ID_2"]}'
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
> **WARNING (full replace):** `update-playlists` replaces the entire location assignment list. Always read the current list with `list-playlists` first and include every location you want to keep — omitting one un-assigns it.
|
|
600
|
+
|
|
601
|
+
> **NAMING TRAP:** `list-playlists` and `update-playlists` operate on a playlist's **locations**, not on playlists. To list playlists themselves, use plain `list`.
|
|
602
|
+
|
|
603
|
+
#### Playlist usage (`cq-playlists`)
|
|
604
|
+
|
|
605
|
+
Before changing or deleting a playlist, check what references it. This is the only command in the `cq-playlists` group.
|
|
606
|
+
|
|
607
|
+
```bash
|
|
608
|
+
# Everything referencing this playlist
|
|
609
|
+
wxcli cq-playlists list PLAYLIST_ID --output json
|
|
610
|
+
|
|
611
|
+
# Narrow to feature references (call queues, auto attendants) or location assignments
|
|
612
|
+
wxcli cq-playlists list PLAYLIST_ID --playlist-usage-type feature --output json
|
|
613
|
+
wxcli cq-playlists list PLAYLIST_ID --playlist-usage-type location --output json
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
`--playlist-usage-type` accepts only `feature` or `location`.
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
469
620
|
### CX Essentials (Customer Assist)
|
|
470
621
|
|
|
471
622
|
Customer Assist (formerly CX Essentials) has its own dedicated skill with full coverage of screen pop, wrap-up reasons, queue call recording, supervisors, and available agents.
|
|
@@ -476,6 +627,169 @@ The call queue itself is still created here (see Call Queue section above). Once
|
|
|
476
627
|
|
|
477
628
|
---
|
|
478
629
|
|
|
630
|
+
### Location Call Handling
|
|
631
|
+
|
|
632
|
+
19 commands covering location-wide call handling: where unknown extensions route, whether the location is intercepted, what call types users may dial out, and the access codes / digit patterns that override those rules. **Every command takes `LOCATION_ID` as the first positional argument.**
|
|
633
|
+
|
|
634
|
+
> **THIS GROUP HAS THE WORST NAMING IN THE CLI.** The generic verbs do not mean what they look like. Read this table before running anything:
|
|
635
|
+
>
|
|
636
|
+
> | Command | What it ACTUALLY does |
|
|
637
|
+
> |---------|----------------------|
|
|
638
|
+
> | `show` / `update` | Internal **dialing** config — not a generic show/update |
|
|
639
|
+
> | `list` | Gets the location's **outgoing permission** — returns one settings object, not a list |
|
|
640
|
+
> | `create` | Creates an **access code** |
|
|
641
|
+
> | `update-access-codes` | **DELETES** specific access codes (body is `deleteCodes`) — it does not update anything |
|
|
642
|
+
> | `delete` | **DELETES ALL** access codes for the location |
|
|
643
|
+
> | `delete-digit-patterns-outgoing-permission` | **DELETES ALL** digit patterns for the location |
|
|
644
|
+
> | `delete-digit-patterns-outgoing-permission-1` | Deletes **one** digit pattern (the `-1` suffix is the single-item variant) |
|
|
645
|
+
|
|
646
|
+
**Discovery — read current state before changing anything:**
|
|
647
|
+
|
|
648
|
+
```bash
|
|
649
|
+
wxcli location-call-handling show LOCATION_ID --output json # internal dialing
|
|
650
|
+
wxcli location-call-handling list LOCATION_ID --output json # outgoing permissions
|
|
651
|
+
wxcli location-call-handling show-intercept LOCATION_ID --output json # intercept
|
|
652
|
+
wxcli location-call-handling show-access-codes LOCATION_ID --output json # access codes
|
|
653
|
+
wxcli location-call-handling list-digit-patterns LOCATION_ID --output json # digit patterns
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
#### Internal dialing (`show`, `update`)
|
|
657
|
+
|
|
658
|
+
Controls whether calls to an unknown extension are routed off-net to a trunk or route group.
|
|
659
|
+
|
|
660
|
+
```bash
|
|
661
|
+
wxcli location-call-handling update LOCATION_ID --json-body '{"enableUnknownExtensionRoutePolicy":true,"unknownExtensionRouteIdentity":{"id":"ROUTE_GROUP_ID","type":"ROUTE_GROUP"}}'
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
`--enable-unknown-extension-route-policy` / `--no-enable-unknown-extension-route-policy` toggles the policy alone; setting the route target requires `--json-body`. The trunk or route group must already exist — create it with the `configure-routing` skill first.
|
|
665
|
+
|
|
666
|
+
#### Location intercept (`show-intercept`, `update-intercept`)
|
|
667
|
+
|
|
668
|
+
Overrides all inbound and/or outbound calling at the location, sending callers to an announcement instead. Used during cutovers and closures.
|
|
669
|
+
|
|
670
|
+
```bash
|
|
671
|
+
wxcli location-call-handling update-intercept LOCATION_ID --json-body '{"enabled":true,"incoming":{"type":"INTERCEPT_ALL","voicemailEnabled":true,"announcements":{"greeting":"DEFAULT"}},"outgoing":{"type":"INTERCEPT_ALL","transferEnabled":false}}'
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
`--enabled` / `--no-enabled` toggles intercept alone.
|
|
675
|
+
|
|
676
|
+
> **BLAST RADIUS:** Enabling intercept silently overrides call handling for the **whole location**. Confirm with the user before enabling.
|
|
677
|
+
|
|
678
|
+
#### Outgoing permissions (`list`, `update-outgoing-permission`)
|
|
679
|
+
|
|
680
|
+
Allow/block outbound call types (international, premium, toll-free, etc.) for the location.
|
|
681
|
+
|
|
682
|
+
```bash
|
|
683
|
+
wxcli location-call-handling update-outgoing-permission LOCATION_ID --json-body '{"callingPermissions":[{"callType":"INTERNATIONAL","action":"BLOCK","transferEnabled":false}]}'
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
#### Auto transfer numbers (`show-auto-transfer-numbers`, `update-auto-transfer-numbers`)
|
|
687
|
+
|
|
688
|
+
The destinations that outbound rules with a `TRANSFER_NUMBER_1/2/3` action send calls to.
|
|
689
|
+
|
|
690
|
+
```bash
|
|
691
|
+
wxcli location-call-handling show-auto-transfer-numbers LOCATION_ID --output json
|
|
692
|
+
wxcli location-call-handling update-auto-transfer-numbers LOCATION_ID --auto-transfer-number1 "+15551234567"
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
Flags: `--auto-transfer-number1`, `--auto-transfer-number2`, `--auto-transfer-number3`.
|
|
696
|
+
|
|
697
|
+
#### Access codes (`show-access-codes`, `create`, `update-access-codes`, `delete`)
|
|
698
|
+
|
|
699
|
+
Authorization codes that let a caller bypass an outgoing permission restriction.
|
|
700
|
+
|
|
701
|
+
```bash
|
|
702
|
+
# Add an access code
|
|
703
|
+
wxcli location-call-handling create LOCATION_ID --json-body '{"accessCodes":{"code":"123456","description":"Front desk override"}}'
|
|
704
|
+
|
|
705
|
+
# Delete SPECIFIC codes (yes, the command is named "update-access-codes")
|
|
706
|
+
wxcli location-call-handling update-access-codes LOCATION_ID --json-body '{"deleteCodes":["123456"]}'
|
|
707
|
+
|
|
708
|
+
# Delete ALL access codes at the location
|
|
709
|
+
wxcli location-call-handling delete LOCATION_ID --force
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
#### Digit patterns (6 commands)
|
|
713
|
+
|
|
714
|
+
Per-pattern outbound rules — match a dialed pattern and allow, block, require an auth code, or force a transfer number.
|
|
715
|
+
|
|
716
|
+
```bash
|
|
717
|
+
# Create a pattern (all four flags required)
|
|
718
|
+
wxcli location-call-handling create-digit-patterns LOCATION_ID \
|
|
719
|
+
--name "Block 900" --pattern "1900XXXXXXX" --action BLOCK --no-transfer-enabled
|
|
720
|
+
|
|
721
|
+
# Read one / update one
|
|
722
|
+
wxcli location-call-handling show-digit-patterns LOCATION_ID DIGIT_PATTERN_ID --output json
|
|
723
|
+
wxcli location-call-handling update-digit-patterns LOCATION_ID DIGIT_PATTERN_ID --action ALLOW
|
|
724
|
+
|
|
725
|
+
# Delete ONE pattern
|
|
726
|
+
wxcli location-call-handling delete-digit-patterns-outgoing-permission-1 LOCATION_ID DIGIT_PATTERN_ID --force
|
|
727
|
+
|
|
728
|
+
# Delete ALL patterns at the location
|
|
729
|
+
wxcli location-call-handling delete-digit-patterns-outgoing-permission LOCATION_ID --force
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
`--action` accepts: `ALLOW`, `BLOCK`, `AUTH_CODE`, `TRANSFER_NUMBER_1`, `TRANSFER_NUMBER_2`, `TRANSFER_NUMBER_3`.
|
|
733
|
+
|
|
734
|
+
> **Digit patterns here are permission rules (allow/block a dialed pattern), not digit manipulation.** To strip or prepend digits, use translation patterns in the `configure-routing` skill.
|
|
735
|
+
|
|
736
|
+
#### Example password (`generate-example-password`)
|
|
737
|
+
|
|
738
|
+
Generates a compliant example password for the location's SIP device credentials.
|
|
739
|
+
|
|
740
|
+
```bash
|
|
741
|
+
wxcli location-call-handling generate-example-password LOCATION_ID --json-body '{"generate":["sip"]}'
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
---
|
|
745
|
+
|
|
746
|
+
### Caller Reputation
|
|
747
|
+
|
|
748
|
+
Connects an external reputation provider that scores inbound calls for spam/fraud. **Org-level, not location-level** — there is no `LOCATION_ID` argument in this group.
|
|
749
|
+
|
|
750
|
+
```bash
|
|
751
|
+
# What providers are available
|
|
752
|
+
wxcli caller-reputation list --output json
|
|
753
|
+
|
|
754
|
+
# Current service settings and connection status
|
|
755
|
+
wxcli caller-reputation show --output json
|
|
756
|
+
wxcli caller-reputation show-status --output json
|
|
757
|
+
|
|
758
|
+
# Enable a provider and set scoring thresholds
|
|
759
|
+
wxcli caller-reputation update --enabled --id PROVIDER_ID --name "Provider Name" \
|
|
760
|
+
--client-id CLIENT_ID --client-secret CLIENT_SECRET \
|
|
761
|
+
--call-block-score-threshold "80" --call-allow-score-threshold "20"
|
|
762
|
+
|
|
763
|
+
# Recover a provider locked out after repeated auth failures
|
|
764
|
+
wxcli caller-reputation unlock-caller-reputation --id PROVIDER_ID
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
**Gotchas (both confirmed in `--help`):**
|
|
768
|
+
- **Score thresholds are strings, not integers** — `--call-block-score-threshold "80"`. Quote them.
|
|
769
|
+
- **This group uses `--organization-id`, not the usual `--orgId`/`orgId` injection.** Every command accepts `--organization-id`; omit it to use the token's own org.
|
|
770
|
+
- `show-status` returns provider state: `NOT_CONNECTED`, `CONNECTING`, `CONNECTED`, `ACTIVE`, `EXPIRED`, `AUTH_FAILED`, `PROVIDER_DISABLED`. An `AUTH_FAILED` or `EXPIRED` provider is why scoring silently stops.
|
|
771
|
+
- `client_secret` is write-only — it is never returned by `show`.
|
|
772
|
+
|
|
773
|
+
---
|
|
774
|
+
|
|
775
|
+
### External Voicemail (MWI)
|
|
776
|
+
|
|
777
|
+
One command. Turns the message-waiting indicator (the voicemail light/badge) on or off for a person or workspace — used when an **external** voicemail system, not Webex voicemail, holds the messages.
|
|
778
|
+
|
|
779
|
+
```bash
|
|
780
|
+
# Light the voicemail indicator
|
|
781
|
+
wxcli external-voicemail create --id PERSON_OR_WORKSPACE_ID --action SET
|
|
782
|
+
|
|
783
|
+
# Turn it off
|
|
784
|
+
wxcli external-voicemail create --id PERSON_OR_WORKSPACE_ID --action CLEAR
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
`--id` is required; `--action` accepts `SET` or `CLEAR` only.
|
|
788
|
+
|
|
789
|
+
> **Requires a Service App token** with the `spark-admin:calls_write` scope — an ordinary admin token or PAT will not work here. See `docs/reference/call-control.md` §6. This command only drives the indicator; it does not create or store voicemail.
|
|
790
|
+
|
|
791
|
+
---
|
|
792
|
+
|
|
479
793
|
### Deployment Plan Template
|
|
480
794
|
|
|
481
795
|
Before executing any commands, present the full plan to the user:
|
|
@@ -554,8 +868,28 @@ wxcli call-pickup show LOCATION_ID PICKUP_ID --output json
|
|
|
554
868
|
|
|
555
869
|
# Example for voicemail group
|
|
556
870
|
wxcli location-voicemail show-voicemail-groups LOCATION_ID VMG_ID --output json
|
|
871
|
+
|
|
872
|
+
# Example for announcement (org-level vs location-level)
|
|
873
|
+
wxcli announcements show-announcements-config ANNOUNCEMENT_ID --output json
|
|
874
|
+
wxcli announcements show-announcements-locations LOCATION_ID ANNOUNCEMENT_ID --output json
|
|
875
|
+
|
|
876
|
+
# Example for announcement playlist (plus its location assignments)
|
|
877
|
+
wxcli announcement-playlists show PLAYLIST_ID --output json
|
|
878
|
+
wxcli announcement-playlists list-playlists PLAYLIST_ID --output json
|
|
879
|
+
|
|
880
|
+
# Example for location call handling (each theme reads back separately)
|
|
881
|
+
wxcli location-call-handling show LOCATION_ID --output json
|
|
882
|
+
wxcli location-call-handling list LOCATION_ID --output json
|
|
883
|
+
wxcli location-call-handling show-access-codes LOCATION_ID --output json
|
|
884
|
+
wxcli location-call-handling list-digit-patterns LOCATION_ID --output json
|
|
885
|
+
|
|
886
|
+
# Example for caller reputation (settings + live connection state)
|
|
887
|
+
wxcli caller-reputation show --output json
|
|
888
|
+
wxcli caller-reputation show-status --output json
|
|
557
889
|
```
|
|
558
890
|
|
|
891
|
+
> **External voicemail MWI has no read-back command** — the `external-voicemail` group only has `create`. Verify by checking the physical device indicator, not via API.
|
|
892
|
+
|
|
559
893
|
## Step 8: Report results
|
|
560
894
|
|
|
561
895
|
Present the creation results:
|
|
@@ -612,6 +946,16 @@ Next steps:
|
|
|
612
946
|
- Routing (trunks, dial plans, PSTN) → `configure-routing` skill
|
|
613
947
|
- Device provisioning → `manage-devices` skill
|
|
614
948
|
- Location teardown → `provision-calling` skill (Operation D: Teardown)
|
|
949
|
+
21. **`location-call-handling` verbs lie — never infer meaning from the command name.** `show`/`update` are internal dialing; `list` returns outgoing permissions (a settings object, not a list); `create` makes an access code; `update-access-codes` **deletes** codes; `delete` wipes **all** access codes. Re-read the trap table in the Location Call Handling section before running any of them.
|
|
950
|
+
22. **Three commands in `location-call-handling` delete everything at a location** — `delete` (all access codes), `delete-digit-patterns-outgoing-permission` (all digit patterns), and enabling `update-intercept` (overrides all call handling). The single-item digit pattern delete is the `-1` suffixed variant. Confirm scope with the user first.
|
|
951
|
+
23. **`announcements show` is repository usage, not announcement details.** Use `show-announcements-config ANN_ID` (org) or `show-announcements-locations LOC_ID ANN_ID` (location).
|
|
952
|
+
24. **Announcements are scoped org-level OR location-level, with different commands for each.** Location-level commands are the `*-announcements`/`*-announcements-locations` variants and take `LOCATION_ID` first. Passing a location announcement ID to an org command returns 404.
|
|
953
|
+
25. **Check references before deleting an announcement or playlist.** `wxcli announcements show-announcements-config ANN_ID -o json` returns `featureReferences` and `playlists`; `wxcli cq-playlists list PLAYLIST_ID -o json` shows which queues/locations use a playlist. Deleting an in-use file silently breaks the AA/CQ that plays it.
|
|
954
|
+
26. **Playlist location assignment is a full replace.** `announcement-playlists update-playlists` overwrites the whole list — read `list-playlists PLAYLIST_ID` first and re-include every location you want to keep.
|
|
955
|
+
27. **`caller-reputation` is org-level and uses `--organization-id`**, not the standard orgId injection. Score thresholds are **strings** — quote them (`--call-block-score-threshold "80"`).
|
|
956
|
+
28. **`external-voicemail create` requires a Service App token** with `spark-admin:calls_write`. Admin tokens and PATs fail. It has no read-back command.
|
|
957
|
+
29. **Announcement `create` takes a file URI, not a local path.** `--file-uri`, `--file-name`, `--name`, and the `--is-text-to-speech`/`--no-is-text-to-speech` flag are all required. For a spoken prompt without an audio file, use the `tts-generate` flow instead.
|
|
958
|
+
30. **The TTS flow is not live-verified.** The `tts-generate` → `tts-status` sequence is inferred from the command surface, not from an executed run. Capture the real `tts-generate` output on first use, confirm the prompt completed, and correct this skill if the flow differs.
|
|
615
959
|
|
|
616
960
|
---
|
|
617
961
|
|
{wxcli-1.3.0/src/wxcli/_playbook/.codex → wxcli-1.4.0/.claude}/skills/configure-routing/SKILL.md
RENAMED
|
@@ -375,11 +375,10 @@ wxcli call-routing create-translation-patterns-call-routing \
|
|
|
375
375
|
**Create location-level translation pattern:**
|
|
376
376
|
|
|
377
377
|
```bash
|
|
378
|
-
wxcli call-routing create-translation-patterns-call-routing-1 \
|
|
378
|
+
wxcli call-routing create-translation-patterns-call-routing-1 LOCATION_ID \
|
|
379
379
|
--name "Local-Rewrite" \
|
|
380
380
|
--matching-pattern "+1919555XXXX" \
|
|
381
|
-
--replacement-pattern "+19196660000"
|
|
382
|
-
--location-id LOCATION_ID
|
|
381
|
+
--replacement-pattern "+19196660000"
|
|
383
382
|
```
|
|
384
383
|
|
|
385
384
|
**View translation patterns:**
|
|
@@ -392,7 +391,7 @@ wxcli call-routing list-translation-patterns --output json
|
|
|
392
391
|
wxcli call-routing show-translation-patterns-call-routing PATTERN_ID --output json
|
|
393
392
|
|
|
394
393
|
# Show a specific location-level pattern
|
|
395
|
-
wxcli call-routing show-translation-patterns-call-routing-1 PATTERN_ID --
|
|
394
|
+
wxcli call-routing show-translation-patterns-call-routing-1 LOCATION_ID PATTERN_ID --output json
|
|
396
395
|
```
|
|
397
396
|
|
|
398
397
|
**Delete translation patterns:**
|
|
@@ -402,7 +401,7 @@ wxcli call-routing show-translation-patterns-call-routing-1 PATTERN_ID --locatio
|
|
|
402
401
|
wxcli call-routing delete-translation-patterns-call-routing PATTERN_ID
|
|
403
402
|
|
|
404
403
|
# Location-level
|
|
405
|
-
wxcli call-routing delete-translation-patterns-call-routing-1 PATTERN_ID
|
|
404
|
+
wxcli call-routing delete-translation-patterns-call-routing-1 LOCATION_ID PATTERN_ID
|
|
406
405
|
```
|
|
407
406
|
|
|
408
407
|
### 4j. Component CLI reference -- PSTN Connection (per-location)
|
|
@@ -42,7 +42,7 @@ These are the only operator-facing docs for this migration tool. If the operator
|
|
|
42
42
|
|
|
43
43
|
1. **Check project exists and pipeline is complete:**
|
|
44
44
|
```bash
|
|
45
|
-
wxcli cucm status
|
|
45
|
+
wxcli cucm status
|
|
46
46
|
```
|
|
47
47
|
Verify stage is `ANALYZED` or later. If not, tell the admin which pipeline stages remain.
|
|
48
48
|
|