Local Number Portability

From TBwiki
(Difference between revisions)
Jump to: navigation, search
(Incoming call mapping)
(Incoming call mapping)
Line 19: Line 19:
  
 
===== Incoming call mapping =====
 
===== Incoming call mapping =====
[[File:LNP_profile_incoming.PNG]]
+
[[File:LNP_profile_incoming.PNG|300x|450px]]
  
 
The following table contains the pseudo-code of the mapping according to the configuration AND the content of the incoming call signaling:
 
The following table contains the pseudo-code of the mapping according to the configuration AND the content of the incoming call signaling:

Revision as of 15:40, 15 September 2012

Contents

Local Number Portability (LNP)

History and overview

Since the beginning of modern telephony, the phone number has been composed of series of digits representing the address of the final destination (i.e. the callee). This is actually what the end-user believed actually. But in reality, the signification of these digits has changed over the decades sometimes partially representing the actual route from one switch to the other or the rural region where the callee actually lives.

Traditionally, every switches was assigned an NPA-NXX (where NPA means "Numbering Plan Area"), meaning that a phone number with the format NPA-NXX-XXXX was actually refering to a specific geographical switch. As the number of end-user was growing in geographical regions, the set of available numbers in a specific NPA-NXX-XXXX was reducing forcing the telecommunication authorities to allocate more regional codes. At some point, the switches themselves were provisioned at their maximum capacity which forces the operators to include other switches not necessarily to the same geographical locations thus making the NPA-NXX less and less relevant to geography. However, the real changes came when the normative authorities decided that a end-user has the right to keep his assigned phone number regardless of which carrier he's chose as long as it kept to the same local geographical region. This change had to be supported by the ISUP switching/terminating equipment to decouple the actual phone number from the carrier/switching equipment and link it to the end-user. However, for routing purposes, these equipments still needed a way to deduce the routing to reach that end-customer number. This mechanism is referred to as "Local Number Portability" (LNP).

With LNP now active, a new number called the LRN (Location routing number) is introduced in the routing mechanism. It is formatted as NPA-NXX-XXXX and points logically to a particular switching equipment: it is the switch permanent address. The DNIS (end-user called number) is now a “virtual number” that only the last end-switch knows how to route to the subscriber. It is the role of the originating switch and intermediate switches to translate the DNIS into an LRN (consulting a regional databases using SS7 or SIP) and route the call to the final switch responsible for that subscriber. Then, and only then, the last switch uses the original DNIS to route it to the end-user.

When the first subscriber within an NPA-NXX group changes service providers, the entire NPA-NXX is considered “ported” (all 10k numbers) which means that this particular NPA-NXX combination has become a portable number and no longer represents a specific exchange. Every call to that NPA-NXX will trigger a query to a database to determine the LRN of the number of the switch responsible for the NPA-NXX-XXXX being called.

Implementation of LNP

Most carriers and operators exposing ISUP interfaces to CLECs detects if an incoming call is in the 'translates' mode or not by looking at the content of the ISUP message. If the ISUP call does not contain any LNR number, then the carrier/operator switch does a query to the SS7 database to figure out the LRN and adjust the call information accordingly. Although TelcoBridges's Toolpack framework does not make the actual query to the database, it is able to terminate or relay a call from SIP to SS7 providing the LRN information is contained in the SIP body. What is relayed and how it is relayed depends on the profile configuration options.

Call flow and configuration options

Toolpack processes sequentially the incoming call by parsing the content of the signalling protocol and mapping it to "protocol-agnostic" internal variables that are accessible by the routing scripts. Through all the routing script variables accessible to scripts are some related to LNP such as 'ported_number'. The mapping of the information found in the incoming call depends on the option selected in the "incoming" parameters of the LNP section in the profile associated with the incoming NAP.

Incoming call mapping

300x

The following table contains the pseudo-code of the mapping according to the configuration AND the content of the incoming call signaling:

CPN = called party number or the TO sip header
called = called number variable accessible in routing script
GAP = generic address number SS7 information element type 0xc0
ported_number = extra number type accessible in the routing script
RN = rn field in SIP request URI
bitM = SS7 Forward call indicator information element: ported number translation indicator (bit M)
X = drop number

Parameter SS7 SIP
Ignore CPN => called
GAP => X
CPN => called
RN => X
Terminate GAP => called
CPN => X
ported_number not available
CPN => called
RN => X
ported_numbernot available
Forward if bitM=1 then
"" => ported_number
if GAP then
CPN => called
GAP => PNB
else
CPN => called
if npdi=yes then
"" => ported_number
if RN then
CPN => ported_number
RN=> called
else
CPN => called
Outgoing call mapping

LNP profile outgoing.PNG

Personal tools