Note: This is not supported by Cisco and can damage your system.

Ages ago I was going through my lab and needed to add multiple new DNs to mimic existing functionalities. Another use case is if additional routing clients are added that need the same mappings, for example adding another pair of Cisco Voice Portal (CVP) servers. The problem with the existing bulk tools is that there is no way to bulk map the dialed number and call type associations.

To go about this, first I exported existing bulk numbers and created the new dial numbers.

Original Dialed numbers:

5000	NULL	NULL	CVP.8005551001	5001	8005551001	NULL	N	1	3	N	N	NULL	2018-01-18 23:54:37.027
5001	NULL	NULL	CVP.8005551000	5001	8005551000	NULL	N	1	0	N	N	NULL	2018-01-18 23:54:37.027
5002	NULL	NULL	CVP.8005551002	5001	8005551002	NULL	N	1	4	N	N	NULL	2018-01-19 04:21:21.020
5003	NULL	NULL	CVP.8005551003	5001	8005551003	NULL	N	1	2	N	N	NULL	2018-01-19 06:23:46.047
5004	NULL	NULL	CVP.8005551004	5001	8005551004	NULL	N	1	0	N	N	NULL	2018-01-18 23:54:37.027
5005	NULL	NULL	CVP.8005551005	5001	8005551005	NULL	N	1	0	N	N	NULL	2018-01-18 23:54:37.027

New Dialed numbers:

5008	NULL	NULL	CVP.8005552000	5001	8005552000	NULL	N	1	4	N	N	NULL	2018-08-23 14:32:21.753
5009	NULL	NULL	CVP.8005552001	5001	8005552001	NULL	N	1	4	N	N	NULL	2018-08-23 14:32:21.770
5010	NULL	NULL	CVP.8005552002	5001	8005552002	NULL	N	1	4	N	N	NULL	2018-08-23 14:32:21.770
5011	NULL	NULL	CVP.8005552003	5001	8005552003	NULL	N	1	4	N	N	NULL	2018-08-23 14:32:21.770
5012	NULL	NULL	CVP.8005552004	5001	8005552004	NULL	N	1	4	N	N	NULL	2018-08-23 14:32:21.770
5013	NULL	NULL	CVP.8005552005	5001	8005552005	NULL	N	1	4	N	N	NULL	2018-08-23 14:32:21.770

Now that the dialed numbers are created, the next step is to find the call type association with the original DN. Essentially we are now looking for the CallTypeID to DialedNumberID mapping so that we can create a new table to map the new DNs to.

The original Dial Number and Call Type Mapping.

5000	0	5000	NULL	_A	NULL	5	NULL
5001	0	5002	NULL	_A	NULL	5	NULL
5002	0	5001	NULL	_A	NULL	5	NULL
5003	0	5003	NULL	_A	NULL	5	NULL
5004	0	5004	NULL	_A	NULL	5	NULL
5005	0	5005	NULL	_A	NULL	5	NULL

Now to create the mappings, the DialedNumberID will need to be replaced with the new DialedNumberID for the DNs just created. To do this, I have used variations of notepad and Excel depending on the amount of Dialed Numbers being created. This output need to be formatted in a tab delineated text file with all NULL values replaced with a tab. For this example I created the file labdn2.txt with the following content with no headers similar to what you would expect using the bulk import tools.

5008	0	5002		_A		5	
5009	0	5000		_A		5	
5010	0	5001		_A		5	
5011	0	5003		_A		5	
5012	0	5004		_A		5	
5013	0	5005		_A		5	

Next move this move this file to the Admin Workstation server and drop it in c:\icm\bin. Then open up command line session and run the following command:

BulkLoadConfig.exe Dialed_NumberMap "labDN2.txt"

Below is the output of this this in my lab environment:

C:\icm\bin>BulkLoadConfig.exe Dialed_Number_Map "labDN2.txt"
14:38:45 Trace: EMT Creating Mutex Global\IMTConnect_DisconnectLock

***************************************************************************
Warning: The bulkloadconfig utility may corrupt your database, and should
not be used in production systems.  The ICM Configuration Manager should
be used to make configuration changes.  It includes list tools and explorer
tools that can be used to perform configuration changes. It also includes
bulk tools that can be used to perform bulk operations on the following
tables: Agent, Call Type, Dialed Number Plan, Dialed Number, Device Target,
Label, Network Trunk Group, Network VRU Script, Peripheral Target, Person,
Region, Region Prefix, Route, Trunk, Trunk Group, Scheduled Target, Service,
Skill Group, VRU Port Map.   If you have further questions, please direct
them to your Cisco Account Team.
***************************************************************************


Are you sure you want to continue? (Y/N)Y
14:38:48 Trace: AWUtils.DLL:InitAWUtils() Called :
Initialized : False
Current Instance :
New     Instance : lab
Current node :
New     Node : AW

14:38:48 Trace: AWUtils:CreateDLLHandles - Global\labLocalAWDBMutex
14:38:48 Trace: AWUtils:CreateDLLHandles - Global\AWlabGeoMemMutex
14:38:48 Trace: AWUtils:CreateDLLHandles - Global\AWlabRtClientMutex
14:38:48 Trace: HDSType = 1 at Registry key: Software\Cisco Systems, Inc.\ICM\la
b\Distributor\RealTimeDistributor\CurrentVersion
14:38:48 Trace: AwRtClient Client started at Thu Aug 23 14:38:48 2018

14:38:48 Trace: MBufLimitMgr OpenMutex Global\MBUF Limit Table Mutex
14:38:48 Trace: EMT I/O completion ports: max threads=4, concurent threads=0
14:38:48 Trace: Attempting to connect to server at [sprawlera]/[48008]
14:38:48 Trace: Connected to server at [sprawlera]/[48008]
14:38:48 Trace: Real Time Feed activated from preferred side of central controll
er.
14:38:48 Trace: Config Change message received, last update key 8599415854028.00
0000, last update time 1293382822
Starting bulk load of table 'Dialed_Number_Map' from file 'labDN2.txt'
14:38:49 Trace: LockObject::LockObject: CreateMutex called with
Dialed_Number_Map sent to Central Controller, DialedNumberID = '5008', Item = '0
'
Dialed_Number_Map sent to Central Controller, DialedNumberID = '5009', Item = '0
'
Dialed_Number_Map sent to Central Controller, DialedNumberID = '5010', Item = '0
'
Dialed_Number_Map sent to Central Controller, DialedNumberID = '5011', Item = '0
'
Dialed_Number_Map sent to Central Controller, DialedNumberID = '5012', Item = '0
'
Dialed_Number_Map sent to Central Controller, DialedNumberID = '5013', Item = '0
'
14:38:49 Trace: Config Change message received, last update key 8599415854032.00
0000, last update time 1293382873
File 'labDN2.txt' successfully loaded into table 'Dialed_Number_Map'!

C:\icm\bin>

Note: There is a limitation the amount of mappings that can be imported at a single time into the system at 2000 lines. Also if something is not formatted correctly, the bulk tool should kick it back and nothing from that session will be imported similar to the thick client bulk import tool.