.. _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