.. _number-inventory-flexibility:
Number Inventory Flexibility and Description Customization
----------------------------------------------------------
.. _21.3-PB3|EKB-12968:
Overview
...........
When number inventory changes are made while using VOSS Automate features,
users are provided with a mechanism to define the logic for the dynamic
population of a set of number inventory fields.
To make use of the mechanism, the following elements should be noted:
* Only a subset of number inventory fields can be managed.
* The mechanism provided includes:
* A Configuration Template (CFT) called ``IniUpdateCustomCFT``
* A set of macros to manage the ``description`` field. These
are comprised of a "caller" macro entered into the CFT,
which in turn references a set of macros that apply
in accordance with the specified feature associated with
the macro.
* If the "caller" macro is added to the CFT, a set of default values
are added to the ``description`` field when the associated feature
is used.
* Users therefore have a choice to either modify the "caller" macro
representing the feature use logic, or the individual macros
called by it.
Managed and Non-Managed Number Inventory Fields
...............................................
Number Inventory data fields are of 2 types:
* VOSS managed number inventory fields.
The values of these fields are derived from workflows and cannot be customized.
Managed number inventory fields are:
::
status
usage
e164number
vendor
internal_number_type
reservation_notes
* VOSS non-managed number inventory fields.
The values of these fields are updated when a number is marked used, available, etc.
By default, when a number is marked as available, the non-managed ``extra-`` fields
retain their value and are not cleared. Customers have options available to manage these with
a provided Configuration Template (CFT) called: ``IniUpdateCustomCFT``.
.. raw:: html
For details, see Persisting and Modifying Values in Extra Fields.
.. raw:: latex
For details, see the topic *Persisting and Modifying Values in Extra Fields* in the Core Feature Guide.
Non-managed number inventory fields are all those fields that are not included in the Managed number inventory fields.
Number Inventory Description Field Customization
.................................................
The ``description`` field in the number inventory is cleared when a number is marked as available.
However, a "caller" macro is available that can be referenced in the provided Configuration
Template: ``IniUpdateCustomCFT``.
To use the CFT and macros, clone ``IniUpdateCustomCFT`` from ``sys`` to the required hierarchy
and set ``description`` field to:
::
{{ macro.INI_Description_From_Caller_Workflow }}
Using this "caller" macro allows customers to determine how to
populate the ``description`` field for different scenarios
(identified by ``pwf.ini_caller`` values in the macro) -
number assignment, unassignment, the usage context (e.g users, phone, Auto Attendant,
Call queue, etc). The "caller" macro references a set of individual macros that apply
for various usage scenarios. These macros can in turn be customized to allow for
a required update of the number inventory.
The default ``description`` values of these macros, as well as the scenario and
macro name are listed below:
Named macro: ``INI_Description_From_Caller_Workflow`` defines a macro per context (``pwf.ini_caller``):
========================== ==================================== =================================
``pwf.ini_caller`` Feature Macro Name
========================== ==================================== =================================
INILineAdd Used by QuickSubscriber and AddPhone INI_Description_INILineAdd
UserMoveApps Used by QuickSubscriber INI_Description_UserMoveApps
Cisco_CallHandler Used by CallHandler INI_Description_Cisco_CallHandler
Cisco_CPUG Used by CallPickupGroups INI_Description_Cisco_CPUG
Cisco_HG Used by HuntGroups INI_Description_Cisco_HG
Cisco_SubMove Used by SubscriberMove INI_Description_Cisco_SubMove
Cisco_ChangeLine Used by Subscriber Change Line INI_Description_Cisco_ChangeLine
Cisco_Reassign Used by Reassing Services INI_Description_Cisco_Reassign
Cisco_CallPark INI_Description_Cisco_CallPark
Cisco_CTIRP INI_Description_Cisco_CTIRP
Cisco_MeetMe INI_Description_Cisco_MeetMe
Microsoft_QAS INI_Description_Microsoft_QAS
Microsoft_QAS_Hybrid_Only INI_Description_Microsoft_QAS
Hybrid_AddSnr INI_Description_Hybrid_AddSnr
Hybrid_AddMVS INI_Description_Hybrid_AddMVS
========================== ==================================== =================================
.. tabularcolumns:: |p{6cm}|p{11cm}|
================================= ============================================================================================================
Macro Name Default Macro Description Value
================================= ============================================================================================================
INI_Description_INILineAdd input.description, else macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS
INI_Description_UserMoveApps input.description, else macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS
INI_Description_Cisco_CallHandler input.DisplayName
INI_Description_Cisco_CPUG input.description
INI_Description_Cisco_HG input.description
INI_Description_Cisco_SubMove pwf.description_Display_Name
INI_Description_Cisco_ChangeLine data.User.display_name | username:input.username
INI_Description_Cisco_Reassign macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS
INI_Description_Cisco_CallPark pwf.description
INI_Description_Cisco_CTIRP input.description
INI_Description_Cisco_MeetMe input.description
INI_Description_Microsoft_QAS if pwf.workflow_source = MS_TEAMS input.FirstName and input.LastName else input.first_name input.last_name
INI_Description_Hybrid_AddSnr input.first_name input.last_name
INI_Description_Hybrid_AddMVSa pwf.dataUserObject.first_name pwf.dataUserObject.last_name
================================= ============================================================================================================
Macro Details
..............
Caller Macro
''''''''''''''
Clone the caller macro to your hierarchy and modify if needed.
The called macro references associated with a feature can be substituted with custom macros.
* **name**: ``INI_Description_From_Caller_Workflow``
* **description**: "Calculation of INI description field using pwf.ini_caller value to identify required macro. For use by INIUpdateCustomCFT"
**macro** (Line breaks added for readability):
::
"macro": "(( pwf.ini_caller == INILineAdd )) <{{ macro.INI_Description_INILineAdd }}>
(( pwf.ini_caller == UserMoveApps )) <{{ macro.INI_Description_UserMoveApps }}>
(( pwf.ini_caller == Cisco_CallHandler )) <{{ macro.INI_Description_Cisco_CallHandler }}>
(( pwf.ini_caller == Cisco_CPUG )) <{{ macro.INI_Description_Cisco_CPUG }}>
(( pwf.ini_caller == Cisco_HG )) <{{ macro.INI_Description_Cisco_HG }}>
(( pwf.ini_caller == Cisco_SubMove )) <{{ macro.INI_Description_Cisco_SubMove }}>
(( pwf.ini_caller == Cisco_ChangeLine )) <{{ macro.INI_Description_Cisco_ChangeLine }}>
(( pwf.ini_caller == Cisco_Reassign )) <{{ macro.INI_Description_Cisco_Reassign }}>
(( pwf.ini_caller == Cisco_CallPark )) <{{ macro.INI_Description_Cisco_CallPark }}>
(( pwf.ini_caller == Cisco_CTIRP )) <{{ macro.INI_Description_Cisco_CTIRP }}>
(( pwf.ini_caller == Cisco_MeetMe )) <{{ macro.INI_Description_Cisco_MeetMe }}>
(( pwf.ini_caller == Microsoft_QAS )) <{{ macro.INI_Description_Microsoft_QAS }}>
(( pwf.ini_caller == Microsoft_QAS_Hybrid_Only )) <{{ macro.INI_Description_Microsoft_QAS }}>
(( pwf.ini_caller == Hybrid_AddSnr )) <{{ macro.INI_Description_Hybrid_AddSnr }}>
(( pwf.ini_caller == Hybrid_AddMVS )) <{{ macro.INI_Description_Hybrid_AddMVS }}>
<{{ fn.drop }}>"
Called Macros
''''''''''''''
Clone the called macro to your hierarchy and modify if needed.
The custom macro is then called for the associated feature by the caller macro.
.. raw:: html
See:
INI_Description_Cisco_CallHandler
INI_Description_Cisco_CallPark
INI_Description_Cisco_ChangeLine
INI_Description_Cisco_CPUG
INI_Description_Cisco_CTIRP
INI_Description_Cisco_HG
INI_Description_Cisco_MeetMe
INI_Description_Cisco_Reassign
INI_Description_Cisco_SubMove
INI_Description_From_Caller_Workflow
INI_Description_Hybrid_AddMVS
INI_Description_Hybrid_AddSnr
INI_Description_INILineAdd
INI_Description_Microsoft_QAS
INI_Description_UserMoveApps
.. raw:: latex
For macro details, refer to the Named Macro Reference HTML document for your release on the documentation portal.
.. Macros
.. ..........
..
..
..
.. ::
..
..
.. "macro": "{{ fn.false }}",
.. "name": "global_setting_include_ini_description",
.. "description": "Macro to include the INI description in all fn.get_lines dropdowns."
..
..
.. "macro": "(( fn.is_none_or_empty input.description == fn.false )) <{{ input.description}}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_HG",
.. "description": "Configurable setting of description field for Hunt Group Relation - used by HuntGroupRelAdd PWF"
..
..
.. "macro": "(( fn.is_none_or_empty pwf.description == fn.false )) <{{ pwf.description }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_CTIRP",
.. "description": "Configurable setting of description field for CTI Route Points - used by HcsCtiRoutePointRELAddPWF and HcsCtiRoutePointRELUpdatePWF"
..
..
.. "macro": "(( fn.is_none_or_empty macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS == fn.false )) <{{ macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_Reassign",
.. "description": "Configurable setting of description field for Reassign User Services - used by ReassignServicesUpdatePWF"
..
..
.. "macro": "((fn.drop }}",
.. "name": "INI_Description_Microsoft_QAS",
.. "description": "Configurable setting of description field for Microsoft QAS - currently not used"
..
..
.. "macro": "(( fn.is_none_or_empty input.description == fn.false )) <{{ input.description}}> (( fn.is_none_or_empty macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS == fn.false )) <{{ macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS }}> (( fn.is_none_or_empty input.email == fn.false )) <{{ input.email }}><{{ fn.null }}>",
.. "name": "INI_Description_UserMoveApps",
.. "description": "Configurable setting of description field for QuickSubscriber - used by UserMoveApps pwf"
..
..
.. "macro": "(( fn.is_none_or_empty input.DisplayName == fn.false )) <{{ input.DisplayName }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_CallHandler",
.. "description": "Configurable setting of description field for Add Relation Call Handler - used by both Ch_AddRouteToCucmAndCucxPWF and Ch_UpdateRouteOnCucmAndCucxPWF"
..
..
.. "macro": "(( pwf.ini_caller == INILineAdd )) <{{ macro.INI_Description_INILineAdd }}> (( pwf.ini_caller == UserMoveApps )) <{{ macro.INI_Description_UserMoveApps }}> (( pwf.ini_caller == Cisco_CallHandler )) <{{ macro.INI_Description_Cisco_CallHandler }}> (( pwf.ini_caller == Cisco_CPUG )) <{{ macro.INI_Description_Cisco_CPUG }}> (( pwf.ini_caller == Cisco_HG )) <{{ macro.INI_Description_Cisco_HG }}> (( pwf.ini_caller == Cisco_SubMove )) <{{ macro.INI_Description_Cisco_SubMove }}> (( pwf.ini_caller == Cisco_ChangeLine )) <{{ macro.INI_Description_Cisco_ChangeLine }}> (( pwf.ini_caller == Cisco_Reassign )) <{{ macro.INI_Description_Cisco_Reassign }}> (( pwf.ini_caller == Cisco_CallPark )) <{{ macro.INI_Description_Cisco_CallPark }}> (( pwf.ini_caller == Cisco_CTIRP )) <{{ macro.INI_Description_Cisco_CTIRP }}> (( pwf.ini_caller == Cisco_MeetMe )) <{{ macro.INI_Description_Cisco_MeetMe }}> (( pwf.ini_caller == Microsoft_QAS )) <{{ macro.INI_Description_Microsoft_QAS }}> <{{ fn.drop }}>",
.. "name": "INI_Description_From_Caller_Workflow",
.. "description": "Calculation of INI description field using pwf.ini_caller value to identify required macro. For use by INIUpdateCustomCFT"
..
..
.. "macro": "(( fn.is_none_or_empty input.description == fn.false )) <{{ input.description}}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_CPUG",
.. "description": "Configurable setting of description field for CallPickupGroup Relation - used by both CallPickUpGroupAdd and CallPickupGroupMod PWF"
..
..
.. "macro": "(( fn.is_none_or_empty input.description == fn.false )) <{{ input.description}}> (( fn.is_none_or_empty macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS == fn.false )) <{{ macro.DISPLAY_NAME_FNAME_LNAME_MAX_40_CHARS }}> (( fn.is_none_or_empty input.email == fn.false )) <{{ input.email }}> <{{ fn.null }}>",
.. "name": "INI_Description_INILineAdd",
.. "description": "Configurable setting of description field for QuickSubscriber and AddPhone and GW Port - used by INILIneAdd PWF"
..
..
.. "macro": "(( fn.is_none_or_empty pwf.description_Display_Name == fn.false )) <{{ pwf.description_Display_Name }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_SubMove",
.. "description": "Configurable setting of description field for Move Subscriber - used by UserPhoneMoveLineLoop_PWF and UserPhoneMoveLineLoopCrossCluster_PWF"
..
..
.. "macro": "(( fn.is_none_or_empty pwf.description == fn.false )) <{{ pwf.description }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_CallPark",
.. "description": "Configurable setting of description field for CallPark & Directed Call Park - used by CallParkIniUpsertPWF, ClusterwideCallParkMod, ClusterwideDirectedCallParkMod"
..
..
.. "macro": "(( fn.is_none_or_empty data.User.display_name | username:input.username == fn.false )) <{{ data.User.display_name | username:input.username }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_ChangeLine",
.. "description": "Configurable setting of description field for GS_ChangeSubscriberLine PWF"
..
..
.. "macro": "(( fn.is_none_or_empty input.description == fn.false )) <{{ input.description }}> <{{ fn.null }}>",
.. "name": "INI_Description_Cisco_MeetMe",
.. "description": "Configurable setting of description field for Cisco MeetMe numbers - used by MeetMeAddPWF, MeetMeModPWF"
..
..
..
.. ================================= ======================================
.. Macro Name Macro
.. ================================= ======================================
.. INI_Description_INILineAdd
.. INI_Description_UserMoveApps
.. INI_Description_Cisco_CallHandler
.. INI_Description_Cisco_CPUG
.. INI_Description_Cisco_HG
.. INI_Description_Cisco_SubMove
.. INI_Description_Cisco_ChangeLine
.. INI_Description_Cisco_Reassign
.. INI_Description_Cisco_CallPark
.. INI_Description_Cisco_CTIRP
.. INI_Description_Cisco_MeetMe
.. INI_Description_Microsoft_QAS
.. ================================= ======================================
..
..
..
..
..
..
..
..
.. INILineAdd
.. ..........
..
.. ::
..
.. CFT_INILineAdd_device_cucm_Line.json
.. MCR__INI_Description_INILineAdd.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF__SubscriberPhoneAdd.json
.. PWF__AddSubscriberPhone.json
.. PWF__SubscriberPhoneMod.json
.. PWF__HcsAddAnalogGatewayEndpointLinesPWF.json
.. PWF__AddSubscriberRemoteDestinationProfile.json
.. PWF__AddSubscriberDeviceProfile.json
.. PWF_AddSubscriberNew.json
.. PWF_INILineAdd.json
.. PWF__HcsUpdateAnalogGatewayEndpointNewLinesPWF.json
.. PWF_SubscriberMod.json
.. PWF__SubscriberDeviceProfileAdd.json
.. PWF__SubscriberDeviceProfileMod.json
.. PWF_AddPhoneLinePWF.json
.. PWF_UpdateSubscriberLinePWF.json
.. PWF_AddAddExtensionMobilityLinePWF.json
..
..
.. UserMoveApps
.. ............
..
..
.. ::
..
.. MCR__INI_Description_UserMoveApps.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF_UserMoveApps.json
.. PWF_UserRelationUpsert.json
..
..
.. Cisco_CallHandler
.. .................
..
.. ::
..
.. MCR__INI_Description_Cisco_CallHandler.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF__Ch_UpdateRouteOnCucmAndCucxPWF.json
.. PWF__Ch_AddRouteToCucmAndCucxPWF.json
..
..
.. Cisco_CPUG
.. ...........
..
.. ::
..
.. MCR__INI_Description_Cisco_CPUG.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF__CallPickupGroupAdd.json
.. PWF__CallPickupGroupMod.json
..
..
.. Cisco_HG
.. ..........
..
.. ::
..
.. MCR__INI_Description_Cisco_HG.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF__HuntGroupRelMod.json
.. PWF_HuntGroupRelAdd.json
..
..
.. Cisco_SubMove
.. ..............
..
.. ::
..
.. MCR__INI_Description_Cisco_SubMove.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF_UserPhoneMoveLineLoop_PWF.json
.. PWF_UserPhoneMoveLineLoopCrossCluster_PWF.json
..
..
.. Cisco_ChangeLine
.. ..................
..
.. ::
..
.. MCR__INI_Description_Cisco_ChangeLine.json
.. MCR__INI_Description_From_Caller_Workflow.json
..
..
.. Cisco_Reassign
.. ...............
..
.. ::
..
.. MCR__INI_Description_Cisco_Reassign.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF_ReassignServicesPWF.json
.. PWF_ReassignServicesUpdatePWF.json
..
..
.. Cisco_CallPark
.. ...............
..
.. ::
..
.. MCR__INI_Description_Cisco_CallPark.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF_ClusterwideCallParkMod.json
.. PWF__CallParkIniUpsertPWF.json
.. PWF_ClusterwideDirectedCallParkMod.json
..
..
..
.. Cisco_CTIRP
.. ...........
..
.. ::
..
.. MCR__INI_Description_Cisco_CTIRP.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF__HcsCtiRoutePointRELUpdatePWF.json
.. PWF__HcsCtiRoutePointRELAddPWF.json
..
..
.. Cisco_MeetMe
.. ..............
..
.. ::
..
.. MCR__INI_Description_Cisco_MeetMe.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF__MeetMeAddPWF.json
.. PWF__MeetMeUpdatePWF.json
..
..
.. Microsoft_QAS
.. ..............
..
.. ::
..
.. MCR__INI_Description_Microsoft_QAS.json
.. MCR__INI_Description_From_Caller_Workflow.json
.. PWF_MicrosoftSubscriberQasAdd.json