The Admin → VDNs screen is the CRUD surface for these rows. Skill, hotline, and
vector are each pickers over the other admin objects, and each is clearable —
all three are nullable on a VDN.
What a hotline is and how calls roll up to it
A hotline is a reporting bucket, not a routing target. It has an id, acode, and a name, and it exists independently of the VDN — the VDNs screen
only binds one via default_hotline_id.
The distinction matters when you lay out your VDN estate:
- The default skill decides where the call goes.
- The reporting hotline decides which bucket the call is counted in.
default_hotline_id is optional. A VDN with no hotline bound shows — in the
Reports to column and contributes no hotline rollup.
The table resolves skill, hotline, and vector ids to code · name labels
client-side, from the adminSkills.list, adminHotlines.list, and
adminVectors.list queries the screen issues alongside the VDN page. An id that
does not resolve to a row in those lookups renders as a dash rather than as a
raw id.
VDN extension numbers: Avaya parity vs. routing-only
Theext column exists for operators migrating from Avaya platforms, where a
VDN is an extension on the switch. Carrying the original number across means
your runbooks, wallboards, and spreadsheets keep referring to the same VDN by
the same digits.
Two things follow from how the screen treats the field:
extis optional. Leave it blank for a routing-only VDN — one that exists purely as a named entry point and a reporting grouping, with no legacy number attached. Blankextrenders as—.extis validated as a number, not as a dial plan. On save, a blank value is stored asnull; anything else must parse as a finite, non-negative number, or the form rejects it withExtension must be a non-negative integer or blank.
Vector-less VDNs and direct-to-skill routing
The Vector picker is optional, and its placeholder states the fallback:— direct-to-skill (no vector) —.
- With a vector, the VDN hands the call to the multi-step program authored on the Vectors screen. The table shows the vector’s code as a purple chip.
- Without a vector, the VDN routes direct-to-skill: the call goes to the
VDN’s default skill with no intermediate program. The Vector column shows
direct.
default_skill_id; the default skill remains the VDN’s
“if no special routing fires” destination, per the field’s own hint.
Deactivating vs. deleting a VDN
These are different operations with different reversibility. Deactivate — uncheck Active in the edit drawer and save.active is
only editable in edit mode (new VDNs are created active), and it is sent as part
of the update patch. An inactive VDN keeps its row, its code, its bindings, and
its tags; it is simply hidden from the default list view. Turn on Include
inactive in the filter bar to see it again, and re-check Active to bring
it back.
Delete — the Delete button in the edit drawer calls
adminVdns.remove. The screen confirms first with
Delete VDN "<code>"? This cannot be undone. Prefer deactivation for a VDN that
has historical traffic: deleting removes the row that reporting labels resolve
against.
Where VDN grouping shows up in reporting
VDNs are a reporting dimension as well as a routing object. Two places consume them:- The Sankey at
/ops/vdnaggregates calls grouped by VDN. The VDN’s Name is the label that appears there, which is why the field’s hint calls it the label “shown in the Sankey + call detail.” Renaming a VDN renames its node. - Call detail shows the VDN a call entered through, again by name.
default_hotline_id groups entry points into the bucket you report on. Pick
VDN name values that read well as graph nodes, and pick code values you are
willing to keep stable, since the code is the identifier operators will quote.
Tagging VDNs
Each row has a Tags cell backed by the shared tag system under thedim_vdn resource kind. The screen resolves tags for the whole visible page in
one bulk call and the cell itself only writes, so tag edits refresh the page’s
tag state rather than the VDN list. Clicking a tag cell does not open the edit
drawer.
Tags are an additional grouping axis alongside hotlines — useful when you want a
cross-cutting label (a migration wave, an owning team) that does not belong in
the reporting rollup.
Search and pagination
The filter bar drives theadminVdns.list query:
The header subtitle reports the total VDN count returned by the query, and the
pager derives its page count from that same total.
Procedures used by this screen
code and name are required — the Save button stays disabled until both are
non-empty. description is optional and is stored as null when blank. After a
successful create, update, or delete the screen invalidates the VDN list so the
table reflects the change.