From 9340e7385a9e1095d4011e97312e9d6cda7c45b0 Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Sat, 25 Apr 2026 20:34:57 -0600 Subject: [PATCH] Post-initial polish: voicemail SQL fix, README, .env in local ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - route_plan.py: drop `NULL AS context` from voicemail_pilot_css query. Informix rejected it as a syntax error; the column wasn't carrying any signal anyway, so the simpler SELECT works and matches the other reference-point queries. - README.md: tool table now covers all 16 tools (route_device_pool_route_groups, route_devices_using_css, route_filters were missing). - .gitignore: explicitly ignore .env. Already covered by ~/.gitignore_global, but worth being self-contained — anyone cloning without the global ignore shouldn't be one stray `git add` away from leaking AXL credentials. --- .gitignore | 1 + README.md | 13 ++++++++----- src/mcp_cucm_axl/route_plan.py | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 2765df9..a1c7a68 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ dist/ build/ *.sqlite *.sqlite-journal +.env .env.local # Cisco AXL Toolkit — vendor-licensed, do not redistribute diff --git a/README.md b/README.md index b4847d1..e9deb55 100644 --- a/README.md +++ b/README.md @@ -96,13 +96,16 @@ opens this directory. | Tool | Purpose | |---|---| -| `route_partitions()` | All partitions with member counts | +| `route_partitions()` | All partitions with pattern + CSS-member counts | | `route_calling_search_spaces(name=None)` | CSS list with ordered partitions | -| `route_patterns(kind=None, partition=None, filter=None)` | Route Plan Report | -| `route_inspect_pattern(pattern, partition=None)` | One-pattern deep dive + reverse CSS lookup | -| `route_lists_and_groups(name=None)` | Route list → route group → device chain | -| `route_translation_chain(number, css_name=None)` | "What patterns might match this number?" (literal/prefix only) | +| `route_patterns(kind=None, partition=None, filter=None)` | Route Plan Report — patterns + transformations | +| `route_inspect_pattern(pattern, partition=None)` | Deep dive: transforms, route filter, reachable-from CSS, full destination chain (route list → groups → gateways) | +| `route_lists_and_groups(name=None)` | Route list → route group → gateway chain (annotates Local Route Group placeholders) | +| `route_translation_chain(number, css_name=None)` | Wildcard-aware pattern matcher: evaluates X / ! / [0-9] / @ / \\+ against the number and returns matches sorted by specificity | | `route_digit_discard_instructions()` | DDI catalog | +| `route_device_pool_route_groups(device_pool_name=None)` | How each device pool resolves Local Route Group placeholders to actual gateway-bearing groups | +| `route_devices_using_css(css_name)` | Impact analysis: every reference to a CSS across line CFA/CFB/CFNA/CFUR/translation/MWI/shared, device-level CSSs, voicemail pilots, route lists | +| `route_filters(name=None)` | Route filter clauses + member rules (composed with @-pattern routes) | ## Prompts diff --git a/src/mcp_cucm_axl/route_plan.py b/src/mcp_cucm_axl/route_plan.py index 5f97992..02c2bdf 100644 --- a/src/mcp_cucm_axl/route_plan.py +++ b/src/mcp_cucm_axl/route_plan.py @@ -502,7 +502,7 @@ _CSS_REFERENCE_QUERIES: dict[str, dict] = { "voicemail_pilot_css": { "table": "voicemessagingpilot", "column": "fkcallingsearchspace", "sql": """ - SELECT directorynumber AS name, NULL AS context, description + SELECT directorynumber AS name, description FROM voicemessagingpilot WHERE fkcallingsearchspace = '{pkid}' """,