Table Of Contents
Enhanced Local Number Portability and Dial Plan Selection
Document Release History
The Enhanced Local Number Portability and Dial Plan Selection feature was introduced on the Cisco MGC software.
This document describes the Enhanced Local Number Portability and Dial Plan Selection feature.
This feature is described in the following sections:
This feature extends the table look up capability to provide searches with longest match and partial (substring) matches for the Ported number and A number dial plan selection tables.
The following are the benefits of this feature:
•Makes the Times-ten database reading more flexible to support partial matching and longest matching in addition to exact matching.
•Ensures that database sizes are sufficiently large to meet user needs now and for the future.
•Ensures that database bulk loading is efficient.
This document contains information that is related strictly to this feature. The documents that contain additional information related to the Cisco Media Gateway Controller (MGC) are at the following url:
Prerequisites for Using This Feature
The Cisco PGW 2200 must be running Cisco MGC software Release 9.7(3). Prerequisites for this release can be found in the Release Notes for the Cisco Media Gateway Controller Software Release 9.7(3).
Partial and Longest Matching
A longest match query is where the access key may be of greater length than the provisioned data to be matched.
A partial match query is where only a subset of the access key (address digits) is available due to overlap receiving.
The database PortedNumber table is enhanced to support longest matching and partial matching in addition to maintaining the current Exact Matching capability. Local number portability (LNP) call processing is enhanced to better deal with overlap receiving/sending using variable number lengths to minimize call set up delays.
For a TimesTen ported table that looks like the following:
1234#—Longest match = 123
1234—Multiple partial matches, wait for digits
12345—Single Partial match against 1234567, wait for 2 more digits
123456789—Longest matching finds match against 1234567
The database A_NumberDialplanSelection table is enhanced to support longest matching in addition to maintaining the current exact matching capability. As a longest matching example, consider the case where the A number is 123456789. A match is first attempted on 123456789 followed by 12345678 and 1234567 down to the configurable minimum length (as specified by dw1 in the dial plan result). The longest successful match is returned (note that this is the first match found due to the search order.
Increasing the TimesTen Table Size
To increase the permanent memory for the database, the Permsize parameter in Times-Ten (which is currently set to 256M) is changed.
To safeguard the integrity of the database, you can set the Permsize parameter greater than 256M and less than 10240 (10Gb). It must be set greater than the current value.
To determine what sort of value is required you need to calculate according to your requirements using the following formula.
TimesTen data size (Mb) = numOfPortedNum(millions) * 150
As a result, according to this relationship, 20 million ported numbers need 20 x150 megabytes.
Although it is possible for you to make TimesTen support a fairly large database in a low-end machine with insufficient memory, we discourage you to do so since the performance of TimesTen will suffer from frequent paging due to the lack of memory. Examples of machines considered high-end are the Sun X4600/V40Z or Sun Netra 440.
You also need to ensure that the swap space is sufficient because the TimesTen reserves the swap space according to the size you specified regardless of the actual size of data in use. Typically, you can use swap -l to show the current swap space in system
Follow the steps below to increase the TimesTen table.
Step 1 Shutdown standby, run config-db as root, see example below:sudo config-db
Step 2 Input the PermSize, which can be gained from the calculation and which must be >256 and <10240, and must be greater than the current one in use.Please specify the PermSize(MB): 2086prctl: 2: No controllable process found in task, project, or zone.The tt60 daemon has started successfully.TimesTen Configuration Updated Successfully.
Step 3 Start the standby PGW.Please Restart PGW!
Step 4 Switch over, do the same procedures in the original active side, which becomes standby now. The PermSize should keep the same in both active and standby.
Updating the TimesTen Table
There are three ways in which a TimesTen table can be updated. The type of changes you are making determine the method employed.
•Using a new tool, db-bulkcp, is the preferred method if you are not replacing entries. Use db-bulkcp when initially loading or when just adding entries.
•Using MML import/export, which is done using the prov-add command. This option is also very fast and enables insert, update, and delete actions in one process. The method is to create a file with the new entries or entries requiring modification and then import these into the database.
•Using MML commands, like numan-add. This method allows you to change the entries live on the database one at a time; this method is a simpler but slower.
Using a New Tool, db-bulkcp
Given the volume of expected records that the database can hold, bulk loading is the most efficient way of provisioning. A new tool, db-bulkcp, helps ensure fast importing/exporting of ported numbers. The db-bulkcp tool can be used only to do inserting. In other words, it cannot accomplish modification or deletion.
You must prepare a file offline to provide the data to be bulk-loaded (but with no type column as in MML import/export because you can only add entries with this method).
The following is a bulk data file example. You generate the initial bulk data with the format shown in the example. The rows preceded with # are intended only for guidance; in practice, you can add or omit these rows.##ttBulkCp## CISCO.PORTEDNUMBERS, 4 columns# columns:# 1. CALLEDNUM CHAR(20)# 2. ROUTINGNUM CHAR(20)# 3. MINLENGTH TINYINT# 4. MAXLENGTH TINYINT# end#"123456789","444",0,0"1234567890","555",5,12"1234567891","5566",3,9......
The benefits of using db-bulkcp are:
•The most important advantage of db-bulkcp is efficiency. It is more efficient than the other alternatives. It can load 20 million ported numbers in less than an hour.
•Db-bulkcp is safer than MML. MML can accomplish the import/export function in a single transaction, but it might cause some serious problems due to the excessive data collected in the transaction log when there are a huge number of entries to be imported. For this reason, db-bulkcp encapsulates 5000 rows as a single transaction.
•Db-bulkcp can detect the duplicate rows for you.
To use the new "db-bulkcp" tool, the following command format is required:db-bulkcp <import|export> <table_name> <file_name>
For example, to import the ported table, enter the following command:db-bulkcp import cisco.portednumbers ./port.dat
Using MML Import/Export
For the MML Import method, the following is an example file for loading.
•On the first line, the value 1 for the first column indicates you want to add one entry.
•On the second line, the value 3 for the first column indicates that you want to modify the current entry for digitstring 124666, so either the routingNum, minlength, or maxlength is changed.
Using MML Commands
For MML command method, the following is an example MML command:numan-add:porttbl:digitsting="124777", routenum="DFDF", minlength=5, maxlength=12
Dial Plan Examples
This section provides the following examples of dial plan provisioning for this feature. Additional examples of dial plan provisioning for the Cisco MGC software can be found in the Cisco Media Gateway Controller Software Release 9 Dial Plan Guide.
The example MML command below shows the provisioning used to add the A_NUM_DP_TABLE result to the dial plan result table.Numan-add:resulttable:custgrpid="1111",resulttype="a_num_dp_table", dw1=5, name="anumdp01", setname="resultset1"
•dw1 = 5 indicates that a database longest match query searches down from the currently received number of digits to a digit length of 5 for potential matches.
•If dw1 is omitted or set to zero, the existing functionality with exact matching applies.
Now the result can be configured as usual against the A or B-number digit trees. For example,Numan-add:bdigtree:custgrpid="1111",digitstring="654321",callside=" originating",setname="resultset1"
The example MML command below shows the provisioning used to add the new DB_XLATED result to the result table in the dial plan.Numan-add:resulttable:custgrpid="1111",resulttype="DB_XLATED", dw1=6, dw2=dp01, dw3=dp02, name="dbTrans01", setname="resultset1"
•dw1 = 6 indicates that any longest match search searches down from the currently received number of digits to a digit length of 6 for potential matches.
•dw2 & 3 respectively, indicate the dial plan to move into according to matching (dp01) or not matching (dp02).
From here the result can be configured as usual against the B-number digit tree. For example,Numan-add:bdigtree:custgrpid="1111",digitstring="144423456",callside=" originating",setname="resultset1"
Provisioning Examplesnuman-add:porttbl:digitstring="9981234",routenum="44",minlength=6,maxlength=20numan-add:porttbl:digitstring="9991234",routenum="44",minlength=6,maxlength=20numan-add:anumdpsel:custgrpid="1111",cli="99712345",newdp="2222"numan-add:resulttable:custgrpid="1111",name="rtblnp99812",resulttype="E_PORTED_NUM",setnam e="rtsetlnp99812"numan-add:resulttable:custgrpid="1111",name="rtblnp99912",resulttype="DB_XLATED",dw1=6,dw2 ="dp01",dw3="dp02",setname="rtsetlnp99812numan-add:resulttable:custgrpid="1111",setname="rtsetdpsel996",name="rttbldpsel996",result type="A_NUM_DP_TABLE",dw1="6"
This section documents new, modified, or deleted Man-Machine Language (MML) commands. All other MML commands are documented in the Cisco Media Gateway Controller Software Release 9 MML Command Reference.
Modified MML Commands
This section contains the MML commands that were modified for this feature.
NUMAN-ADD:porttbl Provision Ported Numbers Table (Release 9.7(3)
See the Cisco Media Gateway Controller Software Release 9 Dial Plan Guide at
for a description of how to use the NUMAN-ADD command for dial plan provisioning and for a description of components, parameter names, parameter descriptions, and parameter values.
This MML command adds an entry to the PORTTBL list of your dial plan.
mml> numan-add:porttbl:digitstring="<digitstring>",routenum="<route num ber>",minlength=<minimum length>,maxlength=<maximum length>
•minlength—Specifies minimum length for call origination from this traffic path. Value range is 0 through system maximum. Default is 0.
•maxlength—Specifies the maximum length for call origination from this traffic path. Value range is 0 through system maximum. Default is 24.
The MML command shown in the following example shows the parameters needed to configure an entry in the PortedTable according to the new table schema.mml> numan-add:porttbl:digitstring="1444234567",routenum="5555", minlength=13, maxlength=16
•The digitstring is the B-Number digits (maybe post normalization or modification).
•The routenum (optional) is the Routing number prefix for ported numbers.
•The minlength and maxlength values (optional) being created here relate to the B-Number post database reading. They do not relate to the incoming digits received from line.
This example is shown to provide full information; in practice, Bulk-loading from a file prepared off-line is used (see the "Updating the TimesTen Table" section).
Performance Impact Category: A
NUMAN-ADD:resulttable Provision Result Table (Release 9.7(3)
Result Type Definitions
The result types listed in Table 1 directly impact LNP operation on the PGW. For information on other result type definitions for the Cisco MGC software, see the Cisco Media Gateway Controller Software Release 9 Dial Plan Guide.
The following paragraphs contain definitions of the result types listed in Table 1.
The A_NUM_DP_TABLE result type is relevant to A-number and B-number analysis. The dial plan selection can be triggered by the A-number or the called party number (B-number). The dial plan is searched for a match on the A-number and, if found, a new dial plan identity is returned that is then used to continue call processing. The A_NUM_DP_TABLE result type supports one additional data word for this feature. An external tool encapsulating ttBulkCp supports fast importing/exporting of ported numbers.
•searchMin—Value indicating how far to search back in the number when longest matching.
The DB_XLATED result type provides database look up and number translation for both ported and non-ported types of calls.
The DB_XLATED result type also provides the ability to change the dial plan based on either a matched or nonmatched database query. This removes the previous requirement (when using result E_PORTED_NUM) to provision a default ROUTE result, which was used in the event that the database query failed to find a match. However, if no dial plan options are configured in the DB_XLATED result (dataword2 and dataword3), a default ROUTE or NEW_DIALPLAN result is still necessary.
•searchMin—Value indicating how far to search back in the number when longest matching.
•matchNewDp—Entry index (integer) to the dial plan selection table to switch to new dial plan for further processing following a database reading indicating that the target was matched. The dataword is provisioned as a dial plan name. It is then internally converted to an integer value to point to an entry in the dial plan selection table.
•nonMatchedNewDp—Entry index (integer) to the dial plan selection table to switch to new dial plan for further processing following a database reading indicating the target was not matched. The dataword is provisioned as a dial plan name. It is then internally converted to an integer value to point to an entry in the dial plan selection table.
It is possible to collect DB_XLATED at any point in B-number analysis and always issue a database query regardless of any later ROUTE or other final result.
For enbloc calls or for overlap calls where sending is complete, a longest matching database query is made.
For Overlap calls without a ST digit present, a partial matching query is made.
For Overlap calls without a ST digit present, if the initial partial matching database query finds no matches, a new query is launched using Longest matching.
Results DB_XLATED, E_PORTED_NUM, E_ROUTE_NUM, and TERM_INFO are all mutually exclusive, meaning that the last one collected is the one processed.
Multiple retrievals of the DB_XLATED result also mean that the last one collected is the one processed.
The existing E_PORTED_NUM result is maintained and provides the current level of LNP only functionality.
DB_XLATED will provide database look up and number translation for both ported and non-ported types of calls.
Both E_PORTED_NUM and DB_XLATED interrogate the same PortedNumber table. They each use different methods to read the table.
Obtaining Documentation, Obtaining Support, and Security Guidelines
For information on obtaining documentation, obtaining support, providing documentation feedback, security guidelines, and also recommended aliases and general Cisco documents, see the monthly What's New in Cisco Product Documentation, which also lists all new and revised Cisco technical documentation at:
This document is to be used in conjunction with the documents listed in the Related Documents section.
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2007 Cisco Systems, Inc. All rights reserved.